【问题标题】:iOS app rejected - private symbol mach_init_routineiOS 应用程序被拒绝 - 私有符号 mach_init_routine
【发布时间】:2011-10-14 02:14:10
【问题描述】:

最近我们的一个应用程序的更新被拒绝了,因为我们可能使用了私有 api。有趣的是:该应用程序仅包含一个简单的 uiwebview,它加载了一个 sencha touch javascript 应用程序(本地),并且更新只更改了一些 javascript,根本没有原生代码。

根据要求,苹果披露该应用可能使用以下私有符号:

  • __keymgr_dwarf2_register_sections
  • _cthread_init_routine
  • mach_init_routine

因为这个应用程序唯一的“手写”代码大约有 5 行长(获取 html 代码和 baseurl + 将其传递给 uiwebview),我们不知道这是从哪里来的。

任何帮助/提示将不胜感激。

更新:完全不是苹果的错 - 是 sencha jsbuilder mac 应用程序意外添加到项目资源中

【问题讨论】:

  • 我会说有人对 Apple 过于热心了。重新提交您的应用,告诉他们您没有使用任何私有 API,我敢打赌它会获得批准。

标签: ios private symbols appstore-approval


【解决方案1】:

对我来说,这看起来像是低级流程管理的东西。 __keymgr_dwarf2_register_sections 可能与调试有关,尽管一些谷歌搜索表明它可能涉及异常处理。

我猜你的新旧版本在编译的某些细节上有所不同:仔细检查你的构建配置和编译器标志,以及编译器和 glibc 版本,特别是调试和异常处理。

您可以尝试使用当前设置将源代码编译为旧版本,然后使用strings | grep 查看它是否包含任何违规符号。如果是这样,那就是确凿证据表明构建过程发生了变化。

【讨论】:

  • 感谢您提供有关构建设置的提示,将尝试并希望这可以解决问题
  • 哦该死的,我觉得真的很愚蠢——没有清理 senacha touch 发行版,所以他们的 jsbuilder mac 应用程序被添加到我的项目资源中;-)——不过,苹果在 v1 中并不关心这一点.0 两周前提交...无论如何都被接受了,因为 grep 指出了:) - 谢谢
猜你喜欢
  • 2015-11-13
  • 2016-11-24
  • 2017-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-01
相关资源
最近更新 更多