在 iOS 8 模拟器中运行 .app 文件

Posted

技术标签:

【中文标题】在 iOS 8 模拟器中运行 .app 文件【英文标题】:Run .app file in iOS 8 simulator 【发布时间】:2015-02-03 07:15:18 【问题描述】:

我有一个开发者共享的 .app 文件,我想在 ios 8 模拟器中运行它。我看到过类似的问题,它们为旧版本的 iOS 提供了解决方案,这些解决方案不再适用于 iOS 8。有人可以指出在不使用 xcode 的情况下需要做什么。

【问题讨论】:

如果您的应用程序只包含 ARM 代码,它将无法运行。您需要有一个包含 x86 代码的版本。 【参考方案1】:

在 iOS Simulator 中启动要安装的模拟器,然后执行以下操作:

xcrun simctl install booted /path/to/Your.app
xcrun simctl launch booted com.yourcompany.yourapp

Xcode 6.0 中旧版本的 simctl 不支持“启动”令牌。如果您收到错误,请使用完整的设备 UDID 而不是“已启动”。你可以通过运行xcrun simctl list来确定UDID

【讨论】:

在安装部分之前它工作正常。但是当我使用 xcrun simctl launch booted com.yourcompany.yourapp 运行应用程序时,应用程序一启动它就会崩溃。 如果您需要帮助解决崩溃问题,您需要提供更多信息。 嘿 Jeremy,在执行了上面提到的第一个命令后,应用程序就安装在了模拟器中。然后我执行了第二个命令。然后应用程序打开,然后立即关闭。即,应用程序崩溃了。然而,问题似乎来自提供构建的开发人员。但我会接受这个答案,因为它回答了我最初的问题。同时我会用步骤写一个更完整的答案。 我收到一条错误消息An error was encountered processing the command (code=4): The operation couldn’t be completed. (FBSOpenApplicationErrorDomain error 4.) 4 是您请求安装不存在的应用程序时得到的结果。【参考方案2】:

对于希望为其测试人员提供模拟器构建的开发人员,这些是我创建和测试构建所遵循的步骤 -

    在构建设置的有效架构部分添加 i386。

    打开终端并导航到您的项目文件夹。然后执行命令——

    xcodebuild -arch i386 -sdk iphonesimulator8.1

(这将构建应用程序)

    要在模拟器上安装应用程序,请运行上述答案中提到的命令,即 -

    xcrun simctl install booted /path/to/Your.app

现在您应该可以通过在模拟器中单击已安装的应用程序来运行该应用程序了。

【讨论】:

您不需要将 i386 作为有效架构添加到构建设置中。当您为 sim 构建时,Xcode 会将其中的 32 位 arm 值转换为 i386。 实际上,当我尝试使用命令“xcodebuild -arch i386 -sdk iphonesimulator8.1”进行构建时,我遇到了构建失败并出现错误“No architectures to compile for (ARCHS=i386, VALID_ARCHS= armv7 armv7s arm64)"。在我添加 i386 作为有效架构后解决。 或者,您可以删除您的 VALID_ARCHS 覆盖,它应该可以正常工作。【参考方案3】:

如果应用在模拟器中使用命令安装后崩溃,

xcrun simctl install booted /path/to/Your.app

这可能是因为架构问题,因为我们使用的是设备构建而不是模拟器构建。

iphone模拟器和iphone设备的基本架构区别是

iPhone 模拟器使用架构 i386 或 x86_x64

而,

iPhone 设备使用架构 arm64 或 armv7 或 armv7s

我们可以在link 中找到每个设备架构。所以要解决这个问题,我们需要通过更改 xcode 构建位置设置来构建模拟器。

解决方案:

要更改构建位置设置,请打开您的 xcode 并按照以下步骤操作。

    转到 xcode 首选项。 选择位置标签。 在“派生数据:”部分点击“高级”,从出现的屏幕中选择“旧版”。 现在构建应用程序,构建成功后转到 finder 中的“Your-App-Folder/build/Debug-iphonesimulator”,然后将可用的构建复制到同一文件夹中,扩展名为 .app

    复制它并运行@jeremy 回答的上述命令。

    xcrun simctl install booted /path/to/Your.app

运行此命令后,请注意您的模拟器已安装您指定的构建版本。好了,在模拟器中运行应用程序,点击相应的应用程序并使用它。

我特意编写这个解决方案来帮助那些对上述架构问题一无所知的有需要的人。

快乐编码:)

【讨论】:

【参考方案4】:

iOS Simulator 还支持拖放安装 .app 文件

    打开模拟器 你可以通过XCode > Open Developer Tool > Simulator下的XCode来实现 要“不使用 xcode”打开它,请参阅这些answers。 在 Finder 中找到 .app 文件并将其拖到您的模拟器窗口中 等待应用安装并启动

【讨论】:

以上是关于在 iOS 8 模拟器中运行 .app 文件的主要内容,如果未能解决你的问题,请参考以下文章

iOS 应用程序:在模拟器上运行但不构建.app

如何在 jenkins 上运行 ios 模拟器进行 ui 自动化测试

iOS App Receipt Validation - 调试时模拟器和设备上缺少收据

Xcode 8 App安装失败,出现未知错误

ios模拟器安装.app

在到达我的代码之前,应用程序在运行时崩溃 xcode6.1 Universal App Objective-C NSKeyedUnarchiver iOS 7.0 iOS 8.1