第一.組件中創(chuàng)建文件夾
根據(jù)(基于GitLab的私有倉庫一)的方式,已經(jīng)把私有庫創(chuàng)建出來了轴咱,并且已經(jīng)組裝進(jìn)了自己想要的工程(ComponentBasedDemo)。那么烈涮,如果我們想在組件中做到像主工程中那樣朴肺,利用文件夾區(qū)分小模塊,要怎么辦呢坚洽?
錯誤的做法:在組件中直接右擊->new group或者是去組件物理目錄下戈稿,創(chuàng)新新的文件夾,并且在組件中add進(jìn)來讶舰,以上做法都是不正確的鞍盗,雖然在你本地看上去沒什么問題,但是別人pod的你的組件的時候跳昼,無法攜帶你創(chuàng)建的文件夾般甲。
手動創(chuàng)建新的文件夾命名為PayListProject,并且在組件中add進(jìn)來鹅颊,并且完成以上圖片上的配置敷存。
之后可以更新組件了,更新命令:
git add -A && git commit -m "add pod files"
git remote add origin https://gitlab.com/xxxxxx/PayListProject.git????? //連接遠(yuǎn)程github項(xiàng)目
git tag '0.1.0'? //這里的版本號注意要和podspec文件中的版本號統(tǒng)一
git push --tags??????? //將本地tag更新到github項(xiàng)目上去
git push origin master??? //將本地項(xiàng)目更新到github項(xiàng)目上去
pod repo push MySpecs PayListProject.podspec --use-libraries --allow-warnings
完成后堪伍,在需要此組件的工程中锚烦,更新此組件的最新版本觅闽。
第二.組件中添加xib和資源文件
如果我們組件化中的頁面需要使用xib或者圖片資源怎么辦呢?
一般的平時的用法:
創(chuàng)建帶有xib的vc:ViewController *vc = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
添加圖片: [self.imageView setImage:[UIImage imageNamed:@"ask_answer"]];
但是涮俄,很遺憾以上做法蛉拙,在私有庫中無法實(shí)現(xiàn)。
眾所周知彻亲,我們主工程中xib刘离,在使用的時候都會被編譯成nib文件,具體查看方式(在主工程中):
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
把bundle打印出來
/Users/用戶名/Library/Developer/CoreSimulator/Devices/584B3758-D1DC-468A-A981-643303ADAD14/data/Containers/Bundle/Application/AF3AEC5C-A74F-4E02-A2D7-13AE904720B5/PayListProject_Example.app睹栖,進(jìn)入PayListProject_Example.app中就會發(fā)現(xiàn)你在主工程中創(chuàng)建的xib硫惕,在此處會以nib的方式存在著。
但是野来,如果你在組建中創(chuàng)建xib的時候恼除,以上目錄下面卻沒有。所以如果你強(qiáng)行加載組件中xib曼氛,只會出現(xiàn)crash豁辉。
那么正確的做法:
我們創(chuàng)建一個新的vc帶有xib,同時也創(chuàng)建一個xcassets文件舀患,并且要把xib和xcassets放入assets文件夾中徽级。
注意:創(chuàng)建xcassets后,最好放一張圖片進(jìn)去聊浅,不然上傳的時候餐抢,系統(tǒng)發(fā)現(xiàn)里面沒有資源,可能不會上傳低匙。