なぜか最新の環境(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_ARCH
が YES
になっているためです。このテンプレートは SDK に内包されており、RC 環境でテストしているのであれば手動で書き換えてしまっても、GA が正式リリースされれば問題ないかと思います。
それでは手動で ONLY_ACTIVE_ARCH
を NO
にしてみましょう。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 のテストできますね!