2017-01-26 188 views
6

我得到了我的应用程序拒绝,因为non-public api电话。MacOs拒绝非公开api

框架: '/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation'
:_NSErrorWithFilePath
:_NSErrorWithFilePathAndErrno

我没有对项目文件夹grep定位那些方法,因为我发现在另一个StackOverflow问题,但grep没有提供任何东西。

grep -R '_NSErrorWithFilePath' * 
    grep -R '_NSErrorWithFilePathAndErrno' * 

我怎样才能找到那些方法的位置?

编辑: 我试图出口.app文件,并同时在其grepping我找到

Binary file myAppName.app/Contents/Frameworks/libswiftFoundation.dylib matches 

什么是着手解决这个问题的最好方法是什么?

解决
得到苹果的App审查委员会这样的回答:

感谢您与应用程序审查委员会。

应用审核委员会已完成对您的 应用***的申诉的审核,并确定您的应用的此版本不符合指南2.5.1中的 。

我们将很快将应用程序重新放回审阅过程。

感谢您对Mac应用程序开发的承诺。

申Y.应用程序审查委员会

因此很明显,这是站在他们一边的一个问题,现在因为今天早上我的应用程序是停留“评审”,我与你保持联络。

+0

有任何第三方框架? –

+0

@WarrenBurton是的,但我不应该在相关框架上看到匹配吗?第二个grep的结果看起来像是由Xcode生成的东西,我错了吗? (我的意思是'libswiftFoundation.dylib')因为我没有看到,而在第一grep的检查源代码 – r4id4

+0

你不一定会看到谁在使用这些方法。你可以在Foundation中看到它们,因为它们可以被暴露(仅由Apple使用),但如果你的第三方库只是静态库,并且使用这些方法,你将无法看到它。在这种情况下,只有前进的方法是开始对库的'otool -ov'输出进行猜测。 –

回答

0

我的应用因为相同的原因而被拒绝〜1小时前。

几个星期前,我的一个应用程序因为同样的原因被另一个框架拒绝了。那时那是一场虚惊,我现在100%确定。

我要求苹果再次检查我的应用程序。

请记住,您不必使用私有API来获得拒绝。如果签名大致相同就足够了。

我的应用程序被拒绝,因为它说,我用的是“CFHashByte”构造,其具有以下特征:

CFHashBytes(uint8_t *字节,CFIndex长度)

我的应用程序已经调用的函数“ getBytes(UInt8字节,索引:Int,长度:Int)“。签名是相似的,特别是命名和类型。所以也许这就是为什么自动检查检测到这个私人API调用。

所以也许了解您的应用的一个类似的签名。否则,只需在收到错误报告的iTunes Connect部分中向Apple发送消息即可。

TL; DR:请检查您的应用,有着相近的签名功能。

问候, 萨沙

+0

但任何反应得到的答案后我去给你更新? – user3225395

+1

是的,该应用程序刚刚通过审查过程,相同的二进制文件。 –

0

我刚刚收到了以下注释从苹果的技术支持:

感谢您联系开发者技术支持。我们与App Review团队合作确定并解决了意外的私人API问题。

如果您的应用程序当前处于拒绝状态,请回复Resolution Center中的应用程序审查团队,他们将继续审核流程。

或者,您也可以选择上传应用程序的新版本。

虽然您最初是为此请求收取技术支持事件的费用,但我们已将替换事件分配回您的Apple开发人员计划帐户。

让我们希望它传递。

+0

所以它看起来像是一个问题,很好知道。只要我收到答案,我会分享它:) – r4id4

相关问题