使用Cocoapods + WatchOS 2目标

问题描述 投票:3回答:2

我有一个iOS项目,有很多pod,大约二十个。我想集成一个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

cocoapods watchkit apple-watch watch-os-2
2个回答
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支持的pod,不要在sharedPods中添加不支持watchOS的pod。例如

def sharedPods
        pod 'RealmSwift'
        pod 'Alamofire'
        pod 'otherWatchOS&iOS supported Pod1'
        pod 'otherWatchOS&iOS supported Pod2'
    end

target '<your iOSApp Name>'中仅添加iOS支持的pod

target '<your iOSApp Name>' do
platform :ios, '8.0'
   sharedPods
   pod 'otherOnlyiOS supported Pod1'
   pod 'otherOnlyiOS supported Pod2'
end

因此,通过这种方式,您可以为所需目标添加所需的pod。


0
投票

我发现了我的问题!我使用Swift作为我的Watch代码,但我的父应用程序在Obj-c中。认为这不会是一个问题,除了监视目标试图编译我在我的主应用程序中使用的Swift桥接头,这是导致这些pod不必要地构建的原因。因此,解决方案是为Watch目标指定不同的桥接头或使用Obj-c!

© www.soinside.com 2019 - 2024. All rights reserved.