最近項(xiàng)目做RN升級(jí),因?yàn)镽N 0.60之后都采用pod管理,所以也要給我們自己定義的庫(kù)添加庫(kù)的Pod管理的配置。修改期間遇到了 bundle 訪問不到的問題,所以這里記錄下。
這里首先我說(shuō)下 Bundle,官方的說(shuō)法:
A representation of the code and resources stored in a bundle directory on disk.
劃重點(diǎn):他其實(shí)就是個(gè)目錄。當(dāng)然你非說(shuō)跟文件夾一樣啊,只不過打開要用“展示包內(nèi)容”,小伙子,我不反駁你。不怕告訴你,通過終端訪問 Bundle 時(shí),他跟文件夾是一樣一樣的
場(chǎng)景再現(xiàn):
RN 升級(jí)未0.60.0之后,獲取不到 Bundle 中的資源
分析:
通過 Xcode 實(shí)際查看 Bundle 資源確實(shí)已被導(dǎo)入,可以確定不是資源導(dǎo)入或者 Pod 配置問題。這個(gè)時(shí)候我們要查看 Bundle 是否加載到或者資源是否加載到
結(jié)論:
子工程的 bundle 仍是加載到 mainBundle (其實(shí)就是 app),但是 Pod 通過 framework 加載的,通過 mainBundle 不能直接訪問。
解決方案:
1.打包成靜態(tài)的 bundle
2.使用 bundleForClass 方法,這個(gè)方法就是為了解決 framework 動(dòng)態(tài)加載 bundle (Cocoapods 推薦)