参考链接:http://blog.csdn.net/qxuewei/article/details/54412117
https://www.aliyun.com/jiaocheng/398428.html
1、在项目中集成cocoapods;
2、在项目根目录的上一个文件夹中创建一个文件夹lib,然后通过终端cd到该目录下;
解决方法就是在终端输入下面两条命令:
sudo gem install colored2
sudo gem update --system
然后重复2、3步即可会出现下面界面!
依次选择iOS、objc、Yes、None、TZ,意思一看就知道了,可以变化;这样就会自动创建了私有库工程,并自动打开
4、打开的工程就类似下面,其中上面的BYViewController等类可以给我们用来调试该私有库的,真正的私有库是放在下面pods--->Development-->Tools-->Classes里面;可以吧私有库包含的类拉到该文件中,这样本地私有库就创建成功了,其中podfile里面的pod 'Tools', :path => '../'中path意思就是指向该本地库的路径,该路径文件夹中内容就是私有库的内容,可以通过cd到该podfile根目录,然后通过pod install可以把该文件夹下面内容全部拉到项目中来,如果该私有库依赖第三方库,那么只需要将第三方库的pod到该私有库中即可,例如将pod 'AFNetworking', "~> 3.0" 写入到该私有库的podfile中
5、回到主项目的podfile中,添加
pod 'Tools', :path => '../lib/Tools'
这句话意思就是pod Tools私有库,路径是后面的,../意思是返回到上一个文件夹,然后lib子文件夹,然后Tools文件夹
6、cd到主项目的根目录,然后pod install ,这样就可以把私有库pod到主项目中,至此本地私有库创建结束
仅仅是本地私有库是没啥用的,我们需要远程的私有库才行,下面是创建远程私有库方法。
我们公司是自己搭建的gitLab,下面是创建私有库步骤:
点击New Project;会进入创建新项目界面
输入项目名字,描述,选择private模式,然后点击下面的create project
会进入到这个界面
2、打开终端,cd 到lib/Tools中,然后输入命令
git remote add origin http://172.16.1.102/zhaojingjing/Tool.git
后面路径是该项目的路径,可以选择是ssh或者http模式,两个模式路径不一样,(提示出错信息:fatal: remote origin already exists.
解决办法如下:
1、先输入$ git remote rm origin
2、再输入$ git remote add origin [git@github.com:djqiang/gitdemo.git](mailto:git@github.com:djqiang/gitdemo.git) 就不会报错了!
参考链接:http://blog.csdn.net/dengjianqiang2011/article/details/9260435)
然后输入
git push -u origin master
这个时候就把私有库项目传到gitLab上,但是私有库上的内容没传上去的,
然后输入
git add .(主要add后面加个空格然后再加点)
git commit -m '初始化'
这样就把私有库内容传到远程仓库中了
另外需要修改私有库的.podspec文件,
s.version 版本号
s.summary 描述
s.description 描述
s.homepage 库的根路径,例如http://172.16.1.102/zhaojingjing
s.source 库的真正路径
s.source_files 库的内容路径
另外我们需要给该库打个版本号,cd 库的根路径:../lib/Tools
查询版本号:git tag
设置版本号:git tag 0.1.0
上传版本号:git push --tags
这样就把远程库打上了标签号,注意的是设置的版本号要和.podspec文件里面的版本号一致
下一步就是提交.podspec文件到私有仓库,便于用户pod。
1、创建并设置一个私有的Spec Repository
在gitlab上创建一个空的仓库,命名为Specs,这个仓库是用来存放我们自己所有的私有库的spec文件,就如同官方的https://github.com/CocoaPods/Specs是用来存放所有官方的specs文件一样。
在终端执行命令:
pod repo add Specs http://xxx.git
注意:上面的命令的解释如下:
pod repo add REPO_NAME SOURCE_URL
其中的 REPO_NAME 是我们要添加的私有repo的名称(这里我们待会填的是:Specs),后面是仓库的 gitlab 地址。这里做的其实是创建的工作,也就是在~/.cocoapods/repo目录下添加了一个以你的私有repo为名的文件夹,但是并没有添加spec文件。
至此,我们已经在本地得到我们自己的私有仓库 Specs ,这是一个空的仓库。
假如原来私有仓库Specs地址变了,只需要,
pod repo add Specs 新地址
添加一个新的源地址
2、添加 刚才创建的 Tool.podspec 到你的 Spec Repository。
pod repo push Specs Tool.podspec
如果有警告,会导致无法通过,需要添加--allow-warnings
如果使用了第三方库,或者c函数相关的,需要添加--use-libraries
pod repo push Specs Tool.podspec --use-libraries --allow-warnings
试一下可否能搜到改私有库
pod search Tool
有时候会搜不到
解决:rm ~/Library/Caches/CocoaPods/search_index.json 然后重新搜索
然后将框架写入到项目的podfile里面,注意:
由于这是我们的私有库,当pod install的话,cocoapods会默认从gitHub上搜索,所以我们要在项目的podfile上面写上我们私有库的源地址,也就是我们之前创建的存放我们自己所有的私有库的spec文件的项目,例如:http://172.16.1.102/zhaojingjing/Specs.git
设置源的方法是在podfile上面写上
source 'http://172.16.1.102/zhaojingjing/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'
即可!
再就是更新库了,假如库有更新,需要更新到最新版本,添加版本号!操作如下:
1、cd 到本地库根目录
2、git add .(主要add后面加个空格然后再加点)
git commit -m '初始化'
这样就把私有库内容传到远程仓库中了
另外我们需要给该库打个版本号,cd 库的根路径:../lib/Tools
查询版本号:git tag
设置版本号:git tag 0.1.0
上传版本号:git push --tags
然后修改私有库的.podspec文件里面的s.version,必要时候也可以修改s.summary 描述
然后将刚才修改的.podspec文件传到私有库中
pod repo push Specs Tool.podspec --use-libraries --allow-warnings
其中Specs是私有源库的名称,Tool.podspec是刚才修改的.podspec文件名称
传完后试一下可否能搜到改私有库
pod search Tool
搜到,并且有两个版本号就说明成功了!并在在电脑~/.cocoapods/repos里面的对应私有库里面就有两个版本号了!
如果私有库需要依赖第三方库,那么只需要在.podspec文件中添加
s.dependency 'Masonry', '~> 1.0.2'
s.dependency 'MBProgressHUD', '~> 1.0.0'
即可!
修改库.podspec文件时候再次上传容易导致- ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code. You can use --verbose
for more information.
这个错误,解决方法就是要保证podspec文件填写正确,并且在 执行pod repo push Specs BMCCommon.podspec的时候添加--allow-warnings,例如pod repo push Specs BMCCommon.podspec --allow-warnings