IOS App多环境配置(适用于是否有cocoapods管理和flutter混合多环境配置)
浏览:846 次

2020年6月30日更新:新的AppIcon多环境配置,见底部
在日常开发中,我们经常会遇到多种环境配置,如调试、测试、产品、预发布、发布等。每个环境对应一组主机、密钥、令牌等,这确实是可以实现的。如果数量少,则很容易管理,太多则是噩梦,即使您需要在测试或调试期间轻松切换到任何环境,这种方法似乎也无能为力。手动改变环境还有其他隐患。例如,如果忘记更改环境,通常会键入错误的环境包。在严重的情况下,即使在网上发布错误的软件包也会导致非常严重的错误。因此,app的多环境配置是非常必要的。它可以隔离每个环境的配置,并提供更方便和灵活的配置。
在本文的最后,还解决了颤振包装中遇到的问题
少说话,直接跟着我(参考DEMO,效果更好)
创建新的项目AppConfiguration,例如新的测试配置,如步骤1和2所示
选择重复的“调试”配置/重复的“发布”配置之一,我们将在此处复制调试配置
创建发布。xcconfig,调试。xcconfig和Test依次有三个配置文件,分别对应于前一步配置中的Release、Debug和Test。事实上,这些文件将在编辑方案中使用,稍后将对此进行讨论
创建完成后,返回步骤2中的窗口,并按以下顺序选择刚刚创建的配置文件(请注意,必须先创建它,然后才能选择它)
配置预编译宏相当于在pch文件中定义宏。您可以区分项目中的不同环境,然后进行操作。
输入项目的构建设置->预处理器宏:
您会发现在“调试”和“测试”列中有一个Debug=1,但在“发布”列中没有。是的,这是我们项目中常用的#ifdefDEBUG,这里的配置生效
然后编辑方案->运行->选择测试并保存
编译OK!
到目前为止,配置几乎完成了!
不,为什么不知道多环境配置在哪里?

是的,尚未配置。关键是睁开眼睛
我们在上面的配置文件BUILD_MODE、APP_DISPLAY_NAME、APP_config_FLAG中创建了三个变量FLUTTER,保存
然后转到AppConfiguration->TARGETS->Build Setting,滑动到底部,您会发现添加了这三个User Defined变量
然后转到AppConfiguration->TARGETS->Build Setting Search Preprocessor Macros:
按顺序填写FLUTTER _ BUILD_MODE和APP_ CONFIG_与FLAG对应的值
这一步的配置非常重要!!!
您还可以在Project AppConfiguration Processor宏和Targets AppConfiguration Proc处理器宏中配置FLUTTER,方法如下:BUILD_MODE和APP_CONFIG_FLAG:
flatter_BUILD_MODE=$(flatter_构建模式)
APP_配置_标志=$(APP_CONFIG_FLAG)
剩下的是测试。直接在AppDelegate中打印日志验证
运行模拟器
然后根据环境动态显示App名称。在plist中,将Bundle显示名称列替换为我们的APP_display_name,完美操作!
到目前为止,app多环境的配置基本上是一段话!但这还没有结束。既然我们已经完成了,让我们走到最后
下面描述了使用cocoapods集成的项目配置。
CD到项目的根目录,pod init生成一个Podfile文件,然后编辑它(我把use_frameworks!放在这里了,所以我不需要它),

然后安装吊舱
最后,我发现了一堆警告
先忘了吧。编译项目。这很糟糕。报告错误!
让我们尝试处理警告!在配置文件中,包括并导入以下pods-….Xcconfig。如果文件太长而无法命中,只需抓取文件并拖动它即可删除冗余路径
在pod安装中尝试一下,警告消失了
重新清理项目并编译->ok完美的
不要惊慌,而且
我们没有在上面定义FLUTTER _ BUILD_MODE,你会好奇如何定义它。现在让我们谈谈Flutter混合开发中遇到的另一个问题。
让我们直奔终点!
首先,让我们谈谈运行工具环境:
X代码:11.3(11C29)
VS代码:1.46.1
抖动:1.12.13+修补程序。8
吊舱:1.8.4
我们不需要引入git子模块,而是直接创建根目录(ref