我有一个构建iOS框架的Objetive-C项目。它当前位于github上的git repo的子文件夹中。我想以Cocoapod的形式分发iOS框架中的代码。我有几个具体问题。
首先,我是否需要仅使用框架代码进行单独的回购?
第二,Cocoapods是否总是将我的代码构建到静态库中?可以的话-静态库很好-但如果我们要从框架(最终是动态库)切换到静态库,则必须进行影响其他项目的更改。我想知道是否可以让Cocoapods建立一个框架,这是一个好主意还是比其价值更大的麻烦。
谢谢!
答案 0 :(得分:1)
我会告诉你我在项目中所做的事情。
我有一个构建iOS框架的Objetive-C项目
所以您已经知道制作框架很热。否则,我建议您从www.raywenderlich.com
阅读这些精彩的教程首先,我是否需要仅使用用于 框架?
为了我的发展
我已经对所有框架/库(共享代码)进行了单独的回购,并将其作为git submodule添加到了我的项目中。
git submodule add https://github.com/me/MyFramework
当我全新克隆项目时,我使用以下命令初始化子模块:
git submodule update --init --remote
git submodule foreach git checkout master // this only if you wanna the master commit and not be in a detach state
您还可以通过添加
将子模块锁定到特定的提交或标记或单独的存储库的分支。branch = commit|tag|branch
在您的.gitmodules
文件中
我将框架制作为框架Pod
,如此处所述:
https://www.raywenderlich.com/5109-creating-a-framework-for-ios
然后通过在主项目Podfile
中将路径指定为相对拍子 '../my_framework_pod'
platform :ios, '12.0'
target 'MyMainAwsomeProject' do
use_frameworks!
pod 'MyFramework', :path => '../MyFramework'
end
如果您不想将其导入为开发容器(代码将为只读),则可以放置git repo URI而不是相对路径。
第二,Cocoapods是否总是将我的代码构建到静态库中?
说实话,我一直将其视为静态库。但这是您在主项目中使用的所有Pod的静态库。
但是对您来说应该很轻松,因为您只需要更改其使用方式即可。通过将您的框架以及您已经使用的所有其他Pod添加到Podfile中。
您只能将其添加到主项目Podfile
中,当您键入pod install
时,由pod
命令来创建正确的工作区。
希望向您展示一段有效而美好的旅程。