itunes存储操作失败,应用程序引用了有效负载中的非公共选择器:setResult; taskWithResult

时间:2018-01-04 14:27:14

标签: ios xcode facebook cordova jenkins

使用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项目。

2 个答案:

答案 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开始,需要使用目的字符串来访问应用程序中的任何受保护数据类,包括应用程序使用的任何第三方库对这些受保护数据类的使用。如果您收到有关您无法识别的数据类的缺失用途字符串的消息,请咨询您的第三方库供应商,了解他们对该受保护数据类的使用情况。

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

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

信息属性列表主要参考: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.