2011-05-31 57 views
8

我必须在这里做一些完全愚蠢的事情,但是我无法获得我的项目中包含的PLCrashReporter框架。下面是我得到的框架的步骤:Xcode 4中的PLCrashReporter - 不会在模拟器中编译

  1. 从官方网站的项目在谷歌代码
  2. 复制CrashReporter.framework文件夹到我的项目
  3. 新增的根目录下下载的.dmg文件转到我的项目,选择目标,去构建阶段选项卡,打开链接二进制与图书馆部分,点击加号,并添加CrashReporter.framework文件夹

我在拉框架框架在我的课堂文件中使用

#import <CrashReporter/CrashReporter.h>

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

为i386硬件架构未定义的符号: “_OBJC_CLASS _ $ _ PLCrashReporter”,从引用: objc级-REF在AppDelegate中+ CrashReporting.o “_OBJC_CLASS _ $ _ PLCrashReport”,从引用: objc级-REF中的AppDelegate + CrashReporting.o LD:符号(S)没有找到i386硬件架构 铛:错误:连接命令,退出失败代码1(使用-v选择e调用)

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

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

回答

13

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

  1. 下载PLCrashReporter source release并解压缩。
  2. 打开PLCrashReporter xcode项目。此项目设置为使用旧SDK,为每个目标更新所有必需的SDK以摆脱警告。这也是下一步编译所必需的。
  3. 导航到CrashReporter-iPhoneSimulator目标。在构建设置下:a)将“执行单对象预链接”设置为“否”,b)将“Mach-O类型”设置为“静态库”。
  4. 选择CrashReport-iPhoneSimulator:[IOS仿真(即iPhone 4.3模拟器)]并点击build。
  5. 导航到PLCrashReporter的编译目录。对我来说,它是/用户名/用户名/库/开发人员/ Xcode/DerivedData/CrashReporter-(随机字符)/生成/产品/调试-iphonesimulator
  6. 将libCrashReporter-iphonesimulator.a从步骤5中的build目录复制到iphone应用程序项目目录要添加崩溃记者。
  7. 在xcode中打开你的iphone应用程序项目。
  8. 下载PLCrashReporter binary release并将框架提取到本地目录。
  9. 使用此SO post将CrashReporter框架添加到您的项目中。
  10. 按照与步骤9相同的步骤,将libCrashReporter-iphonesimulator.a静态库添加到构建阶段的“Link Binary with Libraries”部分。添加静态库时,不需要* .framework目录。
  11. 检查目标中的“与库链接二进制文件”。确保libCrashReporter-iphonesimulator.a在CrashReporter框架上方列出。您可以拖放来重新排序。

我希望这会有所帮助。

+6

只是决定放弃看想要的步骤数量的想法... – mkto 2012-04-24 09:59:56

+0

嗨,第一点的链接显示13下载。我们应该下载哪个文件? – Confused 2012-12-11 12:15:45

+0

难道不可能访问您已经安装的项目吗?它非常复杂,我不认为每个人都了解每一步。我也不知道你在第2步讨论哪些SDK。 – 2015-05-13 09:25:24

1

为别人寻找这样的信息:

我跟着上面但是我得到的错误给出了相同的步骤。我删除了静态库,只包含了框架(你可以从他们的dmg中获得)。

它对我来说非常合适。我认为通过构建项目来创建静态库的过程是旧的(在他们创建框架之前)。

谢谢。

+0

哪些是静态库?也许你可以粘贴一个链接并更详细地解释步骤。 – 2015-05-13 09:28:03

0

不要忘了包括

libstdc++.dylib

“链接二进制与图书馆”

+0

任何意见,为什么这个lib应该包括在内?它关于PLCrashReport – 2015-01-16 10:27:34