如何做到一份Project產出多個APP

最近公司提了很奇葩的需求,需要將1份代碼做成2個APP,但是最開始要不一樣,在做了某些操作之后又要變成同一APP。對這樣的需求,我真的。。。。。


逗我吧.jpeg

冷靜之后想了一下,腦海中想了2個想法:

1.重開一個project,代碼寫2份
2.運用多Targets進行代碼重用。

重新開個project肯定是不現實的,后期BUG修改、新功能開發,那就是1.5倍的量。
那就只有用多Targets了,但是在運用target之前,我們需要先搞清楚幾個概念。

相關概念

Target

蘋果官方是這樣說的:

A target specifies a product to build and contains the instructions for building the product from a set of files in a project or workspace.

翻譯我就不翻譯了,說下我自己的理解:我覺得target就像是一個"菜譜",它里面包含了怎么把源代碼和相關的設置組合起來打包成一個APP的步驟。相應的target里面可以繼承project的設置,也可以針對當前target進行單獨的設置。

Project

An Xcode project is a repository for all the files, resources, and information required to build one or more software products.
A project contains all the elements used to build your products and maintains the relationships between those elements.
It contains one or more targets, which specify how to build products.

而project我認為更像包含了一道菜的原材料、菜譜、過程等等的大容器。官方也說了,project就是一個包含所以文件、環境、設置等等一系列的倉庫。一個project可以包含很多個target,你可以對這些target進行一個統一的管理設置。

Scheme

An Xcode scheme defines a collection of targets to build, a configuration to use when building, and a collection of tests to execute.

scheme就是我們在每次進行編譯、運行或打包時候在左上角選取的,它里面包含了每次進行運行時候的target和相應的配置等等。


scheme.png

動工

弄清楚了相應的概念之后我們就可以開始進行一個project產出多個APP了,其實運用的就是一個project對應多個target。

復制當前target

對我們當前的target進行復制,只需要在當前target上右鍵然后選取duplicate,會彈出以下選項


duplicate.png

右邊那個選項是復制并變換成iPad應用的,我們不需要,就直接點擊duplicate就行了。
這樣我們就會得到剛才這個target的復制版本,并且會在左邊項目目錄的最下邊看到一個info.plist,就是這個target的配置info。


infoplist.png

( 但是如果你一旦移動了這個文件,當然不是移動引用,是移動它的文件夾位置的話,設置面板就會出現叫你重新選擇的選項,只需要重新選擇剛才你移動的plist就行了 )。
在你duplicate之后,你的scheme列表里面也會多出來一個相應的scheme。


scheme.png

這個就是你在運行時候選取的對應的APP。

pods設置

如果你項目用到了pods,之前的pods會隨著你的duplicate而復制一份,你不需要做任何的改變,在新的target里面就可以進行運用。
但是我們開發肯定會添加其他的第三方框架,這就需要對每個target運用不同的設置了。

platform:ios,'8.0'
abstract_target 'defaults' do
 pod 'AFNetworking'
 
target 'target-1'
pod 'MJRefresh'
target 'target-2'
target 'target-3'
end

這里我們運用的defaults這個target是不存在的,而且項目中也不能存在與之相同名字的target。這樣我們workspace里面的所有target就都有公共的庫了。
如果想對每個target運用不同的庫,就在下面寫上需要設置的target,并加上需要的庫就行了。

參考資料

蘋果資料

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容