“iOS 8 现在支持动态框架”是否意味着 App Store 提交允许这样做?
似乎以前的开发人员能够在内部应用程序中使用 dylib,但在提交到 App Store 的内容中使用它们会导致您被拒绝。情况仍然如此,还是 iOS 8 中的这一更改可以解决这个问题?
例如,如果我使用 OpenCV 编写了一个应用程序,现在是否可以构建并发布 OpenCV dylib(假设我将 OpenCV 构建为 dylib)而不是静态链接?
我很感兴趣,因为我们有一个现有的基于 Qt 的框架,它本身有几个我们目前为 Linux、OS X、Windows 和 Android 构建的共享库。对于 iOS,我们似乎需要更改此设置以构建一个包含所有组件和静态链接的 Qt 的应用程序。如果 iOS 应用程序和 App Store 开始支持(嵌入式)动态库,那么我们的 iOS 构建可以运送所有内容就像我们在所有其他平台上一样,将组件作为动态库。
Related:
- “嵌入式 dylibs/frameworks 仅在 iOS 8 或更高版本上运行”警告的后果 https://stackoverflow.com/questions/27043263/consuequences-of-embedded-dylibs-frameworks-only-run-on-ios-8-or-later-warning
- Apple 允许 iOS 上的 Qt 作为动态库吗? https://stackoverflow.com/questions/18601312/does-apple-allow-qt-on-ios-as-dynamic-library
- http://www.wenda.io/questions/333265/are-private-frameworks-supported-on-ios.html http://www.wenda.io/questions/333265/are-private-frameworks-supported-on-ios.html
看来App store上仍然存在只允许静态链接的ios应用程序的限制。您可以在 App Store 审核指南中阅读:
2.7 以任何方式或形式下载代码的应用程序将被拒绝
2.8 安装或启动其他可执行代码的应用程序将被拒绝
这不是技术限制,而是法律限制。由于安全原因,它被禁止,因为动态库可以在运行时加载和卸载,您可以下载额外的可执行代码并加载它(就像插件一样)。因此Apple严格控制动态链接,这对于像ios这样表面上安全的操作系统来说是一个安全问题。
毕竟,您需要拥有商业许可证才能在 App store 上部署 Qt。您可以购买独立移动许可证并跳过第三方应用程序商店带来的挑战。这意味着您可以通过您希望的任何第三方应用程序商店分发您的应用程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)