iTunes Store 操作失败,应用程序引用有效负载中的非公共选择器:setResult; taskWithResu



我在使用 Xcode 上传到应用商店时遇到错误:

itunes store operation failed the app references non-public selectors in payload: setResult; taskWithResult

参考 iOS 应用程序 - 非公共 API 用法 - 应用程序引用非公共选择器:取消按钮单击,设置结果:

我发现: 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 项目。

您必须在Resolution center上联系Apple,并告诉他们您没有使用任何私有API,然后解释对setResult和taskWithResult的调用是对Facebook Bolts SDK的调用,而不是对私有API的调用。

您可以尝试向他们发送在Facebook SDK网站上打开的错误报告的链接。

这通常有效,但如果它不起作用,则必须删除添加该SDK的插件,并尝试使用另一个不使用Bolts的插件。

人们抱怨应用程序因此被拒绝的另一个问题

从苹果团队得到以下回复:

你好阿希什,

感谢您今天抽出宝贵时间与我们联系,了解您在尝试将新版本上传到iTunes Connect时遇到的错误。我的名字是玛丽亚,我将很高兴为您指出正确的方向。

在查看我们的系统后,您以前的构建中的错误似乎是由于未能在 Xcode 中提供使用描述引起的。从 iOS 10 开始,从应用内访问任何受保护的数据类都需要目的字符串,包括应用使用的任何第三方库使用这些受保护的数据类。如果您收到一条消息,指出您不认识的数据类缺少用途字符串,请咨询您的第三方库供应商,了解他们使用该受保护的数据类。

有关更多详细信息,请参阅以下资源:

适用于 iOS 的应用编程指南:支持用户隐私 https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ExpectedAppBehaviors/ExpectedAppBehaviors.html#//apple_ref/doc/uid/TP40007072-CH3-SW6

信息属性列表键参考:可可键 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。

此致敬意

玛丽亚 苹果公司

最新更新