我有一个目前正在运行的应用程序,一切都很好。
当我转到File-> New-> Target并添加一个watchkit app / extension时,构建会立即被破坏,因为"模块' Crashlytics'找不到"。目前,使用@import Crashlytics
访问Crashlytics,我检查了项目,并且pbxproj文件具有引用正确位置的崩溃框架,并且项目中可以看到Crashlytics.h。我尝试切换到#import "Crashlytics.h"
只是为了看看它是否与模块有关,而不是简单地导入标题,而是Crashlytics.h file not found
。
Crashlytics已经在这个项目中工作了很长时间,工作得很好。在使用外部框架或pod时,在手表扩展中添加时是否需要额外的东西?
(如果我完全注释掉这一行,只是为了看看会发生什么,我为我们正在使用的其中一个cocoapods遇到了类似的问题,如果我继续发表评论,我会愿意这样做事情我最终不得不删除任何外部框架
答案 0 :(得分:9)
在Podfile
中使用link_with。
link_with 'appName', 'appName WatchKit Extension'
pod 'Alamofire', :git => "git@github.com:Alamofire/Alamofire.git", :branch => 'xcode-6.3'
pod 'SwiftyJSON', :git => "git@github.com:SwiftyJSON/SwiftyJSON.git", :branch => 'xcode6.3'
答案 1 :(得分:3)
我实际上自己找到了答案。像往常一样,它是愚蠢而又重要的东西。当我添加扩展时,第三方库和框架没有自动添加到目标,所以我不得不重新进入并且"添加文件"为了将Crashlytics框架添加到WatchKit扩展目标中。
此外,事实证明这是一个更广泛的问题。我的猜测是,当添加任何扩展时,任何第三方库或框架都可能发生这个问题。我的cocoapods也遇到了问题,不得不补充: link_with' target1',' target2' 到podfile以确保将pod添加到不仅仅是默认的第一个目标。
支持斯蒂芬约翰逊,但是对于这类问题,Header和Library搜索路径是检查调试的好地方。
答案 2 :(得分:0)
我必须在我的监视工具包扩展目标的构建设置中更新我的标题搜索路径。对于我的应用,我将扩展程序的标题搜索路径与我应用的标题搜索路径相匹配。