使用 swift 3 Xcode 8.2.1 在 iOS 上运行预构建的可执行文件

Posted

技术标签:

【中文标题】使用 swift 3 Xcode 8.2.1 在 iOS 上运行预构建的可执行文件【英文标题】:Running prebuilt executable on iOS using swift 3 Xcode 8.2.1 【发布时间】:2016-12-26 19:03:33 【问题描述】:

我想在 ios 应用程序的工作周期中运行预构建的可执行文件。

我有针对不同架构构建的可执行文件(ARM 用于在设备上测试应用程序,x86 用于使用模拟器)。

任何如何将它集成到应用程序中的建议将不胜感激。

【问题讨论】:

你知道你不能 fork->exec 或在 iOS 中执行 NSTask 吗?即在 iOS 中从应用程序运行可执行文件将不起作用。 【参考方案1】:

您将无法从主应用程序在 iOS 上启动可执行文件 - 沙盒根本不允许。

但是,为了完成您想要做的事情,您可以从各个可执行文件创建一个胖二进制文件 - 此二进制文件将包含所有相关架构的可执行代码 - 使用名为 test.armv7 test.x86_64 的文件的示例:

lipo -create -arch armv7 test.armv7 -arch x86_64 test.x86_64 -output test.fat

这个二进制文件可以在两个平台上运行,如果你可以启动它的话;但正如开头段落中提到的,您无法从 iOS 启动可执行文件

【讨论】:

以上是关于使用 swift 3 Xcode 8.2.1 在 iOS 上运行预构建的可执行文件的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 8.3.2在存档产品时出错[重复]

Xcode 8.2.1 无法验证您的应用程序

Swift Realm模拟器权限被拒绝

将 iOS 10.3.3 与 Xcode 版本 8.2.1 一起使用?

Xcode 9:使用 Swift 3.1 编译的模块无法在 Swift 4.0 中导入

使用断点进行调试时,Xcode 7.3.1 使用 swift 代码崩溃