当前位置:   article > 正文

APP配置多环境分发(二)_preprocessor macros 在archive 不生效

preprocessor macros 在archive 不生效

上一篇文章定义好了不同scheme下不同的bundle ID和display name 就可以通过选择不同scheme来生成两个内容相同的独立APP,但是APP中的内容更改还需要处理一下。

我们如何在APP代码中判断当前是哪个scheme,又如何判断当前scheme下是debug还是release?

这是就需要用到预处理宏定义,在build setting中的Apple LLVM8.0- Preprocessing下有Preprocessor Macros,该标签同样会根据你的configeration来为你生成好你所有的配置,并会带有默认的宏定义。

我们无需管它默认的宏定义,需要自己来配置,这里我对每种configuration设置了两个宏定义,一个用来辨别APP,一个用来辨别是debug还是release版本。这样在代码中就可以判断了,举两个例子:

通过宏定义判断APP环境来定义URL

通过宏定义判断当前APP Navigation Bar的标题

APP的icon和launch image这种系统级别的设置同样需要到build setting中去更改,而你的icon 和 launch image则需要创建三份不同名的,然后进入设置中修改对应的名字即可。


到这里你应该能明白大概的原理,就是这么一个映射链

如果你的设置没有生效请按照这个图来屡清思路,进入Edit Scheme看看,Run和Archive对应的模式是否选择正确了,不要出现Run模式下使用release配置,那就肯定会出错了。

还有一个坑就是如果APP需要特定的配置文件的话,那么建议使用多Target模式来进行多环境配置,否则打包阶段会出现很多问题。配置多target的目的在于将每个APP对应的General设置单独分开,也就是把debug和release配置文件单独分开,而不会在构建的时候出现各种各样奇怪的错误,而configuration只用来处理一些APP内部分化的一些细节。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/223866
推荐阅读
相关标签
  

闽ICP备14008679号