ポインタが32-bit
であることに依存するレガシーコードがあり、xCodeBuild
を使用してcommand line
からそのコードをビルドしたいと考えています。これは何らかの理由で機能しません。これが私が使うコマンドです:
xcodebuild -configuration Debug -Arch i386
-workspace MyProject.xcworkspace -scheme MyLib
これが私が得る出力です
[BEROR]No architectures to compile for
(ONLY_ACTIVE_Arch=YES, active Arch=x86_64, VALID_ARCHS=i386).
明らかに、xCodeプロジェクト設定でx86_64
からi386
のみを有効にしたため、VALID_ARCHS
コードをビルドしようとして無惨に失敗しています。
64-bit
ライブラリが不要であることを理解させる方法はありますか?
NO
でxcodebuild
パラメータを使用する場合は、ONLY_ACTIVE_Arch
をARCHS
に設定する必要があります。これらのパラメーターを渡すことにより、適切なアーキテクチャーを強制できます。
xcodebuild ARCHS=i386 ONLY_ACTIVE_Arch=NO -configuration Debug -workspace MyProject.xcworkspace -scheme MyLib
詳細は このリファレンス を参照してください。
xcodebuild ONLY_ACTIVE_Arch...
//or
Build Settings -> Build Active Architecture Only -> ONLY_ACTIVE_Arch
YES
-接続されたデバイスの単一のアーキテクチャでバイナリをビルドします
NO
-特定の-Arch
(valid architectures
aka VALID_ARCHS
)のバイナリが指定されている場合、または他の場合はすべてのアーキテクチャ用にバイナリをビルドします
デバッグ(ビルド時間を節約する)にはYes
を使用し、リリースビルドにはNoを使用することをお勧めします。
注:シミュレータで実行するのが安全です
バージョンを確認するには、lipo -info
[約]
Build Settings -> Build Active Architecture Only
-ONLY_ACTIVE_Arch
YES
-Xcodeは、接続されているデバイスを検出し、アーキテクチャを決定し、そのアーキテクチャのみで構築します。
NO
--Arch
(valid architectures
aka VALID_ARCHS
)のすべてのアーキテクチャにビルドするか(デフォルトで)、アーチ用にビルドします
バージョンを確認するには、lipo -info
[約]
入力ユニバーサルファイルのアーキテクチャタイプを簡単にリストします。各アーカイブの名前をリストします。
lipo -info <binary_path>
//or
file <binary_path>