Titanium で iOS アプリを プロダクトビルド以外で 64bit ビルドする

  • 11
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

なぜか最新の環境(SDK 3.5.0.RC、CLI 3.5.0-dev)でビルドしても、プロダクト(アドホック)ビルド以外は 32bit でインストールされてしまうため、シミュレータやデバッグ時のデバイスビルドは 64bit でテストを行うことができません。毎回アドホックビルドは面倒です。。。

試しに $ ti build -p ios --sim-64bit 等でビルドしてみてください(そもそも --sim-64bit オプションは Xcode6 からのシミュレータでは意味がないかも)。build/iphone/build/XXXXX.build/Debug-iphoneos/XXXXX-iPad.build の中身を見てみると、i386 や armv6、もしくは armv7 しか存在しないのがわかります。実機ビルドをして、Instruments でアクティビティを確認してみましょう。アーキテクチャが arm64 で動いていません。

原因はビルド時のテンプレートにある ONLY_ACTIVE_ARCHYES になっているためです。このテンプレートは SDK に内包されており、RC 環境でテストしているのであれば手動で書き換えてしまっても、GA が正式リリースされれば問題ないかと思います。

それでは手動で ONLY_ACTIVE_ARCHNO にしてみましょう。SDK 3.5.0.RC がインストールされているディレクトリまで移動しましょう。デフォルトでは以下の場所にビルド時のテンプレートが存在します。

~/Library/Application Support/Titanium/mobilesdk/osx/3.5.0.RC/iphone/iphone/Titanium.xcodeproj/project.pbxproj

このファイルをテキストエディタで開き、ONLY_ACTIVE_ARCH を探してください。ONLY_ACTIVE_ARCH = YES; になっているので、これを ONLY_ACTIVE_ARCH = NO; に変更して保存します。

保存後に再度ビルドしてみましょう。先ほどのビルドフォルダに i386 や armv6、もしくは armv7 の他に x86_64 と arm64 が生成されていますか?生成されていれば成功です。更に Instruments で確認してみましょう。アーキテクチャが arm64 で動いていますか?これで 64bit のテストできますね!