2014-10-02 73 views
3

我有一個Framework和一個Workspace(project + pods)。我希望框架使用工作區類(包括項目和豆莢)。然後,當我分發我的框架時,我需要它引用上面的類。我怎麼做?xcode - 在Framework和Workspace之間共享代碼

+0

你有沒有機會嘗試我的解決方案? – 2014-10-10 15:58:18

回答

1

Cocoapods提供了爲吊艙添加依賴性的方法。因此,例如我編寫的cocoapod可能需要項目安裝最新的AFNetworking cocoapod。我也可以要求使用其他框架,如CoreLocationCoreBluetooth

如果您創建一個cocoapod框架,你應該能夠添加將添加相關性列表,當你運行:

pod install

我已經創建了一個框架,作爲前吊艙和使用這樣的事情在我podspec:

s.source    = { :git => ' <destination Git repo> ', :tag => '0.0.1' } 
s.ios.xcconfig  = { 'FRAMEWORK_SEARCH_PATHS' => '"$(PODS_ROOT)/<MyFrameWorkName>"' } 
s.ios.preserve_paths = '<MyFrameWorkName>.framework' 

然後,您應該能夠要求cocoapod有Ø療法依賴關係,例如:

s.frameworks = 'QuartzCore' 

s.ios.weak_frameworks = 'CoreBluetooth' 

s.dependency 'SDWebImage',     '~> 3.7' 
s.dependency 'GoogleAnalytics-iOS-SDK',  '3.0.3c' 

現在,當你/別人穿過的CocoaPods安裝到您的框架,他們將有他們需要在項目中安裝的一切。

1

您可以創建一個新的工作區,包括所有的人,通過這種方式寫podfile:

workspace 'AllInOne.xcworkspace' 
xcodeproj 'Workspace/Workspace.xcodeproj' 
xcodeproj 'Framework/Framework.xcodeproj' 

target 'ProjectA' do 
    platform :ios, '8.0' 
    xcodeproj 'Workspace/Workspace.xcodeproj' 
    pod 'nameofpod', '~> .1' 
end 

target 'Framework' do 
    platform :ios, '8.0' 
    xcodeproj 'Framework/Framework.xcodeproj' 
end 

編輯:

例如創建一個新的文件夾(名稱爲「ALLINONE」 )。在該文件夾中放置您的框架文件夾,其中存在framework.xcodeproj,並放置您的工作區文件夾。 現在,在AllInOne文件夾中創建podfile。

ALLINONE /工作區/ Workspace.xcodeproj

ALLINONE /框架/ Framework.xcodeproj

ALLINONE/podfile

ALLINONE/AllInOne.xcworkspace

:年底應在此目錄中存在這些文件
+0

我可以有更多的細節嗎?我應該只在現有的工作區中拖動框架嗎?我應該只在框架的podfile中添加一個部分嗎?框架準備就緒時將提供給用戶什麼?只有框架和捆綁文件? – Luda 2014-10-05 08:03:25

+0

>> pod install >>分析依賴關係>> [!]無法找到名爲'ProjectA'的目標(我的項目名稱) – Luda 2014-10-05 09:26:03

相關問題