React Native基础之Linking Libraries 链接库配置-iOS适配开发
(一)前言
这一讲来看一下iOS开发中Linking Libraries链接库配置模块详解。
在实际开发中,有时候需要第三方库或者其他辅助项目来支持主项目开发,此时,如果把所有的三方库都包含进主项目,主项目会变得非常臃肿。此时,采取一种方案:把互不干扰的功能打包成静态代码库。
使用静态库的时候,大多数情况是简单拖拽文件到项目中就行了,但是有时候需要配置一下。
在创建React Native项目的时候,一些库已经部署到Libraries文件夹下面,这是因为命令行下创建项目已经给我们配置好的,我们在使用纯JavaScript的时候,只要require进行引入就可以使用。但是在我们自己手动引入动态库时,就需要配置相关文件,否则使用时会出现相关错误。
(二)添加iOS原生库
2.1 自动连接
“rnpm”是一个社区开源项目,可以提供原生代码自动依赖链接功能
a. 安装rnpm
命令行:npm install rnpm -g
【注意】rnpm 需要node版本4.1 或者更高版本,目前的版本都达到了 6.2,所以根本不用担心这个问题。
安装过程截图:
b. 安装iOS原生库
安装原生功能的依赖库,命令如下:
npm install <library-with-native-dependencies> --save
【注意1】 –save 或者 –save-dev标志非常重要,rnpm会在package.json文件中的dependencies和devDependencies中写入该链接库信息。
【注意2】<library-with-native-dependencies>
这个库必须在npm中有过注册。
c. 链接到原生依赖
终端输入命令:
rnpm link
以上步骤完成以后,这样iOS项目就成功添加原生功能依赖了。
但是这种做法,我是没搞懂!
2.2 手动链接(通常做法)
a. 你需要添加的库肯定是一些原生代码实现的,那么该文件夹中存在一个.xcodeproj文件,把这个文件拖到你的XCode项目中(通常是拖到Libraries文件夹中),具体截图如下:
b. 点击主工程项目文件(AwesomeProject.xcodeproj),然后选择Build Phases选项,然后将库中Projects 文件夹中的 .a 扩展名二进制文件拖到 Link Binary with Libraries 中,如下图所示:
c. 根据情况添加头文件
对于这一步,不是每一个库都需要这样一步操作,具体根据以下进行考虑:你确定需要在编译的时候就要知道库的内容不?
这里的意思是:
你是否需要在原生代码中使用该库还是只是通过JavaScript进行访问?如果仅仅是通过JavaScript进行访问的话,那么就可以跳过当前这一步了。
这一步对于React Native伴随发布的第三方库来讲不是必须设置的,但是PushNotificationIOS和LinkingIOS这两个是例外。就拿PushNotificationIOS这个来讲,当我们每次接收到一个推送消息的时候,就需要在AppDelegate中回调库中的一个方法。因此在这种情况下面我们需要访问到库的头文件。为了可以打包方便,我们可以打开工程,选择Build Settings选项卡,然后进行搜索Header Search Paths标签,然后添加库的路径。如图所示: