【发布时间】:2015-01-03 15:39:24
【问题描述】:
我正在尝试使用 Xcode 6 提供的用于创建 Cocoa Touch 框架的新模板来构建 iOS 框架 (Test.framework)。 该框架具有在 Podfile 中指定的不同依赖项(如 AFNetworking 或 FacebookSDK)。我不希望框架中包含依赖项,我只想链接它们。
问题是当我构建框架时,libPods.a 被链接并包含在内。 问:如何链接 libPods.a 库,但不将其包含在框架中?
更多详情:
我读过关于弱链接的文章: https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html 但是我在玩项目设置方面没有太多经验,我不是专业人士。
我尝试将 libPods.a 标记为“可选”,但没有任何改变,仍然包含依赖项。
我尝试从 Build Phases 的“Link Binary With Libraries”部分中删除 libPods.a,但出现此错误(在清理项目文件夹并再次构建之后):
ld: library not found for -lPods-MyFramework-AFNetworking
我尝试从“其他链接器标志”中删除所有标志,但它给了我未定义的符号:
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_FBSession", referenced from:
objc-class-ref in TestClass.o
ld: symbol(s) not found for architecture armv7
以下是包含库的干净项目的源代码: https://www.dropbox.com/sh/0ymuzw6kiagz02j/AABzyHiZVaQQvBEnjBgRBq3ua?dl=0
【问题讨论】:
标签: ios iphone frameworks cocoapods weak-linking