Apple拒绝了app,因为它在未经用户许可的情况下传输MAC地址

我们最近开发的应用程序被Apple拒绝了。 这是他们的解释:

根据“app store评论指南”的要求,我们发现您的应用在收集用户的个人数据之前未获得用户同意。

具体而言,您的应用程序在未经用户许可的情况下发送设备的MAC地址。 您的应用程序还会在未经用户许可的情况下发送设备联系信息。

要使用您的应用收集个人数据,您必须向用户明确说明他们的个人数据将上传到您的服务器,并且您必须在上传数据之前征得用户的同意。

iOS 6包含用于指定应用访问用户受保护数据的原因的新密钥。 显示访问提示时,这些键中指定的用途将显示在该对话框中。 如果您的应用程序将传输受保护的用户数据,则访问请求中的使用字符串应明确告知用户,如果他们同意,他们的数据将上传到您的服务器。

有关这些密钥的更多信息,请参阅信息属性列表密钥参考。

我们正在使用RubyMotion工具链,而不是在我们的应用程序中的任何位置访问MAC地址。 我们认为它可能是我们正在使用的SDK或gem之一。

的Gemfile:

source :rubygems gem 'bubble-wrap', :git => 'https://github.com/rubymotion/BubbleWrap.git' gem 'teacup' gem 'rake' gem "cocoapods", "0.13.0" gem 'motion-cocoapods', "1.1.0" gem 'motion-testflight' gem 'motion-table' gem "Parsistence" gem 'formotion' gem "ProMotion" gem "motion-addressbook" 

唯一的外部api调用是Parse.com和testflight,因为我们正在使用这两个SDK。

Parse表示他们不收集MAC地址,除非你专门这样做,否则Testflight不会。

我们也在使用这些Cocoa豆荚:

‘的NSData + MD5Digest’

‘MBProgressHUD’

‘ASIHTTPRequest’

‘PHFRefreshControl’

‘JSONKit’

问题:这些gem或Cocoapods中的任何一个是否需要MAC地址?

我想象测试飞行或Parse可以检索MAC地址,即使他们没有发送它,Apple可能只是看到他们正在访问和发送一些东西。 我假设这是因为如果这些库中的任何一个通过网络发送未加密的MAC地址版本会非常糟糕,所以Apple可能只是看到它的访问。 您是否有机会在您的应用中使用广告网络?

将TestFlight升级到最新的SDK以解决此问题。 从他们的发行说明:

1.2.5 – 2013年5月1日

删除了对mac地址的任何访问权限

添加了AdSupport.framework要求

如果您想从设备中嗅探流量以查看正在发送的内容,请尝试使用Charles 。