通过build configuration配置多环境

1,410

一个target可以构建一个唯一的product,也就是ipa包。构建一个产品不仅仅需要源代码,还需要一系列的编译构建配置,比如build setting,配置不同,最终生产出来的ipa包就不同。

在我们设置build setting的时候,是可以选择build configration的,如下图build options中的debug information format,对不同的configuration可以设置配置不同的 值。

image-20210610144851024

Build setting里面是可以配置签名的,app id的,app name appicon,的,预处理宏定义的。意味着我们可以通过指定不同的config就可以构建出不同appid和应用名称,不同图标的ipa包。

build config Project->info->configurations,此处有一个configurations的菜单栏,默认分为debugrelease Debug下面有又两层,第一层级是project级别的,默认值是none,子层级是target级别的,默认值是Pod-xxx.debug

Release相同。

下面有一个加号,减号,可以用来增加或者删除config。我们在此处选择duplicate (复制)debug或者release 的配置。 比如我们公司,需要打蒲公英的测试包,和企业包,假设我们都打release包,那么就可以复制release来创建一个configuration。

edit scheme ->右侧菜单栏也有一个build configurations。是一个下拉选择项,默认也是两个,debugrelease。可见此处的configuration就是来自于project->info->configurations的。

image-20210610145335119

注意

  • 使用fastlane打包的时候,需要设置configuration属性,否则的话始终打的是release包。
  desc "Description of what the lane does"
  lane :dis do
    gym(
    	scheme:'scheme',
    	export_method: 'app-store',
    	configuration: 'Release',
    	export_options:{
          provisioningProfiles:{
			"bundle_id" => "pp文件名"
          }
        }
    )
  end

鼓捣了一上午,终于成功的打出了企业包,测试包,但是不知道为何release包却安装不上了。

Why? 是配置有问题吗?

试了下将打出的ipa包上传蒲公英,显示只允许通过appstore下载,通过扫码可以下载,但是无法安装。

提示

无法安装此App,因为无法验证其完整性。

尝试安装以前打的上传appstorerelease包,也是不可以安装的,推测因为选择的是发布证书,可能只可以通过appstore安装把。

tips

Build setting中有一个预处理指令,我们可以在这里添加,一些宏定义 eg。 未命名 利用这些预定义的宏定义,我们可以很方便的在代码中做一些环境配置

#ifdef DEBUG
#define kBaseURL @"http://www.debug.com"
#elif ENTERPRISE
#define kBaseURL @"http://www.enterprise.com"
#elif PGYER
#define kBaseURL @"http://www.pgyer.com"
#else
#define kBaseURL @"http://www.release.com"
#endif

参考文章

Xcode多种Build Configuration配置使用 - 简书