最近项目做RN升级,因为RN 0.60之后都采用pod管理,所以也要给我们自己定义的库添加库的Pod管理的配置。修改期间遇到了 bundle 访问不到的问题,所以这里记录下。
这里首先我说下 Bundle,官方的说法:
A representation of the code and resources stored in a bundle directory on disk.
划重点:他其实就是个目录。当然你非说跟文件夹一样啊,只不过打开要用“展示包内容”,小伙子,我不反驳你。不怕告诉你,通过终端访问 Bundle 时,他跟文件夹是一样一样的
场景再现:
RN 升级未0.60.0之后,获取不到 Bundle 中的资源
分析:
通过 Xcode 实际查看 Bundle 资源确实已被导入,可以确定不是资源导入或者 Pod 配置问题。这个时候我们要查看 Bundle 是否加载到或者资源是否加载到
结论:
子工程的 bundle 仍是加载到 mainBundle (其实就是 app),但是 Pod 通过 framework 加载的,通过 mainBundle 不能直接访问。
解决方案:
1.打包成静态的 bundle
2.使用 bundleForClass 方法,这个方法就是为了解决 framework 动态加载 bundle (Cocoapods 推荐)
网友评论