APP配置多环境分发(一)

        之前为公司做过一个关于内部业务流程的系统,最近多了些加盟商,加盟商内部同样需要这套系统进行运转,虽然APP的整体架构没有任何改变,还是那套系统,但是一些细节改变了,包括但不限于APP名称,APPIcon, URL, 界面上的一些文字,图片等等,开始也没有想太多,copy了3份代码独立管理(请无视懒癌晚期),每次有bug,不用说,不停的画轮子,浪费时间,没有任何意义,最近企业账号又下来了,3个APP,2个分发渠道,6个版本同时管理,实在无法忍受了,开始试着以切换scheme的方式来解决这个烂摊子。
       首先明白一点,我做的不是创建多个Target,而是一个Target下的多个scheme,今天并没有将3个APP都完全整合,先整合进一个,如果成功了另一个也不成问题了。
    

       打开目标工程,看Xcode左上角,工程默认只有1个scheme

       2种Build模式Debug和Release, 分别对应调试和发布两种用途

    

APP配置多环境分发(一)_第1张图片

  每种Configuration都有一个Configuration Set是因为我在工程里使用了CocoaPods,如果没有使用的话两种配置应该都是空的。

  现在,我们点击Configurations下的加号按钮“+”来添加配置,通过Duplicate DebugDuplicate Release来复制一份出来,等同于添加。

APP配置多环境分发(一)_第2张图片

        2个APP,每个APP对应调试环境和正式环境两种Build方式,所以我们应该有4种Configuration,自己改好Configuration的名称,做到自己一眼就能分辨出来,一般都是“APP名称 + Debug/Release”的格式比较容易分辨。

        

       下面我们进入Project - BuildSetting - User-Defined

       User Defined下的内容无需理会,上方找到加号按钮,点击后选择Add User-Defined Seeting

      APP配置多环境分发(一)_第3张图片

      在User-Defined的下方找到未命名的标签

      这个标签下可以配置我们想要改变的环境变量的其中一种,而标签的名字我们可以看做是一个变量,接下来会用到,首先我们先来配置Bundle ID,为了接下来的步骤我们便于找到这个变量,我们起名为BUNDLE_ID, 你会发现标签下已经自动生成了我们定义好的4中configuration.

APP配置多环境分发(一)_第4张图片

      我们在每一种configuration中填写好自己需要的配置,设置APP名字的标签我们可以命名为DISPLAY_NAME,然后对每种configuration依次配置好自己需要的值,这里不再赘述。

      下面打开Plist文件,改变这些设置的值,将定值改为我们刚才定义好的变量名称,BUNDLE_ID和DISPLAY_NAME,这样,在build的时候,这两项配置就会跟随我们选择的configuration而变化,当Bundle ID不同的时候,其实也就实现了生成两个独立的APP。

      

      

      下面我们添加新的APP的scheme,选择new scheme

      APP配置多环境分发(一)_第5张图片

       选择原工程的Target,为新的scheme命名

APP配置多环境分发(一)_第6张图片

      

       添加好后,我们先点击新建的scheme,然后在下拉菜单选择Edit Scheme,分别在Run和Archive中选择想生成的新APP对应的调试设置和打包设置。

APP配置多环境分发(一)_第7张图片


      接下来,在打包APP的时候通过选择对应的Scheme就可以来选择生成对应环境的app了。

     还有一点要注意,如果你在使用SVN,Git等协同工具,一定要在ManageScheme中将所有的自定义的scheme最后面的share勾选上,否则别人同步代码后是看不到的。

     后面还会针对不同APP的内部URL,文字,和图片进行更改。

      


你可能感兴趣的:(iOS)