-1

通过我的 Jenkins 服务器,我自动使用猴子谈话相关的 jar 对我的 iOS 项目进行检测。一旦完成,然后通过 ant (.xml),应用程序会自动触发烟雾测试。

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 回答