Xcode5:应用程序在 Payload/<AppName>.app/<AppName> 中引用了非公共选择器: setAttribution:

Posted

技术标签:

【中文标题】Xcode5:应用程序在 Payload/<AppName>.app/<AppName> 中引用了非公共选择器: setAttribution:【英文标题】:Xcode5 : The app references non-public selectors in Payload/<AppName>.app/<AppName>: setAttribution: 【发布时间】:2013-10-10 22:07:42 【问题描述】:

今天,我尝试使用 Xcode 5 将我的应用程序更新提交到商店,它给出了警告 The app references non-public selectors in Payload/&lt;AppName&gt;.app/&lt;AppName&gt;: setAttribution:。之前,它工作得很好,最后一次更新是在 8 月。

我正在使用Facebook SDK 3.2 库。可能是什么问题呢?谢谢!

【问题讨论】:

【参考方案1】:

还发现,如果您将代码中的 fbProxy.userInfo.id 替换为 [fbPoxy.userInfo objectForKey:@"id"],则警告将消失。

使用关键字作为属性名称的淘气 Facebook!

【讨论】:

我找不到那些行。在哪里看 它可能不在每个 Facebook 项目中,因此可能与您的具体问题无关。 我还必须替换“link”:userInfo.link -> [userInfo objectForKey:@"link"] 可以苹果会拒绝同样的警告,如:应用程序引用 Payload/.app/ 中的非公共选择器:id @jowie @DhavalBhadania 如果它在第三方库(例如 Facebook)上,那么没有。我们收到这个警告已经很久了,将它提交到 App Store 没有问题。我只是想摆脱烦人的警告。【参考方案2】:

尝试下载最新的 SDK 版本,Facebook 说他们已经解决了这个问题 https://developers.facebook.com/bugs/273730516072926

【讨论】:

【参考方案3】:

如果在我们的应用程序中以相同的名称声明了任何方法或变量,Apple 将给出警告。但是,如果这些警告并不重要,那么我们不必担心。毕竟我们也可以提供一个有意义的名字:-)

我们可以使用 AppScanner 等一些实用应用程序检查此类警告威胁。如果我们必须在提交应用程序之前解决它,它将显示红色警告,否则我们可以忽略所有其他警告。

【讨论】:

【参考方案4】:
To remove warning "the app references non-public selectors in payload: birthday",

While getting FBUser detail from (NSDictionary<FBGraphUser>*)user

instead of using 
NSString *FBDoB = user.birthday;

Use this:
NSString *FBDoB = [user valueForKey:@"birthday"];

Its Done, You will get the message "Validation Successful"!!!!

【讨论】:

以上是关于Xcode5:应用程序在 Payload/<AppName>.app/<AppName> 中引用了非公共选择器: setAttribution:的主要内容,如果未能解决你的问题,请参考以下文章

该应用在 Payload/<Appname>.app/<App name> 中引用了非公共选择器:生日

应用程序加载器警告:应用程序在 Payload/<Appname>.app/<App name> 中引用了非公共选择器:changeState:

该应用在 Payload/<Appname>.app/<App name> 中引用了非公共选择器:FailWithError: , topMostAlert

应用程序加载器警告:应用程序在 Payload/<Appname>.app/<App name> 中引用了非公共选择器:id [重复]

Xcode5 的 MPI 问题

如何在 Xcode5 中将 PDF 文件附加到电子邮件中