2015-12-28 45 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!