最近我们的一个应用程序的更新被拒绝了,因为我们可能使用私有(private) api。有趣的是:该应用程序仅包含一个简单的 uiwebview,它加载了一个 sencha touch javascript 应用程序(本地),并且更新仅更改了一些 javascript,根本没有 native 代码。
应要求,苹果透露该应用可能使用了以下私有(private)符号:
- __keymgr_dwarf2_register_sections
- _cthread_init_routine
- mach_init_routine
因为此应用程序唯一的“手写”代码长约 5 行(获取 html 代码和 baseurl + 将其传递给 uiwebview)我们不知道这是从哪里来的。
任何帮助/提示将不胜感激。
更新:完全不是苹果的错——是 sencha jsbuilder mac 应用被意外添加到项目资源中
最佳答案
对我来说,这看起来像是低级流程管理的东西。 __keymgr_dwarf2_register_sections
可能与调试有关,尽管一些谷歌搜索表明它可能涉及异常处理。
我猜你的旧版本和新版本在编译的一些细节上有所不同:仔细检查你的构建配置和编译器标志,以及编译器和 glibc 版本,特别是调试和异常处理。
您可以尝试使用当前设置将源代码编译为旧版本,然后使用 strings | grep
以查看它是否包含任何违规符号。如果是这样,那就是确凿的证据表明构建过程发生了变化。
关于iOS 应用程序被拒绝 - 私有(private)符号 mach_init_routine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6841969/