【问题标题】:Are iOS 8 apps with embedded dylibs allowed on the App Store?App Store 是否允许带有嵌入式 dylib 的 iOS 8 应用程序?
【发布时间】:2015-03-04 18:01:43
【问题描述】:

“iOS 8 现在支持动态框架”是否意味着允许 App Store 提交?

似乎以前的开发人员能够将 dylibs 用于内部应用程序,但在提交到 App Store 的内容中使用它们会被您拒绝。仍然是这种情况还是 iOS 8 中的这种变化可以解决这个问题?

例如,如果我使用 OpenCV 编写应用程序,现在是否可以针对 OpenCV dylib 构建和发布(假设我将 OpenCV 构建为 dylib)而不是静态链接?

我很感兴趣,因为我们有一个现有的基于 Qt 的框架,它本身有几个共享库,我们目前为 Linux、OS X、Windows 和 Android 构建了这些库。对于 iOS,似乎我们需要更改它以构建一个包含我们所有组件和 Qt 静态链接的单个应用程序。如果 iOS 应用程序和 App Store 开始支持(嵌入)动态库,那么我们的 iOS 构建可以交付所有就像我们在所有其他平台上所做的那样,将组件作为动态库。

相关:

【问题讨论】:

  • 这方面有什么更新吗?

标签: c++ ios qt app-store dylib


【解决方案1】:

App store 似乎还是有限制,只允许静态链接的 ios 应用。您可以阅读 App Store 审核指南:

2.7 以任何方式或形式下载代码的应用都会被拒绝

2.8 安装或启动其他可执行代码的应用程序将被拒绝

这不是技术限制,而是法律限制。由于安全原因,它被禁止,因为可以在运行时加载和卸载动态库,您可以下载其他可执行代码并加载它(如插件)。因此,Apple 严格控制动态链接,这对于像 ios 这样明显安全的操作系统来说是一个安全问题。

毕竟,您需要拥有商业许可证才能在 App Store 上部署 Qt。您可以购买 Indie Mobile 许可证并跳过第三方应用程序商店带来的挑战。这意味着您可以通过您希望的任何第三方应用程序商店分发您的应用程序。

【讨论】:

  • 由于 >= iOS 8 支持 dylibs,因此政策现在有点宽松,未来可能会发生变化。然而,事实上,接受度实际上取决于审稿人以及他/她对指南的解释有多严格。因此,我认为目前和/或在不久的将来,使用动态库并不是一个明智的选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多