0

CI システムの一部として、コマンド ラインから iOS プロジェクトをビルドしようとしています。xcodebuildコマンドを使用してアプリ ファイルを取得するつもりです。次に、アプリ ファイルがxcrunコマンドに提供され、配布用の署名付き ipa ファイルが取得されます。

私のプロジェクトでは、フォルダにあるCordova<project-folder>/CordovaLibを使用しています。

プロジェクト フォルダーで、Ant スクリプト内から次のコマンドを実行しました。

xcodebuild -target "<project-name>" -configuration Release clean build

CordovaLib ターゲットが正常にビルドされ、次のファイルが作成されました。

<project-folder>/CordovaLib/build/Release-iphoneos/libCordova.a

これは、次のログのスニペットで確認できます。

[exec] CreateUniversalBinary build/Release-iphoneos/libCordova.a 通常の armv7\ armv7s\ arm64 [exec] cd <project-folder>/CordovaLib [exec] export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer /usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/quake/bin:アプリケーション/ツール/apache-ant-1.8.4/bin:/ライブラリ/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin"

[exec]/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static <project-folder>/CordovaLib/build/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/armv7/ libCordova.a <project-folder>/CordovaLib/build/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/armv7s/libCordova.a <project-folder>/CordovaLib/build/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/ arm64/libCordova.a -o <project-folder>/CordovaLib/build/Release-iphoneos/libCordova.a

ターゲットのビルド中に<project-name>、次のエラーが 3 回発生しました。

ld: ファイルが見つかりません: /build/Release-iphoneos/libCordova.a clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用します)

そして最後に:

次のビルド コマンドが失敗しました: Ld build/HelloWorldProjectHelloWorldIpad.build/Release-iphoneos/HelloWorldProjectHelloWorldIpad.build/Objects-normal/armv7/HelloWorld normal armv7 Ld build/HelloWorldProjectHelloWorldIpad.build/Release-iphoneos/HelloWorldProjectHelloWorldIpad.build/Objects-normal/armv7s /HelloWorld 通常の armv7s Ld build/HelloWorldProjectHelloWorldIpad.build/Release-iphoneos/HelloWorldProjectHelloWorldIpad.build/Objects-normal/arm64/HelloWorld 通常の arm64 (3 回失敗)

したがって、ファイルlibCordova.aは次のフォルダーに作成されました。

<project-folder>/CordovaLib/build/Release-iphoneos

代わりに次の場所で検索されました。

<project-folder>/build/Release-iphoneos

iOS 9.1 で Xcode バージョン 7.1 (7B91b) を使用しています。

xcodebuildコマンドラインからコマンドで使用したパラメーターに加えて、Xcode で何かを設定する必要がありますか?

前もって感謝します、シモーネ。

4

1 に答える 1

0

私のプロジェクトは MEAP IDE から来ています。自動生成されたプロジェクト ファイルproject.pbxprojには、リンカーに対して次の設定があることがわかりました。

OTHER_LDFLAGS=-force_load "$(BUILT_PRODUCTS_DIR)/libCordova.a" -Obj-C

したがって、この方法で xcodebuild コマンドの呼び出しを変更しました。

xcodebuild -target "<project-name>" -configuration Release clean build 'OTHER_LDFLAGS=-force_load "$SRCROOT/CordovaLib/build/Release-iphoneos/libCordova.a" -Obj-C'

それは私の問題を解決しました。

于 2015-12-06T22:45:49.497 に答える