zoukankan      html  css  js  c++  java
  • iOS项目之多Targets和多环境配置

      项目中使用的同一套代码,但需要开发多个app,app中内容基本上相同,只有一些小小的区别,例如名称等等,每个app中又需要分开发环境(Dev)、测试环境(Test)、正式环境(Pro)。

      下面就开始搭建这样的配置:

      第一步,对目标target进行复制(Duplicate)

            

      如果当前项目为iPhone项目的话,会出现下面的提示

        

      这里只需要复制iPhone项目,所以选择 “Duplicate Only”。

      此时在项目中会增加两个东西:

        

      为了便于区分,这里对相应target和plist进行重命名,修改后如下图:

        

      第二步,对target重新配置plist文件

       

      第三步,新增配置环境

     

      这里添加开发、测试、正式三个环境,最终效果如图

      

      第四步,新增Scheme,用来配置环境,这里直接选择Manage Schemes进行设置

        

      在设置界面新增Scheme,选择相应的target,并设置Scheme的名称

     

      勾选需要显示的Scheme

     

      分别对不同的Scheme进行配置

     

      第五步,新增自定义设置

     

      配置不同的bundleIdentifier和bundleName

      

      修改info.plist文件中的bundleIdentifier和bundleName

      

      对TargetTwo进行重复以上操作

      

      第六步,添加环境变量参数

      

      TargetOne项目的环境变量参数设置为:dev=1,test=2,pro=3

      

      TargetTwo项目的环境变量参数设置为:dev=4,test=5,pro=6

      

      第七步,分别设置pch文件和环境配置文件

      

      在环境配置文件中可以设置不同的BASE_URL之类的参数等等

      分别在不同的target中设置pch文件的引用

      

      第八步,配置Podfile文件 

    platform :ios, '9.0' 
    
    def normalPod
    
      pod 'MJRefresh'
      pod 'AFNetworking'
    
    end
    
    def otherPod
    
      pod 'Masonry'
    
    end
    
    target 'TargetOne' do 
       normalPod
    end 
    
    target 'TargetTwo' do 
      normalPod 
      otherPod
    end 

      可参考以上代码,根据自己的需要进行修改,然后 pod install 

      第九步,设置不同的Assets.xcassets和LaunchScreen.storyboard等,在不同target中有差异的文件(因项目而异)

      

      这里以 Assets.xcassets 为例:

      选择该文件后,可以在右侧的 Target Membership 中进行勾选需要在哪个target中使用。如果需要区分的话,再新增一个 Assets 文件,分别引用到不同的 target 中就OK了。

      大功告成,看看效果吧:

     

     

       GitHub:https://github.com/sjxjjx/TargetsAndEnvironments

  • 相关阅读:
    IOS照相机的启动,图片的读取,存储demo
    ios中摄像头/相册获取图片,压缩图片,上传服务器方法总结
    AFNetworking 使用总结 (用法+JSON解析
    AFNetworking 初探
    虹吸壶的前世今生
    手摇磨豆机经验总结--2013.7.11修改
    国贸女和中关村大叔的故事以及老男孩咖啡
    Chrome 的插件(Plug-in)与扩展(Extension)的区别
    js callback && callback()
    js the difference between 'return false' and 'return true'
  • 原文地址:https://www.cnblogs.com/sjxjjx/p/11352713.html
Copyright © 2011-2022 走看看