在上篇文章CocoaPods與SVN的配合使用(一)中我們使用CocoaPods制作了基于SVN地址的開發(fā)庫(kù)增蹭,然后通過Pod命令將開發(fā)庫(kù)以源代碼方式引入工程中更胖。但是秒梳,有時(shí)我們不希望開發(fā)庫(kù)以源代碼方式提供給別人梆砸,這時(shí)就要制作靜態(tài)庫(kù),這種靜態(tài)庫(kù)有兩種形式:
- .framework
- .a文件 加 .h頭文件
CocoaPods 提供了cocoapods-packager來創(chuàng)建靜態(tài)庫(kù)佩抹,安裝此工具的過程在此不再贅述。(需要更新CocoaPods到較新的版本)
制作靜態(tài)庫(kù)的過程:
- 制作好源代碼開發(fā)庫(kù)取董,參考CocoaPods與SVN的配合使用(一)
- 重新編輯.podspec文件棍苹,用cocoapods-packager將源代碼開發(fā)庫(kù)打包成靜態(tài)庫(kù),配置.podspec文件支持靜態(tài)庫(kù)的Pod集成茵汰,本文將重點(diǎn)討論此過程枢里。
下面我們緊接CocoaPods與SVN的配合使用(一)中創(chuàng)建支持CocoaPods的開發(fā)庫(kù)的流程,從SVN中的tag
分支入手蹂午。
-
從
tags
文件夾0.1.0
分支上創(chuàng)建一個(gè)新分支0.1.0-framework
放入branches
中栏豺,現(xiàn)在以新分支0.1.0-framework
為當(dāng)前開發(fā)分支,這一步主要是為了方便開發(fā)豆胸。
svn路徑.png 重新編輯
.podspec
文件奥洼,然后在終端.app
中使用pod package XXX.podspec --force
命令來打包生成framework。
打包工具cocoapods-packager會(huì)根據(jù).podspec
文件中的s.source
和s.source_files
來確定源碼庫(kù)的路徑和所包含文件晚胡,其中s.source
不支持本地路徑灵奖,請(qǐng)確保打包的文件被正確提交到了svn。
根據(jù)上圖分支的svn路徑估盘,我們使用的路徑為
s.source = { :svn => 'svn://IP_ADDRESS/app/Common/ios/XXX/branches/0.1.0-framework'}
瓷患,
s.source_files = 'XXX/Classes/**/*'
編輯完成,在
終端.app
中定位到.podspec
文件的上級(jí)目錄遣妥,使用pod package XXX.podspec --force
命令生成framework擅编。查看剛才的目錄中,已經(jīng)生成了包含
XXX.framework
的文件夾箫踩。將新生成的文件夾和framework文件提交到svn爱态。- 配置
.podspec
文件支持framework的Pod集成。
三種集成配置方式(源碼方式班套、framework方式肢藐、.a文件方式)見圖中紅框,這里我們使用framework下載方式設(shè)置項(xiàng)吱韭,將framework的路徑設(shè)置給s.vendored_frameworks
項(xiàng)吆豹。
配置.podspec文件支持Pod下載.png
之后通過終端.app
在0.1.0-framework/Example
文件夾使用pod install --no-repo-update
來安裝鱼的,打開Xcode目錄,發(fā)現(xiàn)framework被添加進(jìn)了工程痘煤,接下來運(yùn)行測(cè)試凑阶。
下載framework.png
我在測(cè)試中出現(xiàn)了Expected a type
的問題,而使用源代碼方式集成卻沒有問題衷快,經(jīng)查證是由于生成的framework的頭文件中沒有顯示添加#import <UIKit/UIKit.h>
宙橱,導(dǎo)致無(wú)法識(shí)別UIView
,顯示添加之后再次打包framework蘸拔,問題解決师郑。 - 制作tag分支,并刪除tag分支上的源代碼调窍。
我們將XXX.podspec
中的s.source
還原為
s.source = { :svn => 'svn://IPAddress/app/Common/ios/XXX', :tag => s.version.to_s }
根據(jù):tag => s.version.to_s
宝冕,在SVN的tag中打包為相應(yīng)版本。這里為了和源碼版本的區(qū)別開來邓萨,我們將s.version
的值設(shè)置為0.1.0-framework
還原s.source.png
制作tag分支地梨,步驟(以Cornerstone為例):
制作tag分支.png
制作完成后記得刪除掉tag分支上的源代碼。
下面是在其他工程中使用剛剛配置好的framework
1. 使用CocoaPods引入framework
在已有工程中的Podfile文件中編輯
pod ‘XXX’,:svn =>'svn://YourSvnPath/XXX’,:tag =>'0.1.0-framework'
可參考 Profile文件 Pod語(yǔ)法然后使用pod install --no-repo-update
進(jìn)行安裝
更新后可以看到XXX.framework已經(jīng)被下載下來了缔恳,現(xiàn)在你就可以在工程中使用這個(gè)framework了瘪松。