如何为这个项目结构配置cocoapod podspec和podfile?

时间:2014-06-12 04:46:34

标签: xcode cocoa-touch cocoapods

我的项目文件夹的结构如下:

+ Podfile
+ Apps/
  |
  +  Apps.xcodeproj
  | 
  +  Target1/
  | 
  +  Target2/

+ AppLib/
  |
  + AppLib.podspec
  |
  + AppLib.xcodeproj
  |
  + TargetLib1/
  | 
  + TargetLib2/

我的依赖关系结构如下

Apps - 依赖 - > AppLib

AppLib - 依赖 - > RestKitMagicalRecord

以下是我如何配置 podfile

workspace 'MyApp'
xcodeproj 'Apps/Apps'
xcodeproj 'AppLib/AppLib'


def import_pods
  pod 'AppLib', :path => './AppLib'
end

target 'Target1' do
  platform :ios, '7.0'
  import_pods
  xcodeproj 'Apps/Apps'
end

target 'Target1' do
  platform :ios, '7.0'
  import_pods
  xcodeproj 'Apps/Apps'
end

这是AppLib.podspec

Pod::Spec.new do |s|

  s.name         = "AppLib"
  s.version      = "0.0.1"
  s.summary      = "Common library."
  s.platform     = :ios, "7.0"
  s.source_files  = "Lib/Public/**/*.{h,m}"
  s.ios.deployment_target = '7.0'
  s.resources = "Lib/Nibs/**/*.xib"
  s.requires_arc = true
  s.dependency 'RestKit', '~> 0.23'
  s.dependency 'MagicalRecord'
end

在根文件夹(文件夹包含Podfile)pod install运行没有问题 但是当我在AppLibs项目中导入RestKit #import "RestKit.h"#import <RestKit/RestKit.h>时,xcode表示找不到该文件。

我的podfile和podspec是否正确? 为什么xcode声称找不到RestKit.h?

如果我想单独构建AppLibs,如何获取所有依赖项? (pod install不能与.podspec文件一起使用)我是否需要在AppLib文件夹中创建另一个podfile?

1 个答案:

答案 0 :(得分:0)

好吧,我的目标是

  1. 让lib建立并单独发货
  2. 使用CocoaPods管理app和lib的依赖关系
  3. 尽可能避免重复
  4. 使用一个工作区中的lib和app轻松调试
  5. 我结束的是

    1. 为lib和app分隔git repos
    2. 每个仓库都有自己的podfile
    3. Lib的repo是app的一个git子模块
    4. Lib的项目已包含在应用程序的工作区中
    5. App以老式方式链接lib &#39; LIBRARY_SEARCH_PATH&#39;,&#39; USER_HEADERS_SEARCH_PATH&#39;。不要让 CocoaPods破坏了我的lib文件夹结构(如果你将lib作为dev pod附加,它会这样做)。
    6. Lib有一个podspec列出依赖项,lib的podfile只是抓取 来自那里的&#39; podspec&#39;命令
    7. App的podfile也是如此(podspec&#39; lib / Lib.podspec&#39;) 引用lib的所有依赖项。
    8. 那就是它,希望它有所帮助。