2019-07-31 記錄私有庫坑 :Include of non-modular header inside framework module

如何給自己項(xiàng)目添加Pod支持,讓別人也可以 pod install,愉快的使用你的庫,請看這里
??????:http://www.itdecent.cn/p/0e1d796b2a42

在給自己項(xiàng)目添加Pod支持,在終端執(zhí)行:

pod spec lint MSCycleScrollView.podspec

拋出如下錯(cuò)誤:

圖1

錯(cuò)誤原因:我在項(xiàng)目中添加了第三方依賴庫SDWebImage和MSPageControl,而在引入時(shí),在項(xiàng)目開放源碼部分的.h文件中引入了第三方.h文件。如下圖:

圖2

遇到這個(gè)問題之后在網(wǎng)上搜索了下“include of non-modular header inside framework module”,網(wǎng)上大部分的解決方法有兩種:
第一種:將Build Settings中的Allow Non-modular Includes In Framework Modules設(shè)為YES;
第二種:將第三方.h文件在.m中引入;

嘗試第一種方法:嘗試了方法1后,依舊拋出圖1的錯(cuò)誤;
嘗試第二種方法:因?yàn)槲业捻?xiàng)目.h文件需要引入第三方的類名對象,因此在項(xiàng)目.m中引入第三方.h這個(gè)方法肯定是行不通,好桑心????????~~~。但是不能放棄啊??!,后來我在網(wǎng)上找啊找,找到兩種解決方案,嘗試都成功了:

解決方法一、在你的.podspec文件中添加

spec.user_target_xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES' }

??????注意注意:如果多個(gè)pod的.podspec文件中對user_target_xcconfig同一個(gè)值進(jìn)行了設(shè)置,那么就可能存在沖突問題,所以不建議使用!

解決方法二、在執(zhí)行pod spec lint和pod trunk push時(shí),在命令行尾部添加--use-libraries,如下命令

pod trunk push MSCycleScrollView.podspec --verbose --allow-warnings --use-libraries

建議使用第二種方法

貼別提示:如果之前在pod spec lint時(shí)使用了--allow-warnings或--use-libraries,這里在pod trunk push就必須添加,這里坑了我好半天!!

在此記錄一下,希望小伙伴們不要踩坑??!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容