与React Native中的Debug和Release不同的iOS构建配置
默认的iOS构建配置Debug和Release可能一开始就足够了,但是迟早您可能需要扩展应用程序中的构建配置数量。 尽管这在本机开发中非常简单,但是不幸的是,在React Native中却并非如此。
构建配置
要管理构建配置,请转至Xcode项目设置([PROJECT]→Info):
您可以通过复制现有构建配置轻松地添加新的构建配置。 用于开发的重复调试配置以及用于测试飞行和App Store构建的发布配置。 您也可以通过快速双击任何配置来重命名。
调试与发布
调试配置无需任何代码优化即可构建完整的符号调试信息,以方便调试应用程序。 在发行版配置中,代码执行得到优化,并且构建中不包含符号信息,这导致最终可执行文件的尺寸较小。 尽管由于编译器的优化,您可能会期望内存布局或初始化方面的差异,这可能会导致所谓的“仅发行”错误,但发行版本的执行速度会更快。
运行构建配置
上面介绍的步骤足以在本机开发中设置新的构建配置。 要在构建配置打开方案中运行该应用并更改运行构建配置:
React Native中的问题
请记住要检查您的TypeScript代码是否已编译(如果有)以及打包程序是否正在运行。 要使用指定的构建配置在React Native中启动iOS应用,您只需运行:
react-native run-ios --configuration Stage
不幸的是,这对于任何基于发行版的配置都将失败,并显示一条错误消息,指出无法在AppDelegate中找到RCTBundleURLProvider
:
AppDelegate.m:2:9:找不到“ React / RCTBundleURLProvider.h”文件
我们需要在目标构建设置([TARGET]→构建设置)中为新的Release构建配置添加缺少的标题搜索路径和库搜索路径 。
为每个新的“发布”构建配置在“ 标题搜索路径”中添加一个条目:
$(BUILD_DIR)/Release-$(PLATFORM_NAME)/include
为每个新的发布版本配置向库搜索路径添加一个条目:
$(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)
现在,您可以在指定的构建配置中启动该应用程序:
react-native run-ios --configuration Stage
请记住对“测试目标”执行相同的操作,否则此命令将失败。
黑暗中总有一线光明
没有任何以前的经验,在React Native中定义不同于Debug和Release的iOS构建配置可能会令人沮丧。 但是,在一点指导下,这可能是一个快速而轻松的过程。
如果您对如何为每个构建配置设置不同的Google配置感兴趣,建议您阅读本教程。 尽管它是为本机开发而编写的,但是您可以在React Native中完全相同地设置运行脚本 。
最初发布于 brightinventions.pl 。
Mateusz Klimczak着,推动事物前进@ Bright发明
电子邮件Twitter Github Stackoverflow