參考鏈接:http://blog.csdn.net/qxuewei/article/details/54412117
https://www.aliyun.com/jiaocheng/398428.html
1诗箍、在項目中集成cocoapods棺聊;
2爱致、在項目根目錄的上一個文件夾中創(chuàng)建一個文件夾lib鸣皂,然后通過終端cd到該目錄下驯嘱;
解決方法就是在終端輸入下面兩條命令:
sudo gem install colored2
sudo gem update --system
然后重復(fù)2境蔼、3步即可會出現(xiàn)下面界面!
依次選擇iOS、objc伺通、Yes箍土、None、TZ罐监,意思一看就知道了吴藻,可以變化;這樣就會自動創(chuàng)建了私有庫工程弓柱,并自動打開
4沟堡、打開的工程就類似下面侧但,其中上面的BYViewController等類可以給我們用來調(diào)試該私有庫的,真正的私有庫是放在下面pods--->Development-->Tools-->Classes里面航罗;可以吧私有庫包含的類拉到該文件中禀横,這樣本地私有庫就創(chuàng)建成功了,其中podfile里面的pod 'Tools', :path => '../'中path意思就是指向該本地庫的路徑粥血,該路徑文件夾中內(nèi)容就是私有庫的內(nèi)容柏锄,可以通過cd到該podfile根目錄,然后通過pod install可以把該文件夾下面內(nèi)容全部拉到項目中來复亏,如果該私有庫依賴第三方庫趾娃,那么只需要將第三方庫的pod到該私有庫中即可,例如將pod 'AFNetworking', "~> 3.0" 寫入到該私有庫的podfile中
5缔御、回到主項目的podfile中抬闷,添加
pod 'Tools', :path => '../lib/Tools'
這句話意思就是pod Tools私有庫,路徑是后面的耕突,../意思是返回到上一個文件夾笤成,然后lib子文件夾,然后Tools文件夾
6有勾、cd到主項目的根目錄疹启,然后pod install ,這樣就可以把私有庫pod到主項目中蔼卡,至此本地私有庫創(chuàng)建結(jié)束
僅僅是本地私有庫是沒啥用的喊崖,我們需要遠程的私有庫才行,下面是創(chuàng)建遠程私有庫方法雇逞。
我們公司是自己搭建的gitLab荤懂,下面是創(chuàng)建私有庫步驟:
點擊New Project塘砸;會進入創(chuàng)建新項目界面
輸入項目名字节仿,描述,選擇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上荐操,但是私有庫上的內(nèi)容沒傳上去的芜抒,
然后輸入
git add .(主要add后面加個空格然后再加點)
git commit -m '初始化'
這樣就把私有庫內(nèi)容傳到遠程倉庫中了
另外需要修改私有庫的.podspec文件,
s.version 版本號
s.summary 描述
s.description 描述
s.homepage 庫的根路徑托启,例如http://172.16.1.102/zhaojingjing
s.source 庫的真正路徑
s.source_files 庫的內(nèi)容路徑
另外我們需要給該庫打個版本號宅倒,cd 庫的根路徑:../lib/Tools
查詢版本號:git tag
設(shè)置版本號:git tag 0.1.0
上傳版本號:git push --tags
這樣就把遠程庫打上了標簽號,注意的是設(shè)置的版本號要和.podspec文件里面的版本號一致
下一步就是提交.podspec文件到私有倉庫驾中,便于用戶pod唉堪。
1、創(chuàng)建并設(shè)置一個私有的Spec Repository
在gitlab上創(chuàng)建一個空的倉庫肩民,命名為Specs唠亚,這個倉庫是用來存放我們自己所有的私有庫的spec文件,就如同官方的https://github.com/CocoaPods/Specs是用來存放所有官方的specs文件一樣持痰。
在終端執(zhí)行命令:
pod repo add Specs http://xxx.git
注意:上面的命令的解釋如下:
pod repo add REPO_NAME SOURCE_URL
其中的 REPO_NAME 是我們要添加的私有repo的名稱(這里我們待會填的是:Specs)灶搜,后面是倉庫的 gitlab 地址。這里做的其實是創(chuàng)建的工作工窍,也就是在~/.cocoapods/repo目錄下添加了一個以你的私有repo為名的文件夾割卖,但是并沒有添加spec文件。
至此患雏,我們已經(jīng)在本地得到我們自己的私有倉庫 Specs 鹏溯,這是一個空的倉庫。
假如原來私有倉庫Specs地址變了淹仑,只需要丙挽,
pod repo add Specs 新地址
添加一個新的源地址
2、添加 剛才創(chuàng)建的 Tool.podspec 到你的 Spec Repository匀借。
pod repo push Specs Tool.podspec
如果有警告颜阐,會導(dǎo)致無法通過,需要添加--allow-warnings
如果使用了第三方庫吓肋,或者c函數(shù)相關(guān)的凳怨,需要添加--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上面寫上我們私有庫的源地址均蜜,也就是我們之前創(chuàng)建的存放我們自己所有的私有庫的spec文件的項目萨赁,例如:http://172.16.1.102/zhaojingjing/Specs.git
設(shè)置源的方法是在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 '初始化'
這樣就把私有庫內(nèi)容傳到遠程倉庫中了
另外我們需要給該庫打個版本號聪铺,cd 庫的根路徑:../lib/Tools
查詢版本號:git tag
設(shè)置版本號: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里面的對應(yīng)私有庫里面就有兩個版本號了!
如果私有庫需要依賴第三方庫键兜,那么只需要在.podspec文件中添加
s.dependency 'Masonry', '~> 1.0.2'
s.dependency 'MBProgressHUD', '~> 1.0.0'
即可凤类!
修改庫.podspec文件時候再次上傳容易導(dǎo)致- ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code. You can use --verbose
for more information.
這個錯誤,解決方法就是要保證podspec文件填寫正確普气,并且在 執(zhí)行pod repo push Specs BMCCommon.podspec的時候添加--allow-warnings谜疤,例如pod repo push Specs BMCCommon.podspec --allow-warnings