Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c xcode-在框架和工作区之间共享代码_Objective C_Xcode_Frameworks_Cocoapods_Workspace - Fatal编程技术网

Objective c xcode-在框架和工作区之间共享代码

Objective c xcode-在框架和工作区之间共享代码,objective-c,xcode,frameworks,cocoapods,workspace,Objective C,Xcode,Frameworks,Cocoapods,Workspace,我有一个框架和一个工作区(project+pods)。我希望框架使用工作空间类(项目和POD)。然后,当我发布我的框架时,我需要它引用上面的类。我该怎么做 通过以这种方式编写一个pod文件,您可以创建一个新的工作区,包括所有这些工作区: workspace 'AllInOne.xcworkspace' xcodeproj 'Workspace/Workspace.xcodeproj' xcodeproj 'Framework/Framework.xcodeproj' target 'Proje

我有一个框架和一个工作区(project+pods)。我希望框架使用工作空间类(项目和POD)。然后,当我发布我的框架时,我需要它引用上面的类。我该怎么做

通过以这种方式编写一个pod文件,您可以创建一个新的工作区,包括所有这些工作区:

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文件夹,其中存在framework.xcodeproj,并放置工作区文件夹。 现在,在AllInOne文件夹中创建podfile。最后,应在此目录中存在以下文件:

AllInOne/Workspace/Workspace.xcodeproj

AllInOne/Framework/Framework.xcodeproj

AllInOne/podfile


AllInOne/AllInOne.xcworkspace

Cocoapods提供了向pod添加依赖性的方法。例如,我编写的cocoapod可能要求项目安装最新的
AFNetworking
CoCoCoaPod。我还可以要求使用其他框架,如
CoreLocation
CoreBluetooth

如果您将框架创建为cocoapod,您应该能够添加一个依赖项列表,这些依赖项将在运行时添加:

pod安装

我以前创建过一个框架作为pod,并在我的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'

现在,当您/其他人通过cocoapods安装您的框架时,他们将在项目中安装他们需要的所有东西。

我可以了解更多详细信息吗?我应该在现有的工作区中拖动框架吗?我应该只在podfile中为框架添加一个部分吗?当框架准备就绪时,将向用户提供什么?只有框架和捆绑文件?>>pod安装>>分析依赖项>>[!]找不到名为“ProjectA”(我的项目名称)的目标。您有机会尝试我的解决方案吗?如果我希望在项目和框架之间共享特定类,如何执行此操作
s.frameworks   = 'QuartzCore'

s.ios.weak_frameworks =  'CoreBluetooth'

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