私の Jenkins サーバーを介して、Monkey Talk 関連の jar を使用して iOS プロジェクトのインストルメンテーションを自動的に行います。
xcodebuild -project app/XXX.xcodeproj -target XXX1 VALID_ARCHS=i386 -arch i386 -configuration Debug -sdk iphonesimulator7.1 -xcconfig /opt/monkeytalk/MonkeyTalk.xcconfig build
以下は.xconfigファイルの内容です。この構成ファイルを変更せずにそのままにしておくと、ビルドが失敗します(Jenkins経由でトリガーされます)。
OTHER_LDFLAGS = $(inherited) -force_load /opt/monkeytalk/libMonkeyTalk.a -force_load /opt/monkeytalk/xxx.a -framework CFNetwork -framework QuartzCore -lsqlite3
しかし、.xconfig ファイルを以下のステートメントに変更するとすぐに、Jenkins はビルドの作成に成功しますが、今回はモンキー トークがアプリケーションと通信できません。
-force_load /opt/monkeytalk/libMonkeyTalk.a -force_load /opt/monkeytalk/xxx.a -framework CFNetwork -framework QuartzCore -lsqlite3
以下は、この問題のログ ステートメントです。
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_XXXCrashManager", referenced from:
objc-class-ref in AppDelegate.o
objc-class-ref in UIViewController+Breadcrumbs.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
** BUILD FAILED **
The following build commands failed:
Ld build/Debug-iphonesimulator/XXXXXX.app/XXXXX normal i386
どんな種類のヒントの提案も大歓迎です。
よろしく、