swift 需要加publish
下面所有的操作必须是在自己配置好了cocoapods和git库,如果没有,请安装好在往下面进行
- 1 创建远程索引库 STFMSpecs ,创建一个项目,填写一个名称,readme不要,gitlone选择oc(疑惑:要是有swift怎么办?)
- 1.1 配置验证信息 https \ ssh
- 1.2 我配置的是ssh 在终端输入
ssh-keygen
会出现下面截图
-
1.3 打开.pub公有的 把里面的信息粘贴到https://coding.net/user -> 个人设置 - > SSH公钥(名称随便起)然后保存
-
2 然后输入命令
pod repo add STFMBase git@git.coding.net:CoderST/STFMSpecs.git
(其中STFMBase设个就是自己本地索引库的名称)-
2.1 输入上面命令 终端会让你输入密码 确认密码 可以不输入 直接回车 ok
-
2.2 在输入
pod repo
会看到下面的截图
-
-
3 创建远程的工程,纯洁的最好,(只写一个名称就好,其他的都不要写,因为下面在创建本地库的时候用的是cocoapods自带的方法,会创建本地git,如果远程里选中了 mit 或者 gitlone就会在远程生成git 在之后的关联remote的时候就会冲突,) 名称: STFMBase
-
4 然后创建本地测试代码 可以用下面的命令,让pod直接帮生成好对应的信息,
pod lib create EmojiToolModel
然后会有对应的信息,按需要的提示选中就好(这个名称要与远程的项目名称一致)
屏幕快照 2018-05-29 23.13.17.png
- 5 然后把自己写好的基础类,或者分类等放到Classes 删除这个文件下的ReplaceMe.m 替换自己的文件夹
- 6 然后执行命令到Example目录下,执行pod命令 安装成功(这里测试代码,如果有问题,继续修复Bug,直到没有问题为止)
-
7 修改EmojiToolModel.podspec文件信息(因为最终别人会通过spec文件下载自己的库,所以要更正从一开始从cocoapods下载下来的spec文件)
-
7.0 psec信息如下
屏幕快照 2018-05-29 23.19.41.png -
7.1 然后在进入Example 的上级目录下,把测试的和base等信息全部上传到远程服务器
../
-
7.2 验证spec文件是否合法
pod lib lint --allow-warnings
-
-
有时候验证会报一大堆错误,原因是 xcodebuild 编译时使用的 Swift 版本和你代码当前使用的版本可能不一样,
-
这时候就需要指定一下 Swift 版本,指定方法是在 podspec 同目录下创建一个 .swift-version 的文件,在里面写上 Swift 版本即可,例如 4.0 ,
-
或者 : 在终端输入以下命令也可以创建,创建完以后在执行 pod lib lint 就可以编译通过了。
如果有swift,则命令如下
echo "4.0" >> .swift-version
-
出现
passed validation
代表通过 -
7.3 本地验证成功后,下一步要远程验证,看到上面的spec文件有一个version版本号,还有source里也有,这里是要和提交的
屏幕快照 2018-05-29 23.23.27.pngtag
号一致
tag
号一致
先提交代码
-
7.4 然后本地代码和远程代码库进行关联,然后提交
- 7.5 成功之后发现标签页啥都没有,说明我们还没有对当前工程进行打tag标记
- 7.6 执行tag命令(注意:此处的tag一定要与spec的版本号一样)
- 8 然后在验证远程spec操作
- 9 然后把spec文件提交到自己的私有索引库 前往 -> 个人 -> xiudou -> .cocoapods -> repos ->STFMSpecs中
pod repo push STFMSpecs EmojiToolModel.podspec --allow-warnings
第一个STFMSpecs是repos下本地索引库的名称 EmojiToolModel.podspec是哪一个spec文件,在远程和本地都添加了对应的spec文件
STFMSpecs : 是你本地的私有库名称(pod repo命令可以查看到)
EmojiToolModel.podspec : 就是你自己现在要上传的spec文件 - 有时候这里也会报另外一个错误
....not clear
说明本地的库不干净git status
查看 在pod repo 找到自己的本地索引库 .gitigore
.DS_Store
STFMSpecs/.DS_Store
执行步骤
pod remove STFMSpecs (移除索引库)
pod repo add STFMSpecsTwo(此处可以改名) https://git.coding.net/CoderST/STFMSpecs.git
# Xcode
.DS_Store
#
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
#
#Pods/
特别注意:此操作如果成功后你会很奇怪为什么我只是往本地push关联了,为啥远程自己的索引库就自动有了呢?对的,你在执行pod repo push STFMSpecs EmojiToolModel.podspec
这一步的时候,系统会自动的往我们远程的specs管理库中push.
注意 : 在验证的时候如果引用了第三方的库,有时候会报很多警告,虽然没有错误,但是验证就是不通过,可以在命令后面加上--allow-warnings
如 : pod repo push STFMSpecs EmojiModel.podspec --allow-warnings
- 10
pod search EmojiToolModel
屏幕快照 2018-05-29 23.34.58.png
-
10.1如果以上都没有问题,发现pod search任然搜索不到,可以把本地search_index.json文件删除,重新pod search下载最新的json文件
用户 -> xd -> 资源库 -> Caches -> CocoaPods -> search_index.json
或者下面命令
rm ~/Library/Caches/CocoaPods/search_index.json
-
11 到此为止基本就搞定了,后面你可以自己新建一个工程,然后pod init 修改podfile文件
注意一定要加上source ‘……’ ,不然会找不到(可以通过pod repo 来查看),然后执行pod install
或者pod update --no-repo-update
网友评论