Apple拒绝使用非公共API拒绝的本机二进制文件

时间:2016-09-06 17:12:52

标签: reactjs react-native app-store

From Apple
Performance - 2.5.1

Your app uses or references the following non-public APIs:

: setResult: 

The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.

我搜索术语setResult,我认为这属于我正在使用的facebook登录包

xxxx$ grep -Rnis 'setResult:' *
Binary file ios/FBSDKCoreKit.framework/FBSDKCoreKit matches
Binary file node_modules/react-native-facebook-login/FacebookSDK/FBSDKCoreKit.framework/FBSDKCoreKit matches

有谁知道如何解决这个问题?感谢。

2 个答案:

答案 0 :(得分:4)

我建议在their Github project上提交问题。他们不应该使用私有API,我肯定会想知道它导致App Store被拒绝。

编辑:OP发布了一个问题,看起来他们并不是唯一一个有这个问题的人。

https://github.com/magus/react-native-facebook-login/issues/155

答案 1 :(得分:1)

我们遇到了同样的问题。由于名为setResult的方法是FacebookSDK的一部分,Apple拒绝了我们的应用程序。它不是对非公共API的调用,而只是一个巧合的名称相同的方法。

有人在developers.facebook.com上提交了一个错误。这是Facebook的回应:

  

大家好,

     

我已经与我们的Mobile SDK团队核实过并自行检查了这一点   个人在我们的SDK源代码

     

在FBSDKCoreKit中对setResult的调用不是私有API,而是   来自Bolts框架的这种方法:

     

https://boltsframework.github.io/docs/ios/Classes/BFTaskCompletionSource.html#//api/name/setResult

     

此时没有任何计划改变我们对此的使用   方法,它似乎被任何不正确的标记   Apple正在使用检测私有API使用

     

我们建议您与Apple联系并让他们再次检查您的应用   并验证实际上没有私有API使用

     

我还问过我们的移动SDK团队是否可以就此问题与Apple联系,   但我不确定这是否是我们可以做的事情

     

问候,斯蒂芬

错误报告:https://developers.facebook.com/bugs/294032807641661/

我们成功向App App Board提出上诉,解释了为什么它不是私有API的调用。