項目中使用的同一套代碼,但需要開發多個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了。
大功告成,看看效果吧:


