为iOS应用程序设置调试、分期和发布等环境
在开发iOS应用程序时,咱们很可能要开发应用的不同阶段(如调试、测验和发布)设置多个构建环境。
Xcode现已为咱们供给了相关的东西。在本文中,咱们将了解怎么办理这些环境的不同装备,以及怎么从代码拜访它们。
咱们开端吧。
默许的Xcode项目装备
当咱们第一次创立Xcode project,它会主动创立一个 App Target,两个 test target, 一个 scheme 和 两个关于 Debug 和 Release 的装备。
这现已很好了。为了添加更多环境,并设置它们,咱们先要了解 Xcode 中的几个概念。
什么是 Xcode targets 和 scheme
从 Xcode project 开端。一个 Xcode project 包含很多代码文件,资源和信息,用于构建项目。一个 project 可所以 iOS App 的 debug 或 release 版别。
Project 又包含了一个或许多个 target。一个 Xcode target 指定怎么构建一个项目。构建产品的说明便是 build settings 和 build phases。一个项目为所有它的 targets 定义了默许的 build setting。每个 target 能够改写这些默许的 setting。
一个 Xcode scheme 定义了在履行构建、运转、测验或装备文件等操作时会发生什么。例如咱们构建app时所运用的构建装备。
添加一个新的装备
因为 Xcode 现已为咱们创立了Debug
和Release
装备,我只需求再创立一个。点击 + 按钮
,挑选需求仿制哪个已存在的装备。
咱们就挑选Debug
装备,重命名为Staging
或Testing
。
添加schemes
下一步,为每个装备添加一个scheme,以便在Xcode中运转构建或测验操作时能够在它们之间快速切换。
然后挑选Manage schemes
,能够重命名已存在的 schemes 和添加新的。
在比如中,重新为存在的命名为ExampleApp Debug
,并且再创立两个,分别为ExampleApp Staging
和 ExampleApp Release
。
现在,咱们就能够去每个 scheme 中装备它们对应的 Build Configuration。
设置 build settings
经过装备设置,咱们现在能够在构建设置中运用它们。每个构建设置能够为每个装备具有不同的值。
例如,假如咱们每个装备需求不同的应用程序 bundle identifiers,咱们只需求更改每个装备的值。
也能够经过相同的方法设置app 的图标和称号。
自定义的 building settings
此外,咱们能够经过添加带有+按钮
来为每个装备定义咱们自己的构建设置。
如上所述,咱们定义了一个名为API_URL
的自定义构建设置,因此咱们能够为每种装备运用不同的API端点。
在代码中运用设置
假如想在代码中运用咱们上一步自定义的设置,需求在 Info.plist
中创立相关的值。
现在就能够在代码中获取装备的值了。
Bundle.main.object(forInfoDictionaryKey: "API_URL")
这只是一个基本的运用,经过这种方法,咱们能够添加很多需求的装备。
咱们还能够在代码中添加构建装备的表明形式,例如,仅能够为某些环境激活某些功用,或直接从代码办理这些值。 就像下边这样。
struct BuildConfiguration {
enum Environment: String {
case debug = "Debug"
case staging = "Staging"
case release = "Release"
}
let environment: Environment
init() {
environment = Environment(rawValue: Bundle.main.object(forInfoDictionaryKey: "Environment") as! String)!
}
}
Xcode 装备文件
除了以上方法之外,咱们能够运用Xcode装备文件来完成相同的成果。 假如您想了解有关它们的更多信息,请检查文章《处理Xcode装备文件》。
翻译来源:Managing different iOS build configurations in Xcode,作者:@Natascha Fadeeva