一个target
可以构建一个唯一的product
,也就是ipa
包。构建一个产品不仅仅需要源代码,还需要一系列的编译构建配置,比如build setting
,配置不同,最终生产出来的ipa包就不同。
在我们设置build setting
的时候,是可以选择build configration
的,如下图build options
中的debug information format
,对不同的configuration
可以设置配置不同的
值。
Build setting
里面是可以配置签名的,app id
的,app name
,appicon
,的,预处理宏定义的。意味着我们可以通过指定不同的config
就可以构建出不同appid和应用名称,不同图标的ipa
包。
Project->info->configurations
,此处有一个configurations
的菜单栏,默认分为debug
和release
Debug
下面有又两层,第一层级是project
级别的,默认值是none
,子层级是target
级别的,默认值是Pod-xxx.debug
Release相同。
下面有一个加号,减号,可以用来增加或者删除config。我们在此处选择duplicate (复制)debug或者release 的配置。 比如我们公司,需要打蒲公英的测试包,和企业包,假设我们都打release包,那么就可以复制release来创建一个configuration。
edit scheme
->右侧菜单栏也有一个build configurations
。是一个下拉选择项,默认也是两个,debug
和release
。可见此处的configuration
就是来自于project->info->configurations
的。
注意
- 使用
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,因为无法验证其完整性。
尝试安装以前打的上传appstore
的release
包,也是不可以安装的,推测因为选择的是发布证书,可能只可以通过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