6

私は私を殺している1つの問題を抱えています。これが次のとおりです。xCodeUIですべてを実行しようとすると、完璧に機能するxCodeのアプリプロジェクトがあります。つまり、ビルド、実行、テストなど、私が持っているすべての異なるターゲット(3)、アプリの2つ、テスト用の1つです。

この問題は、Jenkinsのシステムに継続的インテグレーションをインストールしようとしたときに発生します。そのためにシェルでいくつかのコマンドを実行する必要があります。このようなコマンド:

xcodebuild -project MYPROJECT -sdk iphonesimulator -scheme TESTS_SCHEME TEST_AFTER_BUILD=YES

私はまた、これを試してみましたが、最終的には同じことをします:

xcodebuild -project MY_PROJECT -target TEST_TARGET -sdk iphonesimulator  -configuration "Debug"

次に、問題が発生したとき、端末は次のように言います。

....PrecompiledHeaders/MYLIBRARY-Prefix-hhjuztynfruquodlgqxroyfibfkh/MYLIBRARY-Prefix.pch.d
clang: error: invalid architecture 'arm' for deployment target '-mios-simulator-version-min=4.3'
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1


** BUILD FAILED **


The following build commands failed:
    ProcessPCH /Users/nicoyuste/Library/Developer/Xcode/DerivedData/MY_APP-bxpgsdbefuawmiexyikbtvsatlsf/Build/Intermediates/PrecompiledHeaders/MYLIBRARY-Prefix-hhjuztynfruquodlgqxroyfibfkh/MYLIBRARY-Prefix.pch.pth MYLIBRARY-Prefix.pch normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

私はインターネット(ほとんどここにあります)を探していましたが、同じ問題で見つけたものはすべてうまくいきませんでした。xCodeのバージョンは4.5であり、そうすればxcodebuild -version私が得たものなので問題ありません。

また、ヘッダーファイルと周りで見つけたすべてのものを変更しようとしましたが、問題を解決するものは何もありません...

助言がありますか...

4

6 に答える 6

3

カスタムビルドスクリプトを使用している場合は、-archi386をxcodebuildに渡すことができます

例えば:

xcodebuild -project MY_PROJECT -target TEST_TARGET -sdk iphonesimulator -configuration "Debug" -arch i386

(上記のコードサンプルを右端までスクロールします。関連するフラグは-arch i386

i386に対してビルドするように強制する必要があります。ただし、i386がターゲットのVALID_ARCHS設定に含まれていることを確認する必要があります。

于 2013-01-23T22:02:25.217 に答える
3

同じ厄介な問題が再び発生した場合に備えて、ここでスクリプトを共有します。xcodeprojファイルがあるディレクトリでこのコマンドを実行することを忘れないでください。

xcodebuild \
-project "full-path-to-your-xcodeproj-file" \
-target YOUR_TARGET \
-sdk iphonesimulator6.1 \
-arch i386 \
-configuration Debug \
VALID_ARCHS="armv6 armv7 i386" \
ONLY_ACTIVE_ARCH=NO \
TARGETED_DEVICE_FAMILY="1" \
clean install

iPhone専用にビルドしているため、TARGETED_DEVICE_FAMILYを変更しました。iPhoneとiPadの両方でビルドする場合は、この行を削除するか、TARGETED_DEVICE_FAMILY ="1,2"に置き換えてください。

于 2013-08-20T00:24:29.893 に答える
1

私はまだこれについて疑問に思っている人々を見ています。私はずっと前にこの質問を投稿しました。xcodebuildの使用をやめ、現在xctoolを使用していますが、はるかにうまく機能します。このツールはFacebookによって開発されています。

于 2014-09-03T21:08:41.427 に答える
0

問題は、armをアーキテクチャとして指定するシミュレータ用に構築していることにあると思います。i386に変更してみてください

于 2012-10-24T14:51:12.803 に答える
0

ビルドマシンでXcode4.5にアップグレードした後、同様の問題が発生しました。私の場合、armv7s用に(まだ)ビルドできないサードパーティのライブラリがあるので、Architecturesビルド設定をに設定しarmv7ます。Xcode内の単体テスト、シミュレータービルドなどで問題なく動作しました。ただし、コマンドラインビルドを実行すると、同じメッセージで失敗しました。

に変更Architecturesarmv7 i386ましたが、シミュレーターのコマンドラインで正常にビルドされているようです。

のアーキテクチャにはこれら2つだけが含まれていることを示すGUIにもかかわらず、Standard (armv7,armv7s)シミュレータ用にビルドすると、そこにi386が隠れていると確信しています。

結局、その設定はJenkinsで正常に機能するようになりました。

于 2012-11-03T17:39:04.233 に答える
0

以下のコマンドを試しました:xcodebuild -arch i386 -sdk iphonesimulator7.1しかし、clangと同様のエラーで失敗しました:エラー:デプロイメントターゲットの無効なアーキテクチャ「arm」-mios-simulator-version-min = 6.0 '

これが私が解決した方法です:

xcodebuild -arch i386 VALID_ARCHS = "i386 armv7 armv7s" ONLY_ACTIVE_ARCH = NO -sdk iphonesimulator7.1

VALID_ARCHSとONLY_ACTIVE_ARCHを正しく設定する必要があります。これで機能します。これらの設定は、Xcodeで直接行うこともできます。

于 2014-08-27T07:17:54.803 に答える