中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
App環(huán)境分離的實(shí)現(xiàn):iOS篇

App環(huán)境分離的實(shí)現(xiàn):iOS篇

 2016-04-04  iOS 架構(gòu) 652

原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自Keegan小鋼
并標(biāo)明原文鏈接:http://keeganlee.me/post/architecture/20160404
微信訂閱號(hào):keeganlee_me
寫于2016-04-04


App環(huán)境分離的實(shí)現(xiàn):Android篇
App環(huán)境分離的實(shí)現(xiàn):iOS篇


說(shuō)到App環(huán)境分離在iOS的實(shí)現(xiàn),我曾在iOS技術(shù)群里問過:如何實(shí)現(xiàn)在同一臺(tái)手機(jī)能同時(shí)安裝同個(gè)應(yīng)用的測(cè)試和生產(chǎn)版本?應(yīng)用名稱要有區(qū)分,圖標(biāo)也要有所區(qū)別。不要手動(dòng)修改Bundle id和應(yīng)用名稱,也不要手動(dòng)替換圖標(biāo),更不要維護(hù)兩個(gè)項(xiàng)目。如何才能簡(jiǎn)單地實(shí)現(xiàn)?

結(jié)果發(fā)現(xiàn)很多人都不知道該怎么實(shí)現(xiàn)。其實(shí),實(shí)現(xiàn)方案很簡(jiǎn)單,只要建立多個(gè)Target即可。當(dāng)然,有些細(xì)節(jié)問題要注意,不然會(huì)出錯(cuò)。接下來(lái),看如何一步步地實(shí)現(xiàn)環(huán)境分離。

復(fù)制Target

關(guān)于Xcode中Target的概念,文檔中有這么一段說(shuō)明:

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. A target defines a single product; it organizes the inputs into the build system—the source files and instructions for processing those source files—required to build that product. Projects can contain one or more targets, each of which produces one product.

即是說(shuō),每個(gè)Target代表一個(gè)編譯的產(chǎn)品。每個(gè)Target,可以有不同的編譯源文件和資源文件。那么,實(shí)現(xiàn)環(huán)境分離的方案,就是分別建立測(cè)試環(huán)境和生產(chǎn)環(huán)境的兩個(gè)Target。默認(rèn)的Target作為生產(chǎn)環(huán)境的Target,在此基礎(chǔ)上復(fù)制多一個(gè)Target作為測(cè)試環(huán)境的Target。

如下圖,選擇默認(rèn)的Target,從右鍵菜單中選擇Duplicate,就可以復(fù)制出一個(gè)新的Target了。

新Target默認(rèn)名稱為productname copy。復(fù)制完成后,不只是TARGETS列表中多出了名為productname copy的新Target,同時(shí)也會(huì)為該新Target生成名為productname copy的新的scheme,以及在項(xiàng)目的根目錄下生成productname copy-Info.plist文件。

更名Target

不喜歡productname copy這樣的名字,productnameBeta這樣的名字才是測(cè)試版本該有的名字。那么,需要改名的地方有三處:target名稱、scheme名稱、plist文件名稱。

修改target名稱很簡(jiǎn)單,只要在TARGETS列表中選中后,再點(diǎn)擊一下即可編輯修改名稱。修改scheme則可以在Xcode左上角的Run\Stop按鈕右邊的scheme列表菜單中選擇Manage Schemes,打開彈出框,如下圖,則可將productname copy修改為productnameBeta



plist文件則修改為productnameBeta-Info.plist,同時(shí),我還將其移到與默認(rèn)的Info.plist文件在同個(gè)目錄下。不只是在同一個(gè)分組下,也是在同一個(gè)物理目錄下。改完plist文件后,還需要修改productnameBeta的Target的Info.plist File設(shè)置,該屬性設(shè)置了相應(yīng)Target綁定的plist文件是哪個(gè)。該屬性值本來(lái)為productname copy-Info.plist,現(xiàn)需要更改為productname/productnameBeta-Info.plist

修改配置

接下來(lái),就要修改Target的配置,實(shí)現(xiàn)真正的環(huán)境分離了。默認(rèn)的productname的Target,作為生產(chǎn)版本,基本不需要改動(dòng),需要改的是作為測(cè)試版的productnameBeta。

首先,修改productnameBeta的Bundle id,在原有的基礎(chǔ)上添加后綴“.beta”,以實(shí)現(xiàn)能和生產(chǎn)版同時(shí)安裝在同一臺(tái)設(shè)備上。

接著,修改Bundle display name,可在原有名稱的基礎(chǔ)上添加后綴“Beta”,以實(shí)現(xiàn)和生產(chǎn)版應(yīng)用名稱上的區(qū)分。

然后,需要更換圖標(biāo)了。默認(rèn)會(huì)使用AppIcon這一項(xiàng)Assets,但AppIcon是給生產(chǎn)版設(shè)置的圖標(biāo),既然測(cè)試版要使用不同圖標(biāo),那就需要新建一套新的App Icon,如下圖:


新建的App Icon將其命名為AppIcon-Beta,放置測(cè)試版的圖標(biāo)。并將productnameBeta的App Icons Source指定為新建的AppIcon-Beta。至此,圖標(biāo)也與生產(chǎn)版的有所區(qū)別了。

判別Target

那么,設(shè)置了不同Target后,代碼上可能需要根據(jù)不同Target做不同處理,因此,需要在代碼上能判斷當(dāng)前編譯的是哪個(gè)Target。這可以通過預(yù)編譯宏來(lái)區(qū)分。例如,我們?cè)?strong>productnameBeta的Build Settings中,將Preprocessor Macros屬性值設(shè)置為BETA,也就是為productnameBeta定義了一個(gè)預(yù)編譯宏,宏名稱為BETA。

然后,在代碼中可以通過如下預(yù)編譯指令判斷當(dāng)前是在哪個(gè)Target下:

#ifdef BETA    // 測(cè)試版需要執(zhí)行的代碼#else    // 默認(rèn)生產(chǎn)版需要執(zhí)行的代碼#endif

寫在最后

通過多個(gè)Target可以實(shí)現(xiàn)環(huán)境的分離,本文的實(shí)現(xiàn)很簡(jiǎn)單。而關(guān)于Target的用法也不只限于此,若想了解Target更多高級(jí)用法,可查詢相關(guān)資料,在此就不展開了。


掃描以下二維碼即可關(guān)注訂閱號(hào)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
iOS 開發(fā) Xcode 一個(gè)工程 Project 創(chuàng)建多個(gè) target
[iOS] iOS9.0 關(guān)閉系統(tǒng)強(qiáng)制使用HTTPS
iOS 15.5 RC修復(fù)了什么bug
iOS 11.4.1 beta測(cè)試版仍是修修補(bǔ)補(bǔ),但iOS 12 beta 2變化很多
none of the input catalogs contained a matching app icon set named “AppIcon”解決辦法 | iOS開發(fā)
又更新!iOS11 beta6 詳細(xì)解說(shuō)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服