【问题标题】:How to config cocoapod podspec and podfile for this project structure?如何为此项目结构配置 cocoapod podspec 和 podfile?
【发布时间】:2014-08-02 07:37:38
【问题描述】:

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

+ 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 吗?

【问题讨论】:

  • 您可以尝试在您的 podspec 中添加“headers”部分,并在那里指定 RestKit 和 MagicalRecord 标头。虽然我认为 CocoaPods 应该自己处理这个问题

标签: xcode cocoa-touch cocoapods


【解决方案1】:

嗯,我的目标是

  1. 让lib单独构建和发布
  2. 使用 CocoaPods 管理应用程序和库的依赖关系
  3. 尽可能避免重复
  4. 使用一个工作区中的 lib 和应用程序轻松调试

我的结局是

  1. lib 和应用程序的单独 git 存储库
  2. 每个 repo 都有自己的 podfile
  3. Lib 的 repo 是 app 的一个 git 子模块
  4. Lib 的项目包含在应用的工作区中
  5. App 以老式方式将 lib 与 'LIBRARY_SEARCH_PATH'、'USER_HEADERS_SEARCH_PATH'。为了不让 CocoaPods 会破坏我的 lib 文件夹结构(如果您将 lib 作为 dev pod 附加,它会这样做)。
  6. Lib 有一个 podspec 列出依赖项,lib 的 podfile 只是抓取 从那里使用“podspec”命令
  7. App 的 podfile 做同样的事情(podspec 'lib/Lib.podspec'),因此 引用 lib 的所有依赖项。

就是这样,希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 2015-03-30
    • 2012-11-03
    • 2017-10-06
    相关资源
    最近更新 更多