我必须在这里做些完全愚蠢的事情,但是我的项目中没有包含PLCrashReporter框架。这是我为获取框架而采取的步骤:
从Google官方项目站点odt_rli上下载了.dmg文件将CrashReporter.framework文件夹复制到我的项目的根目录中转到我的项目,选择目标,转到“构建阶段”选项卡,打开“使用库链接二进制文件”部分,单击加号,然后添加CrashReporter.framework文件夹,从而添加了框架。
我通过使用在我的类文件中拉入框架
#import <CrashReporter/CrashReporter.h>
当我尝试在4.3模拟器下进行编译时,出现以下错误:
体系结构i386的 undefined symbol :
从以下位置引用的“_OBJC_CLASS _ $ _ PLCrashReporter”
AppDelegate + CrashReporting.o中的objc-class-ref
从以下位置引用的“_OBJC_CLASS _ $ _ PLCrashReport”:
AppDelegate + CrashReporting.o中的objc-class-ref
ld:找不到体系结构i386的符号
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
当我在设备下编译时,一切都很好。我需要包括某种标题或库搜索路径吗?
该应用程序可以在XCode 3下编译,在所有配置下都不会出现问题。 我遇到了同样的问题,并且能够解决它。这是我完成的步骤...
下载PLCrashReporter source release并解压缩。 打开PLCrashReporter xcode项目。该项目设置为使用旧的SDK,为每个目标更新所有必需的SDK,以消除警告。在下一步中也需要进行编译。 导航到CrashReporter-iPhoneSimulator目标。在“build设置”下:a)将“执行单个对象预链接”设置为“否”,b)将“Mach-O类型”设置为“静态库”。 选择CrashReport-iPhoneSimulator:[IOS模拟(即iPhone 4.3模拟器)],然后单击build。 导航到PLCrashReporter的构建目录。对我来说,它是/Users/username/Library/Developer/Xcode/DerivedData/CrashReporter-(随机字符)/Build/Products/Debug-iphonesimulator 将步骤5中的build目录中的libCrashReporter-iphonesimulator.a复制到要向其中添加崩溃报告器的iphone应用程序项目目录。 用xcode打开您的iPhone应用程序项目。 下载PLCrashReporter binary release并将框架提取到本地目录。 使用此SO post将CrashReporter框架添加到您的项目中。 按照与步骤9相同的过程,将libCrashReporter-iphonesimulator.a静态库添加到构建阶段的“使用库链接二进制”部分。添加静态库时,不需要* .framework目录。 在目标中检查“链接二进制文件与库”。确保libCrashReporter-iphonesimulator.a在CrashReporter框架上方列出。您可以拖放以重新排序。
我希望这有帮助。