kylef / Mockingjay

An elegant library for stubbing HTTP requests with ease in Swift

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rejected from TestFlight due to usage of private APIs

soda-chanh opened this issue · comments

Dear developer,

We have discovered one or more issues with your recent delivery for "Beem". To process your delivery, the following issues must be corrected:

Non-public API usage:

The app contains or inherits from non-public classes in Frameworks/Mockingjay.framework/Mockingjay: XCTest
If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed.

If you think this message was sent in error and that you have only used Apple-published APIs in accordance with the guidelines, send the app's nine-digit Apple ID, along with detailed information about why you believe the above APIs were incorrectly flagged, to appreview@apple.com. For further information, visit the Technical Support Information page.

Missing Info.plist key - This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSBluetoothPeripheralUsageDescription key with a string value explaining to the user how the app uses this data.

Missing Info.plist key - This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSAppleMusicUsageDescription key with a string value explaining to the user how the app uses this data.

Once these issues have been corrected, you can then redeliver the corrected binary.

Regards,

The App Store team

Perhaps they are cracking down on some of these APIs.

Are you separating out your Podfile into your main target and test target?

target 'My Project' do
    # pods
end

target 'My Project Tests' do
    pod 'Mockingjay', :git => 'https://github.com/kylef/Mockingjay.git'
end

yes, here's what our Podfile looks like

target 'Project' do
  #other pods

  target 'ProjectTests' do
    inherit! :search_paths
    pod 'Mockingjay', '~> 2.0.0'
  end
end

Oops, we found the issue in our build script which was adding Mockingjay to our release target. Thanks.

For future reference and for anyone who ends up here searching. Mockingjay as a whole should only be used as a test dependency. If you want to use Mockingjay in production, the CocoaPod is split as two subspecs so that can be achieved. You can use Mockingjay/Core in production and Mockingjay/XCTest includes all of the XCTest specific stuff which should only be in test target (in normal circumstances).