我已经创建了一个示例项目来说明我的问题here。
总之,我试图使用一个"出售的框架" CocoaPod在工作区操场内。我认为这是可能的,但需要对项目设置进行一些调整,我无法弄清楚要改变什么。
要在sample project中观察问题,请执行以下操作:
CocoaPods-Test/CocoaPods-Test.xcworkspace
。pod install
。CocoaPods-Test
目标已成功构建并成功运行,导入PromiseKit
和TwilioChatClient
窗格。Playground.playground
。 PromiseKit
时游乐场执行正常,但如果导入TwilioChatClient
,游乐场执行将失败,并且#34;没有这样的模块' TwilioChatClient'"。 阅读以下资源后:
我认为这个问题可能与TwilioChatClient
是一个"被出售的框架" (请参阅其podspec),这意味着不会为其创建pod目标。在阅读了上述资源后,我觉得解决方案已经触手可及,但我无法弄明白。
虽然这里的示例项目说明了我认为的根本问题,但促使我创建此示例项目的问题只是稍微复杂一点。
在我的项目中,我创建了一个包含我所有应用程序代码的框架目标(因此可以将其导入我的应用程序,也可以使用应用程序资源导入我的游乐场)。然后,此框架具有pod依赖项,包括PromiseKit
和TwilioChatClient
。操场上的执行错误是不同的("无法查找符号"而不是"没有这样的模块"),因为我没有直接导入CocoaPods模块但是我的框架使用pod框架。
我怀疑我是否可以解决这个问题"没有这样的模块"问题,它将帮助我解决我的"无法查找符号"问题。
最后,这似乎是一个很好的机会,可以做出其他人似乎不想做的开源贡献(参见讨论here)。坦率地说,我很乐意做出贡献,但在阅读了一些内容之后,感觉我不知道CocoaPods,Xcode构建过程等究竟发生了什么(例如here和here)。任何有助于理解Xcode构建过程的引用以及CocoaPods在幕后所做的事情都值得赞赏。似乎我发现的资源要么是“非常高级别的概述”。 (我得到的),或者#34;挖掘源代码",而不是很多。
答案 0 :(得分:3)
如果您必须完成这项工作,我想出了一个解决方法,即在Pods项目中创建一个与供应商框架相同的框架目标,并使用框架作为唯一的依赖项公开使用其所有标头。我已经分了你的GH示例并将其链接here。
这不是最优雅的解决方案,但它可以帮助你解决问题。
UPDATE 首先构建“假”框架,然后构建应用程序目标,然后去游乐场。