如何检查您的iOS应用代码是否使用了应用商店不允许的API?

Pte*_*tyl 4 xcode objective-c iphone-privateapi

我知道当你将它提交到应用程序商店时,有一些限制的api或代码不允许在你的应用程序中.

你怎么知道它们是什么?有没有办法在提交之前检查你的应用程序,以确保你没有使用过这样的api?

在设计阶段避免这个问题可能比在以后尝试修复它更好,所以我想知道Xcode中是否有任何工具或文档来确定这个问题.

Nat*_*ate 10

Apple打算这样做的方式是使用XCode的验证功能.当您提交应用程序时,您可以构建用于实现(或从XCode菜单存档).然后,打开管理器以查看刚刚创建的存档.此时,您可以按管理器中的" 验证"按钮.这将执行验证,而不实际提交应用程序.它会告诉您是否使用私有API.根据如何使用它们,它可以识别违规是什么:

组织者截图

肯定有一些代码可以欺骗这个验证步骤的方法,并且在审阅者查看捆绑包之前使用私有API"逃脱".但是,据我所知,这些方式都是隐藏私有API使用的有意方法,听起来你正试图发现意外使用.

如果您未通过此验证测试,那么您可能希望使用类似于Alan duncan的答案中提到的AppScanner .但是,为了完整起见,我想确保人们知道这个验证步骤在XCode中可用,并且在您提交之前检查私有API使用是它正在做的事情之一(并且必须等待几天才被告知你是什么做错了).此外,即使您不使用管理器中的" 验证"按钮,但只使用" 提交",该工具也会为您执行验证.唯一的区别是捆绑包是否实际上传到iTunes Connect.