【问题标题】:Build and run an app on simulator using xcodebuild使用 xcodebuild 在模拟器上构建和运行应用程序
【发布时间】:2016-03-04 09:23:15
【问题描述】:

我要实现以下目标:使用xcodebuildios-sim 构建和运行.app 应用程序。

我正在使用以下脚本来构建应用程序。

xcrun xcodebuild \
  -scheme $XCODE_SCHEME \
  -project $XCODE_PROJECT \
  -configuration Debug \
  -destination generic/platform=iOS \
  -derivedDataPath \
  build

然后为了运行它,我正在使用

ios-sim launch MyApp.app/ --devicetypeid "iPhone-6-Plus, 9.1"

每次我收到以下消息:

服务指定的程序不包含所请求的程序之一 架构:?

发生了什么,应用程序无法运行?

注意:如果我针对从 Xcode(派生数据中包含的命令)构建的 .app 运行第二个命令 (ios-sim...),则该过程可以正常工作。

【问题讨论】:

  • 纯粹出于好奇,您为什么要这样做而不是在 XCode 中运行和构建项目?
  • 你确定你安装了这个模拟器吗?从错误看来,您尝试运行的特定设备在您的机器中不存在
  • @HaydenHolligan 需要进行测试自动化。
  • @JulianE。是的。尝试使用 Xcode 构建的应用程序,它确实有效。
  • ios-sim showdevicetypes的结果是什么

标签: ios xcode shell ios-simulator xcodebuild


【解决方案1】:

好的。解决了问题。

您需要指定正确的destination。例如。

xcrun xcodebuild \
  -scheme $XCODE_SCHEME \
  -project $XCODE_PROJECT \
  -configuration Debug \
  -destination 'platform=iOS Simulator,name=iPhone 6 Plus,OS=9.1' \
  -derivedDataPath \
  build

这样,Xcode 将创建包含您的产品的文件夹(称为build)(特别是查看Debug-iphonesimulator)。 build 目录是在您运行xcodebuild 命令的目录中创建的。

现在您可以指向该文件夹以运行ios-sim 命令(请参阅ios-sim 了解更多参考)或simctl(请参阅iOS 8: Building custom simulatorsBuild And Run iOS Apps In Commmand Line 了解更多信息)。

【讨论】:

  • 如何在-destination中通过不同ID的同一个模拟器?
  • 就像我有 2 个 iPAD 模拟器 i) 平台:iOS 模拟器,id:0F9084E0-4E0D-43F7-AD3D-AB959744BD09,OS:9.3,名称:iPad 2 ii) 平台:iOS 模拟器,id :4E05355C-EF57-4771-96D4-0F9FCF24A0D2,操作系统:9.3,名称:iPad 2
  • 如何运行基于工作空间的项目,即包含多个 Pod 项目的项目。请在此处粘贴完整的命令以运行 -workspace
  • @QadirHussain 我今天使用上面的方法来构建我的工作区项目。我刚刚用-workspace $XCODE_WORKSPACE替换了-project $XCODE_PROJECT
  • 编译正常但没有运行模拟器
猜你喜欢
  • 1970-01-01
  • 2012-02-10
  • 2021-05-27
  • 1970-01-01
  • 1970-01-01
  • 2012-11-11
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
相关资源
最近更新 更多