2014-10-02 74 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

相关问题