【问题标题】:How Can I Launch an iOS app built with Titanium in the iPhone 6 and 6 Plus Simulators?如何在 iPhone 6 和 6 Plus 模拟器中启动使用 Titanium 构建的 iOS 应用程序?
【发布时间】:2015-01-05 11:38:23
【问题描述】:
我通常使用 Titanium CLI 使用如下命令构建我的项目:
ti build --skip-js-minify -p ios -T simulator -Y iphone --retina --tall --sim64btin
现在 Titanium 3.4 SDK 已经发布并支持 iOS 8 和 XCode 6,我希望我能够在新的模拟器中轻松启动我的应用程序。但目前它似乎默认为 iPhone 4s sim。
我错过了什么?
【问题讨论】:
标签:
ios
ios8
titanium
ios-simulator
titanium-mobile
【解决方案1】:
有几种方法可以做到这一点,包括将 .xcodeproj 导入 XCode,但我个人觉得我的方法更方便。这并不完美,但这就是我目前正在做的事情,以及我是如何到达那里的。
对 Titanium SDK 源的一些检查表明,CLI 使用名为 ios-sim 的二进制文件来实际启动模拟器。一些谷歌搜索会发现这是一个 node.js 包。我碰巧安装了这个,但我不确定它是否由 Titanium 安装 - 构建脚本使用打包在 SDK 中的二进制文件。
控制台输出:
RalphsMBP:~ trey$ which ios-sim
/Users/trey/npm/bin//ios-sim
RalphsMBP:~ trey$ ios-sim --version
2.0
关于 Xcode6 的文档是这样说的:
仅从版本 3.x 开始支持 Xcode 6。
所以第 1 步:
sudo npm install -g ios-sim@3.0
ios-sim --version
您现在应该是 3.0.0。
我的第一个想法是用来自 npm 的新安装的二进制文件替换 Titanium SDK 中的二进制文件。我认为ti build 的参数可能会直接传递给 ios-sim。结果证明这是一条死胡同(在我看来,builder.py 脚本一团糟——已经重写了!)
幸运的是,使用 ios-sim 的新 devicetypeid 选项编写构建脚本以在您选择的模拟器中启动仍然很容易。使用 ios-sim showdevicetypes 获取有效设备类型 ID 的列表。这是我的 iPhone 6 构建脚本:
ti build -b --skip-js-minify -p ios && ios-sim launch ${project_path}/build/iphone/build/Debug-iphonesimulator/${project_base_name}.app --devicetypeid com.apple.CoreSimulator.SimDeviceType.iPhone-6
变量是 sublime 文本构建系统的一部分,但您可以以任何方式应用该概念。 -b 标志是--build-only,我认为其余的都是不言自明的。