美文网首页OC-开发案例收集
iOS创建多个Target以管理项目不同的环境配置

iOS创建多个Target以管理项目不同的环境配置

作者: Yu_Chou | 来源:发表于2020-09-15 17:53 被阅读0次

    在每个项目的开发过程中都会涉及到 测试环境与发布环境得切换。最原始得方式是 每次运行与打包都手动修改环境配置代码,但这样效率地下,而且出错率极高。然而另一种一劳永逸的方式就是使用多个Target,并结合自定义的预编译条件。

    创建Target

    选中当前的Project,右键需要多环境管理的target,点击Duplicate,生成当前target的拷贝。项目中的plist,Scheme也都相应的生成一份拷贝。

    image

    可在Manage Scheme中修改Scheme名称等信息

    image

    可在build setting中修改target对应的plist

    image

    每个target的配置是相互独立的,可以分别配置Bundle id,Version, AppIcon, 证书等等。

    注意:在为项目添加新文件时需要将对应的target都勾选

    image

    创建预编译条件在代码中区分target

    还是在build setting中配置, 此处添加了一个APPSTORE 标签


    image

    在不同的target执行不同的代码

        #if APPSTORE
            print("this is app store target")
        #else
            
        #endif
    

    在不同的target配置不同的网络请求host

    #if APPSTORE
        let host = "https://zytest.release/"
    #else
        let host = "https://zytest.staging/"
    #endif
    

    对于数据分析平台,推送等需要设置不同的key的情况,都可以通过该预编译条件,以同一变量名的配置不同的值。

    结合CocoaPods

    pod对库的管理也是以target为基础。添加target后需要在Podfile中添加对应的target。对于target也就可以分别引入不同的库。此处对于配置管理,一般引入的库都是相同,可以在Podfile中使用def定义需要引入的库。

    def podLibs
    
    pod Alamofire
    
    end
    
    target 'ZYAppStoreTarget' do
      # Comment the next line if you don't want to use dynamic frameworks
      use_frameworks!
    
      podLibs
    
    end
    
    target 'ZYInHouseTarget' do
      # Comment the next line if you don't want to use dynamic frameworks
      use_frameworks!
    
      podLibs
    
    end
    

    最后在运行或者打包时选择对应的target即可。

    相关文章

      网友评论

        本文标题:iOS创建多个Target以管理项目不同的环境配置

        本文链接:https://www.haomeiwen.com/subject/biifyktx.html