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

时间:2010-07-06 13:36:16

标签: iphone app-store appstore-approval

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

6 个答案:

答案 0 :(得分:49)

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

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

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

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

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

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

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

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

答案 1 :(得分:4)

尝试自己使用otool -L二进制文件,你可以立即看到是否使用了私有API框架......

答案 2 :(得分:2)

Apple并不关心您的应用程序的泄漏和分析信息。如果失控,操作系统可以杀死您的应用程序。他们实际做的是手动运行您的应用程序并检查它是否遵循Apple的一些指导原则。在自动化过程中,他们从二进制文件中提取符号,选择器和字符串,并检查它们是否使用私有API。

您可能想在(模拟器)二进制文件上尝试nm -u

答案 3 :(得分:1)

不,他们只能访问您发送的二进制代码。

他们可以通过分析器检查内存泄漏等来运行它。

答案 4 :(得分:1)

他们无法访问您的来源;它不是你发送给他们的一部分。他们测试你发送它们的二进制文件是否泄漏等。我认为他们还会检查您的应用发送的数据,以确保它没有做任何非常糟糕的事情(发送密码等)。

答案 5 :(得分:0)

他们只收到你的ipa的binray文件。他们可以在提取ipa时获取一些资源文件。他们可以找到您在Web服务或网址请求中使用的所有网址。除此之外别无其他。