iOS项目根据target区分测试环境、正式地址以及相关key配置

在项目开发过程中,往往需要给测试打包,项目最终上架的时候,需要更改各种环境配置,这样做很麻烦,如果在项目中创建多个target,用户不同的环境,直接切换环境,就不再需要修改各种配置,为开发带来很大的方便。

实现步骤如下:
1.1、新建target,选中project,选择主target,右键Duplicate,创建出一个copy版的target

image

2、新建target后,项目目录会生成新的plist文件,修改新建的target的名称以及匹配的plist名称

image

3、修改scheme里的target名称。 选择"Product"->"Scheme"->"Edit Scheme"

image
image

4、配置target对应的plist文件,选中对应target 下的 "Build Settings",输入搜索 "Packaging",修改为target对应的plist文件"TargetTestProject_dev-Info.plist"。

image

5、(推荐非必选)新建一组AppIcon以区分正式版和测试版本,选中 Assets.xcassets 然后添加新的 App 图标。选择"icon" > "App Icons & Launch Images" > "New iOS App Icon". 将新图标命名为 "AppIcon-dev"添加对应的icons。这种便于传包人员和用户区分当前App是哪个正式/测试版本。

image

6、给两个版本的target 同时设置一个预处理宏和编译器标志。这样在之后的开发中我们就可以在代码中使用这个标识来检测当前运行的应用是哪个版本。
选择 "Building Settings",搜索"Preprocessing",滚动到 Apple LLVM 7.0 - Preprocessing。展开 "Preprocessor Macros" 并且为 Debug 和 Release 添加一个变量。对于测试环境版本target(即 TargetTestProject_dev),设置变量的值为** DEVMODE=1**(校对注:等号两边不能有空格)。相对地,设置正式环境版本target 的值为 DEVMODE=0。


image

7、根据预处理宏判断区分正式环境和测试环境下一些key值、证书、请求URL的选择


image

8、如果项目使用cocoapods集成第三方库的话需要对Podfile做如下处理


platform :ios, '8.0'
 
# target数组 如果有新的target直接加入该数组
targetsArray = ['TargetTestProject', 'TargetTestProject_dev']
# 循环
targetsArray.each do |t|
    target t do
    pod 'FMDB'                       #
    pod 'pop','~> 1.0.7'             #
    pod 'Masonry','~> 0.6.1'         #
    end
end

新建文件时记得需要勾选测试环境对应的target

image

原文[https://blog.csdn.net/weixin_34072159/article/details/87360002]

你可能感兴趣的:(iOS项目根据target区分测试环境、正式地址以及相关key配置)