将iOS框架变成Cocoapod-我需要一个新的仓库吗?是否必须建立一个静态库?

时间:2018-12-19 21:50:11

标签: ios cocoapods

我有一个构建iOS框架的Objetive-C项目。它当前位于github上的git repo的子文件夹中。我想以Cocoapod的形式分发iOS框架中的代码。我有几个具体问题。

首先,我是否需要仅使用框架代码进行单独的回购?

第二,Cocoapods是否总是将我的代码构建到静态库中?可以的话-静态库很好-但如果我们要从框架(最终是动态库)切换到静态库,则必须进行影响其他项目的更改。我想知道是否可以让Cocoapods建立一个框架,这是一个好主意还是比其价值更大的麻烦。

谢谢!

1 个答案:

答案 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命令来创建正确的工作区。

希望向您展示一段有效而美好的旅程。