-1

私の 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

どんな種類のヒントの提案も大歓迎です。

よろしく、

4

1 に答える 1

0

だから、これは以前は機能していたと思いますが、今は壊れています。ターゲットmonkeyTalkがリンクされているものを構築しようとしたときに、これに遭遇しました。リンカーに移動する必要がありました..ターゲット->ビルド設定->リンク。

-all_load リンクを削除し、prod ターゲットから必要なリンクをロードして再構築しました。次に、monkeytalk lib のロードを見ました。

また、サイトのiosドキュメントを介してmonkeytalkをセットアップすると仮定しています。

これで問題が解決するとは言いませんが、正しい方向に進むと思います。

一番、

于 2014-06-11T20:40:25.497 に答える