你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> 【投稿】用同一個工程創建兩個不同版本的應用

【投稿】用同一個工程創建兩個不同版本的應用

編輯:IOS開發基礎

Eat-Smart-513-2b.jpg

如果同一個應用, 需要做一個帶廣告Lite版本, 一個不帶廣告的Pro版本. 那麼問題來了, 該如何優雅的去實現呢?

一般來說有兩種實現方法:

  1. 一個把當前工程拷貝然後再修改, 這樣做會導致後期維護成本過高, 每次修改都要同時改兩個工程, 到後期修改簡直提心掉膽, 不過操作傻瓜式.

  2. 另外一個種就是在一個Project裡面創建兩個Target, 然後通過判斷Target來修改代碼, 這樣都是基於同一套代碼做修改, 只是部分不相同的地方通過Target來添加不同代碼, 後期修改維護成本低, 推薦大家使用這種方式.

  • 不想看教程的童鞋, 點擊這裡可以下載我已經完成好的代碼.

創建兩個Target:

1.首先先選中Target一個已經存在的版本, 右鍵 Duplicate

blob.png

2.然後在彈出來的選擇框選擇 Duplicate Only

blob.png

3.創建完之後你的新Target應該是和我的一樣, 接下來我們就要修改Target, Scheme, Info-plist, 如圖這樣修改:

blob.png

blob.png

4.修改完了之後Target, Scheme, plist的名字之後, 你需要在新的Target添加對應的plist文件, 修改CFBundleDisplayName就可以修改應用的名字了.

blob.png

blob.png

blob.png

5.還要記得修改一下Product Name 不然你的Bundle Identifier的後綴名有copy和你的Target名字不一樣, 你還需要在Bundle Setting做一下修改.

blob.png

開始為兩個不同的應用添加不同的AppIcon, LaunchImage

在這個選擇使用Images.xcassets裡面設置AppIcon和LaunchImage, 注意這裡一個是AppIcon,另一個是AppIcon-2, 以後編譯Target的時候他就會跟隨這裡的設置去拿了開機圖和Icon

blob.png

blob.png

blob.png

2.進入Images.xcassets看下圖片是不是都是勾選了兩個Target, 保持和我下圖一樣的勾選, 如果沒有勾選的話, 你在編譯的不同Target的時候會獲取不到資源.

blob.png

3.選擇不同Target進行編譯, 你的運行結果應該和我的截圖一樣, 有著不同的AppName和AppIcon,還有不同的LaunchImage,但是代碼是共用, 到這裡你已經成功了一半了, 接下來你肯定是想知道如何在代碼裡面區別不同Target, 然後給它們添加其他的特性.

blob.png

在代碼裡面利用宏定義來區分不同的Traget

1.在Bundle Setting裡面設置一下Proprecessor Macros添加一份KFREE  KPRO的參數來區分到底是那個Traget. 在代碼裡面為需要用到這個宏去判斷代碼塊.

blob.png

blob.png

2.在代碼裡面添加Proprecessor Macros裡面宏定義, 你就會發現編譯之前Xcode就會智能的選擇不同代碼. 這樣你就共用一個項目管理兩個不同版本的應用了, 大部分的代碼都復用, 維護管理非常輕松.

blob.png

blob.png

總結:

蘋果每年都會推出新的技術, 都是為了減少開發成本和更好的設計, 作為開發者的開發模式應當和蘋果的理念一致. 用最優雅, 簡潔的方式去實現功能.

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved