应用场景分析
在 iOS 开发过程中会遇到一个应用对应多个域名的情况,通常情况下使用 DEBUG 的宏来进行判断,这主要是基于 Xcode 中的 Configuration 默认给我们创建了 Debug 和 Release 两个环境。我们也可以对其进行新增和修改,来满足我们实际开发下的更多环境配置。比如: 多有一个预生产的环境域名,同一套代码需要打包不同的 APP 发布等情况。
Configuration
Configuration新增的时候是选择一个进行的复制,所以建议想要创建的环境与 Debug 和 Release 是相互对应的,避免一些问题,这样的话有一些配置你完全可以不用去在意。比如: 在 Release 环境会有一些优化机制(内联优化等)。
Build Setting 相关设置
Build Setting在 PROJECT 和 TARGETS 里的 Bulid Setting 都会进行设置,基于 PROJECT 和 TARGETS 的关系 TARGETS 会拷贝一部分 PROJECT 当中的一部分设置,所以会先去设置 PROJECT 中的 Bulid Setting 再去对 TARGETS 进行对应的检查设置。(列举一下我会用到的设置)
- info.plist File
- Product Bundle identifier
- Code Signing Identity
- Development Team
- CustomAppBundleld
- CustomProductName
- Preprocessor Macros 和 Active Compilation Conditions(预编译宏,如果是纯swift的项目 只需要设置后者)
- Asset Catalog Compiler - Options (App Icon 和 Launch Image 可以在 Assets 中新增)
在设置完成会一般会到 General 中去查看证书的选择
info.plist
自定义宏后,打开info.plist,读取自定义的宏,在运行程序的时候,App对应的设置就会读取宏,对应的值就会改变
info.plist
Scheme
-
新增: 可以选择不同的 Target 进行新增
新增 -
编辑: Build Configuration 中选择对应得 Debug 或 Release
编辑 - 在版本控制中需要将想控制的 Scheme 的 Shared 选中 Scheme
Pod
是不是以为 Scheme 设置完成了就想 Command + R,是不是报错了! 是因为在 Pod 中还没有得到相对应的环境配置。所以可以到 Pod 中的 Configurations 也要完成相应的设置,或者去 pod install 一下就可以了。
注: 使用 cocoapods 管理项目的可以编辑 podfile 设置 build configuration 、 preprocessor macros 和 OTHER_SWIFT_FLAGS 等。
TARGETS
如果想完成多个 APP 且多个环境,还可以结合 TARGETS 进行 Configuration 配置和 Scheme 的创建。但要注意文件适用的 TARGETS。
TARGETS
TARGETS
- 多target podFile配置
platform :ios, '8.0'
# 多个target共用一套pod的写法,项目中不能有名字为CommonPods,防止冲突;
abstract_target 'CommonPods' do
# 共用的pod第三方
pod 'AFNetworking'
pod 'IQKeyboardManager'
# 项目中的target各自的设置
target ‘Target1’ do
#可以在这里添加Target1独自引用的pod第三方
end
target 'Target2’ do
#可以在这里添加Target2独自引用的pod第三方
end
end
网友评论