繁体   English   中英

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

[英]How to check if your iOS app code is using an api that is not allowed on the app store?

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

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

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

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

组织者截图

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

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

如果您坚持使用上面建议的文档化界面,那么你没问题。 唯一的问题是第三方库的实现可能对您不透明。

有一个名为AppScanner的Mac应用程序可以扫描私有API的使用情况。 不过,我没有经验。

  1. 获取私有API列表。
  2. 使用class-dump处理Mach-O文件,并获取处理后的字符串。
  3. 使用正则表达式获取字符串中的接口,类或方法。
  4. 将API与私有API列表相匹配。

GOT吧〜

我打开了一个项目来做这件事,但因为我公司的原因,取消了。 对此非常抱歉。

您将从中获得有关Apple批准流程的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM