2015-12-28 44 views
3

我有一个iOS项目,有大量的豆荚,大约二十。我想集成一个watchOS 2应用程序,但CocoaPods要求podspec包含对watchOS的支持(如下所示:http://blog.cocoapods.org/CocoaPods-0.38/使用Cocoapods + WatchOS 2目标

起初,我想我可以将所有未更新的豆荚分叉,我的pod文件给那些分叉回购,而鲍勃是你的叔叔。问题是我使用的一些豆荚是封闭的/不公开的。有没有办法让我不为watchOS目标构建主应用程序的窗格?喜欢用像这样?:

target "Watch" do end

目标隔离我似乎无法得到那个^潜在的解决方案来构建,因为它仍然试图建立豆荚。我也试过这个回购,没有运气:https://github.com/orta/cocoapods-expert-difficulty

回答

7

有两种方法可以将pod文件与podfile集成到WathOS中。

1)直接添加必要的窗格来观看扩展名如下。

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 

只添加watchOS和iOS支持荚sharedPods, 不要在sharedPods不支持watchOS添加荚。 例如

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

target '<your iOSApp Name>' 如只添加iOS的支持荚

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

因此,这种方式可以为所需的目标添加所需的窗格。

+0

这就是我试过的。我所说的问题是,我使用的许多豆荚不支持其pod规范中的watchOS。因此,如果我以您描述的方式使用它们,可可豆会抛出错误,说明豆荚不支持watchOS。有什么方法可以用所有的豆荚构建主应用程序,但是建立没有豆荚的watchOS目标? –

+0

请根据您的要求检查编辑的答案。 –

0

与cocoapods战斗后,WatchOS2切换到迦太基 - 完美的作品。并更容易设置

0

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