Rob*_*Rob 22 git git-submodules cocoapods
我正在尝试使用嵌套的git子模块创建一个CocoaPod.我可以创建pod,但是,我无法完全安装它.
当我运行时,pod install --verbose我可以看到git submodule update --init正在运行而不是git submodule update --init --recursive没有拉动嵌套的子模块.
CocoaPods是否支持嵌套子模块,或者不支持?我已经在网上搜索潜在的潜在客户,但找不到任何东西!
我还应该提到我lint传递pod lib lint但不pod spec lint. pod spec lint抱怨它无法在嵌套子模块中找到头文件.我不确定这是否与上述问题有关.
(另请注意,我正在研究的这个特定的Pod只是一个概念证明.我将创建一个更复杂的Pod,它依赖于socket.IO-objc.不幸的是socket.IO-objc不能用作Pod ,并依赖于SocketRocket作为子模块.)
这是我的PodSpec:
Pod::Spec.new do |s|
s.name = "DebugTools"
s.version = "0.1.0"
s.summary = "Awesome tools for debugging iOS apps."
s.homepage = "https://github.com/robertcrabtree/DebugTools"
s.license = 'MIT'
s.author = { "Robert Crabtree" => "me@gmail.com" }
s.source = { :git => "https://github.com/robertcrabtree/DebugTools.git", :tag => s.version.to_s, :submodules => true }
s.platform = :ios, '7.0'
s.requires_arc = true
s.source_files = 'Pod/Classes/**/*', 'Pod/Submodules/LogMaster/LogMaster/*.{h,m}', 'Pod/Submodules/LogMaster/LogMaster/LogCore/*.h'
s.resource_bundles = {
'DebugTools' => ['Pod/Assets/*.png']
}
end
Run Code Online (Sandbox Code Playgroud)
这是我的Podfile:
pod "DebugTools", :git => "https://github.com/robertcrabtree/DebugTools.git", :submodules => true
Run Code Online (Sandbox Code Playgroud)
我相信 CocoaPods 的创建正是为了避免使用 GIT 子模块。
\n这是很酷的解释:https://roadfiresoftware.com/2013/05/a-case-for-switching-to-cocoapods-from-git-submodules/
\n\n\n让\xe2\x80\x99s 说你的项目依赖于AFNetworking。您将其添加为 git\n子模块,然后,有一天,由于不可抗力(或者仅仅因为\n作者的感受),AFNetworking 从其在 GitHub 上\n的主页中消失。它\xe2\x80\x99都消失了,消失在稀薄的空气中。现在,当新人克隆您的项目存储库时,他们运行 git submodule update --init \xe2\x80\xa6 并且失败。所以现在他们可以\xe2\x80\x99t 构建项目。你\xe2\x80\x99d最好也\n小心,因为如果你丢失了AFNetworking源代码,你\n可以\xe2\x80\x99t构建\xe2\x80\xa6
\n所以现在我们使用 CocoaPods,并将每个依赖项的源推送到\n我们的中央存储库。现在,当有人 git 克隆一个存储库时,他们会获得所需的所有代码,并且可以很好地构建项目。他们\xe2\x80\x99t\n甚至不需要CocoaPods来构建应用程序\xe2\x80\x93它就可以工作。
\n
因此,让 CocoaPods 完成它的工作。\nCocoaPods 管理 Xcode 项目的依赖项。(c) https://github.com/CocoaPods/CocoaPods
\n| 归档时间: |
|
| 查看次数: |
532 次 |
| 最近记录: |