我有一个包含很多pod的iOS项目,大约20个。我想集成一个watchOS 2应用程序,但CocoaPods要求podspec包含对watchOS的支持(如下所示:http://blog.cocoapods.org/CocoaPods-0.38/)
起初,我以为我可以分叉所有未更新的pod,将我的podfile指向那些分叉的repos,bob是你的叔叔。问题是我正在使用的一些pod是关闭/不公开的。有没有办法让我不为watchOS目标构建主应用程序的pod?就像使用目标隔离一样?:
target "Watch" do
end
我似乎无法获得构建的潜在解决方案,因为它仍然试图构建pod。我也试过这个回购,没有运气:https://github.com/orta/cocoapods-expert-difficulty
答案 0 :(得分:10)
使用podfile和WathOS集成pod有两种方法。
1)直接添加所需的pod以观看扩展程序,如下所示。
target '<your watch Extension Name>' do
platform :watchos, '2.0'
pod 'RealmSwift'
pod 'Alamofire'
pod 'MMWormhole', '~> 2.0.0'
end
2)创建共享窗格并同时添加到手表扩展程序和iOS目标。
def sharedPods
pod 'RealmSwift'
pod 'Alamofire'
end
target '<your watch Extension Name>' do
platform :watchos, '2.0'
sharedPods
end
target '<your iOSApp Name>' do
platform :ios, '8.0'
sharedPods
end
仅在sharedPods
中添加watchOS和iOS支持的广告连播,
不要在sharedPods
中添加不支持watchOS的pod。
的 e.g。强>
def sharedPods
pod 'RealmSwift'
pod 'Alamofire'
pod 'otherWatchOS&iOS supported Pod1'
pod 'otherWatchOS&iOS supported Pod2'
end
仅在target '<your iOSApp Name>'
中添加iOS支持的广告连播
的 e.g。强>
target '<your iOSApp Name>' do
platform :ios, '8.0'
sharedPods
pod 'otherOnlyiOS supported Pod1'
pod 'otherOnlyiOS supported Pod2'
end
因此,通过这种方式,您可以为所需目标添加所需的pod。
答案 1 :(得分:0)
我发现了我的问题!我使用Swift作为我的Watch代码,但我的父应用程序在Obj-c中。认为它不会是一个问题,除了监视目标试图编译我在我的主应用程序中使用的Swift桥接头,这是导致这些pod不必要地构建的原因。因此,解决方案是为Watch目标指定不同的桥接头或使用Obj-c!