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