使用Cocoapods + WatchOS 2目标

时间:2015-12-28 23:02:39

标签: cocoapods watchkit apple-watch watch-os-2

我有一个包含很多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

2 个答案:

答案 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!