使用 Monkey Talk iOS 构建创建问题
Posted
技术标签:
【中文标题】使用 Monkey Talk iOS 构建创建问题【英文标题】:Build creation issue with monkey talk iOS 【发布时间】:2014-05-30 20:51:33 【问题描述】:通过我的 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 就可以成功创建构建,但是这次 Monkey talk 无法与应用程序通信。
-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
欢迎任何形式的提示建议。
问候,
【问题讨论】:
谁能给我一些提示,如果他们愿意,任何人都可以询问更多细节。 最好提供否决票的理由不要只是这样做。如果你知道这个问题的答案告诉我。 【参考方案1】:所以我会假设这在以前是有效的,但现在它已经坏了。我在尝试构建链接到的目标 monkeyTalk 时遇到了这个问题。我不得不去链接器。目标->构建设置->链接。
我删除了 -all_load 链接并从 prod 目标加载了必要的链接并重新构建。然后我看到了monkeytalk lib加载。
我还假设您通过他们网站上的 ios 文档设置了 monkeytalk。
我并不是说这会解决你的问题,但我认为这会让你朝着正确的方向前进。
最好的,
【讨论】:
所以你从构建设置中删除了 -all_load 和 -ObjC 链接命令。然后你如何能够稍后加载猴子谈话文件。你如何确定你的猴子谈话文件已加载。跨度> 控制台输出告诉我它正在运行monkeytalk代理。测试运行的事实也有帮助。以上是关于使用 Monkey Talk iOS 构建创建问题的主要内容,如果未能解决你的问题,请参考以下文章
Reactjs+BootStrap开发自制编程语言Monkey的编译器:创建简易的页面IDE
微服务架构下运维平台构建经验分享 | Open Talk No.29