iOS swift组件化之私有库创建及问题记录

551 阅读1分钟

1、进入git创建仓库

fbpfcp-zoom-in-crop-mark_1304_0_0_0.png

2、终端添加spec repo

pod repo add xxxxKitSpec github.com/xxxx/xxxxKi…

说明:xxxxKitSpec 仓库的repo名

github.com/xxxx/xxxxKi… 是刚创建的远程仓库地址

spec repo 中包含了三方库的podspec 文件,管理pod 库

3、Pod 创建本地工程文件

fbpfcp-zoom-in-crop-mark_1304_0_0_0.png

4、进入刚刚创建的工程目录找到ReplaceMe.swift 文件 替换成自己的库文件

fbpfcp-zoom-in-crop-mark_1304_0_0_0.png

5、测试和验证

1、cd进入目录的Example工程,pod install

2、打开Example工程,进行文件的测试

3、终端输入pod lib lint TestKit.podspec --allow-warnings 进行验证

6、将修改的代码上传到远程仓库

git repo add origin github.com/xxx/testkit…

git push -u origin master

7、打 tag ,这里需要重点注意的是,我们给打的标签值要与podspec文件中的版本号一致。

fbpfcp-zoom-in-crop-mark_1304_0_0_0.png

git tag -m "0.1.1" 0.1.1

git --tags push --allow-warnings

ar5nd-irg6f.png

 这里将podspec 推送到本地和远程

8、在项目中使用

在工程的podfile文件中添加仓库的地址

source 'github.com/xxxx/TestKi…'

pod "TestKit"

然后 pod install

二、问题记录

问题:error: Command MergeSwiftModule failed with a nonzero exit code

解决方法:project->target->builfsetting->compilation Mode-> debug->切换为whole module

问题:swift语法报错

解决方法:build Settings -> swift language version -> swift 5

问题:建swift版本私有库pod lib lint 报错 The validator used Swift 4.0 by default because no Swift version was specified.

解决方法:在.spec文件里设置swift版本号,根据当前xcode能支持的最高版本来

s.swift_version = '5.0'

问题:不能使用库里面的类和方法

解决方法:需要使用的类、方法、属性 需用 public修饰

问题:报错 No search module

解决方法:在taggets->build phases->Link binary with libraries中删除后再添加