背景:最近做了一個(gè) SDK,需要發(fā)布到 CocoaPods,本以為回憶下之前的做法就能搞定,事情往往不是你想的那么簡(jiǎn)單。這不,今天就因?yàn)橐粋€(gè)命令,試了整整一個(gè)下午+中午。
SDK 中使用到了第三方的一個(gè)庫,好在這個(gè)這個(gè)第三方的庫沒有依賴其他第三方的庫,原本要做成 framework,所以一開始直接將這個(gè)第三方庫的源碼拖拽進(jìn)項(xiàng)目了,當(dāng)成了 SDK 的源碼,最后由于各種原因,要使用 Cocoapods。
下面就說下遇到的問題吧:
- SDK 文件夾下有 bundle,podspac 中要這樣寫:
spec.resource = 'Resources/HockeySDK.bundle' - SDK 文件夾下還有文件夾,參考下面的命令吧
guides.cocoapods.org - 第三方庫中很有可能使用了一些系統(tǒng)庫和函數(shù),在執(zhí)行
pod spec lint --verbose XXXX.podspac --allow-warnings時(shí)可能會(huì)報(bào)錯(cuò),錯(cuò)誤基本就是編譯不通過,要用下面的命令pod spec lint --verbose --use-libraries --allow-warnings。
還沒完,推送的時(shí)候,也要加上--use-libraries,命令如下:pod trunk push --use-libraries --allow-warnings
4.此時(shí),在你的主工程執(zhí)行 pod install可能無法找到你的 SDK,會(huì)報(bào)下名的錯(cuò)誤:[!] Unable to find a specification for,此時(shí)需要更新 pod repo 庫,用下面的命令更新pod repo update master