0

在 Xcode 4.5 中将 BlocksKit 1.8.1 与 iOS 项目一起使用时,我收到警告。

警告是:

在此处输入图像描述

详情如下:

GenerateDSYMFile /Users/john/Library/Developer/Xcode/DerivedData/AppName-epvlodroaifdsbacdbbxnlhuptrh/Build/Products/Debug-iphoneos/AppName.app.dSYM /Users/john/Library/Developer/Xcode/DerivedData/AppName-epvlodroaifdsbacdbbxnlhuptrh/Build/ Products/Debug-iphoneos/AppName.app/AppName cd /Users/john/Documents/AppName_iphone setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode .app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil /用户/john/库/开发人员/Xcode/DerivedData/AppName-epvlodroaifdsbacdbbxnlhuptrh/Build/Products/Debug-iphoneos/AppName。app/AppName -o /Users/john/Library/Developer/Xcode/DerivedData/AppName-epvlodroaifdsbacdbbxnlhuptrh/Build/Products/Debug-iphoneos/AppName.app.dSYM

使用设备目标编译时。

以模拟器为目标进行编译时,警告有点不同:

在此处输入图像描述

我已按照 Git 页面上的说明进行操作:

  • 下载 BlocksKit 版本。
  • 将 libBlocksKit.a 和 Headers 移动到项目的文件夹中,最好是像“Vendor”这样的子文件夹。
  • 在“Build Phases”中,将 libBlocksKit.a 拖入目标的“Link Binary With Libraries”构建阶段。
  • 在目标或项目的构建设置中,将“Other Linker Flags”更改为 -ObjC -all_load。确保您的应用程序与 CoreGraphics、Foundation、MessageUI 和 UIKit 链接。
  • 将 BlocksKit 头文件的相对路径更改(或添加)到“头文件搜索路径”,例如 $(SRCROOT)/Vendor/Headers。
  • 在项目的前缀标头中插入 #import `。

有什么问题?

4

2 回答 2

1

我有同样的警告,找不到原因,但找到了临时解决方案。

也许相关:

BlocksKit 1.8.1 中的链接似乎存在更多问题:我的应用程序编译并在开发版本中正常工作(尽管显示了这些警告)。但是,当我为 Ad Hoc 部署构建存档时,libBlocksKit 显然没有链接,因为当使用以下崩溃日志调用 BlocksKit 方法之一时应用程序崩溃:

Last Exception Backtrace:
0   CoreFoundation                  0x3b2783e2 __exceptionPreprocess + 158
1   libobjc.A.dylib                 0x3a2d195e objc_exception_throw + 26
2   CoreFoundation                  0x3b27bdbc +[NSObject(NSObject) doesNotRecognizeSelector:] + 180
3   CoreFoundation                  0x3b27a648 ___forwarding___ + 388
4   CoreFoundation                  0x3b1d2204 _CF_forwarding_prep_0 + 20

对于所有构建配置,我的其他链接器标志设置为-ObjC. (我放弃了-all_load,因为这会导致我正在使用的 AdMob 库出现“重复符号”。)

临时解决方案:

我切换回 BlocksKit 的旧分支: https ://github.com/zwaldowski/BlocksKit 并使用链接器标志-ObjC。该分支已被弃用,但对我有用,而所有构建配置都没有上述任何警告。

于 2012-12-06T10:01:38.377 回答
0

似乎这是一个将在 BlocksKit 的下一个版本中修复的错误:

https://github.com/pandamonia/BlocksKit/issues/108

于 2013-04-04T13:01:41.707 回答