您好,登錄后才能下訂單哦!
每個 App
項目可以有多個環境, 開發環境
、 測試環境
、 預發布環境
和 生產環境
,至少有 開發環境
和 生產環境
研發同學和測試同學經常需要在環境間切換,產品同學有時候也會心血來潮的看看各種版本,也就是說,有時候需要測試版本,有時候又需要正式版本,我之前的做法就是每次切換 url
,然后重新打包,或者重新運行,超麻煩~
那么有沒有可能在一個手機直接裝多個版本吶?
答案肯定是有滴(否則還碼這篇文章干嘛吶~)
個人覺得最好的方案就是 ------ 環境分離 ,即不同的環境對應不同的 app
每個Target代表一個編譯的產品。每個Target,可以有不同的編譯源文件和資源文件。那么,實現環境分離的方案,就是分別建立測試環境和生產環境的兩個Target。默認的Target作為生產環境的Target,在此基礎上復制多一個Target作為測試環境的Target。
一個 app
只能有一個唯一標示, iOS
使用的是 Bundle Identifier
, Android
使用的是包名,因此,在一個手機上安裝多個環境的 app
,只需要每個環境的 Bundle Identifier
或者包名不同即可, 一般做法是在后面添加環境后綴 ,比如生產環境為 com.shenfengfeng.myapp
,那么測試環境就可以為 com.shenfengfeng.myapp.alpha
, app
名字會更新,當然也可以手動改,當然也還可以改圖標,用來在同一個手機上區分版本
但是這種做法有個不好的地方就是需要,需要針對不同的環境,申請,不同的第三方的 appKey
、 appSecret
那么是來回注釋,還是申請賬號,看自己取舍吧~
概述: iOS app
可以通過創建不同環境的Target來實現環境分離,不同Target可以設置不同的 bundle id
、名稱、圖標等。每個 target
也對應的 plist
文件
1、復制 target
,選中后右鍵,選擇 Duplicate
2、默認的名字為 **** copy
3、修改 target
和 bundle id
,需要注意的是,在修改 target
的名字后,需要切換到 Xcode
的其他地方(比如其他 target
)后再切回來,然后 display name
會自動適配
4、項目結構里面會多一個默認 target
名字的 ***.plist
文件
5、 右鍵 show in finder
,將這個 plist
文件改名,并且移到項目的原本的 plist
文件的同級目錄,然后重新添加到項目中,注意選擇的 target
6、看下圖
7、因為移動了新的 target
的 plist
文件,所需要重新關聯到新的 plist
文件,關聯后隨意切換后會刷新
8、按著鍵盤 option
,點擊 Xcode
運行按鈕(左上方),然后點擊 Manage Schemes
9、重命名新創建 schemes
10、如圖
11、右鍵新建 AppIcon
12、選擇新的 target
對應的 AppIcon
13、關鍵步驟
設置了不同的 target
后,代碼上可以根據不同的 target
來做不同的處理,就需要知道,當前在編譯的是哪個 target
這可以通過,預編譯宏來區分,比如在 runtime alpha
的 target
的 Build Settings
中,在 Preprocessor Macros
中添加 FF_ALPHA
(也可以給 target
runtime
設置 FF_ALPHA=0
,給 runtime alpha
設置 FF_ALPHA=1
)
14、代碼中就可以如下判斷,依據實際情況
#ifdef FF_ALPHA #define FF_URL @"****" #elif ... #define FF_URL @"****" #else #define FF_URL @"****" #endif
15、結束,非常感謝看到這里的小伙伴,筆者感覺到很開心~
切換 Scheme
時候,遇到如下圖報錯
筆者將模擬器格式化后正常, Xcode 9.*
---> Hardware → Erase All Content and Settings...
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。