使用Xcode上传到app-store时收到错误:
itunes store operation failed the app references non-public selectors in payload: setResult; taskWithResult
参考iOS app - Non-Public API usage- app references non-public selectors: cancelButtonClicked, setResult:
我发现: PatienPortal_ios_build_new jenkins $ grep -Rnis' etResult:' *
Binary file build/Physician Portal.xcarchive/Products/Applications/Physician Portal.app/Physician Portal matches
Binary file node_modules/cordova-plugin-facebook/src/ios/Bolts.framework/Bolts matches
node_modules/cordova-plugin-facebook/src/ios/Bolts.framework/Headers/BFTaskCompletionSource.h:37:- (void)setResult:(id)result;
node_modules/cordova-plugin-facebook/src/ios/Bolts.framework/Headers/BFTaskCompletionSource.h:63:- (BOOL)trySetResult:(id)result;
Binary file node_modules/cordova-plugin-facebook/src/ios/FBSDKCoreKit.framework/FBSDKCoreKit matches
Binary file platforms/ios/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/Physician Portal/IntermediateBuildFilesPath/Physician Portal.build/Release-iphoneos/Physician Portal.build/Objects-normal/arm64/Physician Portal matches
Binary file platforms/ios/DerivedData/Build/Intermediates.noindex/ArchiveIntermediates/Physician Portal/IntermediateBuildFilesPath/Physician Portal.build/Release-iphoneos/Physician Portal.build/Objects-normal/armv7/Physician Portal matches
Binary file platforms/ios/Physician Portal/Plugins/cordova-plugin-facebook/FBSDKCoreKit.framework/FBSDKCoreKit matches
Binary file plugins/cordova-plugin-facebook/src/ios/Bolts.framework/Bolts matches
plugins/cordova-plugin-facebook/src/ios/Bolts.framework/Headers/BFTaskCompletionSource.h:37:- (void)setResult:(id)result;
plugins/cordova-plugin-facebook/src/ios/Bolts.framework/Headers/BFTaskCompletionSource.h:63:- (BOOL)trySetResult:(id)result;
Binary file plugins/cordova-plugin-facebook/src/ios/FBSDKCoreKit.framework/FBSDKCoreKit matches
这意味着问题归因于Facebook插件!
此外,我将我的包ID添加到.plist引用https://developers.facebook.com:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fbxxxxxx</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>xxxxx</string>
<key>FacebookDisplayName</key>
<string>PC360-PatientPortal</string>
仍然,我得到同样的错误!所以,请帮助我,我被严重困扰,下一步做什么?
注意:我正在使用Xcode 9并使用Jenkins构建Cordova项目。
答案 0 :(得分:1)
您必须在解决方案中心联系Apple并告诉他们您没有使用任何私有API,然后解释调用setResult和taskWithResult是对Facebook Bolts SDK的调用,而不是对私有API的调用。
您可以尝试向他们发送在Facebook SDK网站上打开的bug report的链接。
这通常有用,但是如果它不起作用,你将不得不删除添加该SDK的插件并尝试使用另一个不使用Bolts的插件。
Another issue人们抱怨应用因此被拒绝
答案 1 :(得分:1)
得到了Apple团队的以下回复:
您好Ashish,
感谢您抽出宝贵时间与我们联系,了解您在尝试将新版本上传到iTunes Connect时遇到的错误。我的名字是玛丽亚,我很高兴能指出你正确的方向。
在审核我们的系统之后,您之前构建中的错误似乎是由于未能在Xcode中提供使用说明而导致的。从iOS 10开始,需要使用目的字符串来访问应用程序中的任何受保护数据类,包括应用程序使用的任何第三方库对这些受保护数据类的使用。如果您收到有关您无法识别的数据类的缺失用途字符串的消息,请咨询您的第三方库供应商,了解他们对该受保护数据类的使用情况。
有关更多详细信息,请参阅以下资源:
信息属性列表主要参考:Cocoa Keys https://developer.apple.com/library/prerelease/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html
WWDC 2016:为您的用户提供工程隐私(使用说明密钥在29:14讨论) https://developer.apple.com/videos/play/wwdc2016/709/?time=1754
如果问题仍然存在,请通过以下网址向Apple开发者技术支持提交您的请求:
https://developer.apple.com/support/technical/
供您参考,您的案件编号是100405033091。
致以最诚挚的问候,
玛利亚 Apple Inc.