苹果在批准应用时会查看实际的源代码吗?

jar*_*ryd 35 iphone app-store appstore-approval

苹果如何批准应用程序?是否查看了实际的源代码?

Bra*_*son 49

虽然我们都没有人能够访问内部审核流程(似乎在不断变化),但根据人们收到的回复,可以说一些事情.

首先,Apple无法访问您的源代码,因此他们不会对此进行审核.您将二进制文件作为应用程序包的一部分与您的其他应用程序资源一起提交.

但是,它们似乎会扫描应用程序的二进制文件,以查找指示使用私有API的某些符号.许多应用程序在iPhone OS更新后开始崩溃,因为他们使用了这些私有API,因此Apple一直在打击这一点.

商店中有很多应用程序存在内存泄漏或其他性能问题.我知道我已经提交了我的应用程序版本,这些应用程序有微妙的泄漏(自修复后)并且没有审查问题.因此,它们似乎没有进行任何类型的性能测试或分析.

内存泄漏导致检查问题的唯一地方是当内存泄漏变得非常糟糕以至于当审阅者测试时应用程序崩溃.如果您的申请在审核过程中的任何时候崩溃,将被拒绝.

除此之外,他们还有一个用户界面元素清单,用于检查是否正确使用(表视图行上没有持久性选择等).如果您的应用程序在使用这些标准UI元素时明显偏离人机界面指南,您可能会被拒绝.

Apple对版权非常谨慎,特别是对于自己的图像和艺术品,因此如果您使用受版权保护的材料不当,可能会遇到麻烦.

您将面临的大多数拒绝原因可以通过使您的应用程序稳定并遵循平台准则来预防,但有些则不然.某些类别的应用程序由于其预期用途而被拒绝,并且商店中允许的应用程序类别也会定期更改.在处理App Store时,这会增加挫败感和不确定性,但绝大多数应用程序类型永远不会遇到问题(可以从当前可用的应用程序的多样性中看出).

  • @MacMark - 不,他们没有,那不是发生了什么.您在计算机上构建二进制文件并仅发送该二进制文件.从Objective-C编译的二进制文件可以为它们调用的方法保留符号,因此可以转储和扫描这些符号.此外,Apple可能会在他们自己专门构建的框架中运行您的二进制文件,并查看该二进制文件何时调用它不应该的东西.鉴于人们使用碰巧与Apple私有方法相匹配的方法的误报,最有可能采用符号扫描方法. (3认同)
  • @MacMark - 在此过程中,Apple不会接受您自己的源代码,并且不会在本地计算机上分析API使用情况.他们现在在Xcode中有一个帮助程序可以发送你的二进制文件以在Apple的服务器上进行验证,但他们不会扫描你的本地代码. (2认同)