【问题标题】:iOS App Rejected : non-public APIsiOS 应用被拒绝:非公共 API
【发布时间】:2017-01-17 05:13:09
【问题描述】:

同一个应用程序之前已经被批准了两次,但是在设置图像视图和再次提交应用程序等一些更改之后,Apple 拒绝了我的应用程序,原因是以下错误:

性能 - 2.5.1

您的应用使用或引用以下非公共 API:

setResult: nextStarIndex

App Store 不允许使用非公共 API,因为 如果这些 API 发生变化,可能会导致糟糕的用户体验。

如果包含私有 API,用户如何测试他/她的应用程序?

我没有在项目中的任何地方使用setResult:nextStarIndex 代码,我该怎么办?

【问题讨论】:

  • 您是否有任何第三方依赖项可能使用这样命名的方法?
  • 我正在使用 facebook api,但我不知道 fb 是否使用此方法名称@HAS
  • 这可能是个问题,请参阅github.com/googlevr/gvr-unity-sdk/issues/296
  • @HAS 我没有在我的项目中的任何地方使用 imageWithName 我已经搜索它而不是这种方法。 + (UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize { UIGraphicsBeginImageContext( newSize ); [图像 drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();返回新图像; }
  • 你的意思是你怎么知道它是否使用私有API?通常程序员会知道他们何时使用了私有 API,因为您需要故意这样做。当您提交时,Apple 也会检查您的应用程序。目前看来,Apple 出现了误报

标签: ios app-store appstore-approval


【解决方案1】:

在可执行文件上运行 otool。

进入构建目录:

AppName/build/AppName.build/Release-iphoneos/AppName.build/Objects-normal/armv6/

然后运行

字符串 AppName | grep 'setResult' 了解哪个框架使用了该特定方法。

【讨论】:

    【解决方案2】:

    我最后一次遇到这种情况是因为我的代码中的方法和 Cocoa API 中的私有方法之间的命名空间冲突。您还可以使用grep 来找出您使用这些选择器的确切位置:

    grep -R 'setResult:' *
    

    【讨论】:

    • 救了我的命!谢谢! :-)
    【解决方案3】:

    如果您通过搜索项目未找到参考,则问题很可能出现在已编译的第三方库中。您可以使用“nm”列出已编译库中的符号。

    我的一个应用因完全相同的原因被拒绝。 我使用最新的 Facebook SDK(此时为 4.15.1)更新了我的项目,并且该应用程序通过了审核。

    【讨论】:

    • 我也面临同样的问题,从苹果收到以下消息。您的应用程序使用或引用了以下非公共 API:'ABLE.framework, _file' 不,我在哪里使用它,请告诉我如何在其他库中查找。我的新版本因此被拒绝,但由于我的旧版本没有添加任何新框架,也没有更新现有框架。
    【解决方案4】:

    我和你有同样的情况。现在,该应用程序已准备好出售。我希望我能帮助你解决这个问题。

    “您的应用使用或引用了以下非公共 API:cancelAction:, defaultInstance”

    我解决的步骤:

    (1) grep -R 'defaultInstance' *

    CrashReporterSDK 匹配,所以我将其删除。

    (2) grep -R 'cancelAction:' * 它匹配一些项目函数名称。我也解决了。

    (3)我建议在使用“grep -R”之前,您应该删除项目的“构建文档文件”,这样“grep -R”会给我们更多有用的信息。

    完成

    【讨论】:

      【解决方案5】:

      如果您需要签入您的应用程序,只需转到终端中的项目目录路径并尝试以下命令。

          grep -R 'setResult:' .
      

      【讨论】:

        猜你喜欢
        • 2017-01-24
        • 1970-01-01
        • 2017-01-26
        • 1970-01-01
        • 2011-09-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-25
        • 2011-11-04
        相关资源
        最近更新 更多