Apple rejected the application because it passes the MAC address without user permission

We have a newly developed application rejected by Apple. Here is their explanation:

We found that your application does not obtain user consent before collecting user personal data, in accordance with the requirements of the App Store Review Guide.

In particular, your applications send the MAC address of the device without user permission. Your application also sends the device Contact information without user permission.

In order to collect personal data with your application, you must clearly indicate that their personal data is uploaded to your server, and you must obtain user consent before the data is downloaded.

iOS 6 contains new keys to indicate why the application will have access to user-protected data. When an access request is displayed, the destination indicated in these keys is displayed in this dialog box. If your application will transmit protected user data, the use of the line in your access request should clearly inform the user that their data will be uploaded to your server if they agree.

For more information about these keys, see the Property List Reference Information.

We use the RubyMotion toolchain and do not access the MAC address anywhere in our application. We believe this may be one of the SDKs or gems we use.

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" 

Only external api calls apply to Parse.com and testflight, as we use both of these SDKs.

Parse said they do not collect the MAC address, and Testflight does not do this unless you specifically do this.

We also use these Cocoa pods:

'NSData + MD5Digest'

'MBProgressHUD'

'ASIHTTPRequest'

'PHFRefreshControl'

'Jsonkit'

Question: Does any of these stones or Cocoapod cause a MAC address?

+6
source share
3 answers

I would suggest that a test flight or Parse may be able to get the MAC address even if they do not send it. Apple probably just sees them calling and sending something. I guess this is because it would be very bad if any of these libraries send an unencrypted version of the MAC address over the network, so maybe Apple can just see its access. Do you accidentally use the ad network in your application?

0
source

Update TestFlight to the latest SDK to fix this. From the release notes:

1.2.5 - May 1, 2013

Removed any MAC access

AdSupport.framework requirement added

+4
source

If you want to sniff traffic from your device to find out what is sent, try using Charles .

0
source

All Articles