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).