XCode 4中的PLCrashReporter - 不会在Simulator中编译

Mar*_*ski 8 xcode4 plcrashreporter

我必须在这里做一些完全愚蠢的事情,但我无法将PLCrashReporter框架包含在我的项目中.以下是我获取框架的步骤:

  1. 从谷歌代码上的官方项目网站下载.dmg文件
  2. 将CrashReporter.framework文件夹复制到项目的根目录
  3. 通过转到我的项目,选择目标,转到Build Phases选项卡,打开Link Binary With Libraries部分,单击加号,然后添加CrashReporter.framework文件夹来添加框架

我正在使用我的类文件中的框架

#import <CrashReporter/CrashReporter.h>

当我尝试在4.3模拟器下编译时,我收到以下错误:

体系结构i386的未定义符号:"_ OBJC_CLASS _ $ _ PLCrashReporter",引自:AppDelegate中的objc-class-ref + CrashReporting.o"_ OBJC_CLASS _ $ _ PLCrashReport",引自:AppDelegate中的objc-class-ref + CrashReporting.o ld:symbol( s)找不到架构i386 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

当我在设备下编译时,一切都很好.我需要包含某种标题或库搜索路径吗?

该应用程序在XCode 3下编译,在所有配置下都没有问题.

小智 13

我有同样的问题,并能够解决它.以下是我完成的步骤......

  1. 下载PLCrashReporter源代码版并解压缩.
  2. 打开PLCrashReporter xcode项目.此项目设置为使用旧SDK,更新每个目标所需的所有SDK以消除警告.这也是下一步编译所必需的.
  3. 导航到CrashReporter-iPhoneSimulator目标.在构建设置下:a)将"执行单个对象预链接"设置为"否",b)将"Mach-O类型"设置为"静态库".
  4. 选择CrashReport-iPhoneSimulator:[IOS模拟(即iPhone 4.3模拟器)],然后单击构建.
  5. 导航到PLCrashReporter的构建目录.对我来说,它是/ Users/username/Library/Developer/Xcode/DerivedData/CrashReporter-(随机字符)/ Build/Products/Debug-iphonesimulator
  6. 将libCrashReporter-iphonesimulator.a从步骤5中的build目录复制到要添加崩溃报告器的iphone应用程序项目目录.
  7. 在xcode中打开您的iphone应用程序项目.
  8. 下载PLCrashReporter二进制版本并将框架解压缩到本地目录.
  9. 使用此SO帖子将CrashReporter框架添加到您的项目中.
  10. 按照与步骤9相同的过程,将libCrashReporter-iphonesimulator.a静态库添加到构建阶段的"Link Binary with Libraries"部分.添加静态库时不需要*.framework目录.
  11. 查看Target中的"Link Binary with Libraries".确保libCrashReporter-iphonesimulator.a列在CrashReporter框架上方.您可以拖放以重新排序.

我希望这有帮助.

  • 刚决定放弃这个想法,看看所需的步骤数量...... (6认同)