2012-06-25 84 views
25

我正在開發一個應用程序,我們正在嘗試針對登臺環境以及生產環境進行一些測試。當然,我已經創建了「Stage」和「Prod」構建配置來在兩者之間切換,但我的客戶希望將兩者並排安裝,以便他們可以輕鬆地在兩種環境之間切換。我一直在用我的代碼的一個分支來維護一個不同的包標識符和包顯示名稱,所以它們可以並排安裝和測試。不過,我開始懷疑是否有更簡單的方法來做到這一點。有沒有一種方法可以定義自定義構建設置,根據構建配置給它一個值,然後將其附加到包標識符的末尾?針對不同構建配置的不同捆綁包標識符

喜歡的東西...

BUNDLE_SUFFIX 
    TEST 
    STAGE 
    PROD ".PROD" 

...然後把我捆綁標識符來com.blah.blah$(BUNDLE_SUFFIX)。然後,所有使用PROD配置的版本都會自動獲得新的捆綁ID,而且我不必一直同步分支。這種事甚至可能嗎?

+0

有一兩件事你可以做的是檢查包做代碼中的ID,並根據包ID修改您的應用行爲。我有一個應用程序的三個版本;開發版本,測試版本和實時版本:每個都使用不同的web apis。所以我在運行時檢查包標識符以確定要使用哪些URL。 – ader

+0

我也使用不同的配置文件,捆綁標識符和名稱的目標,所以我不必爲此而混淆任何分支。 – ader

+0

它只是在你的舞臺和製作版本中改變的url嗎? –

回答

18

是的,你在正確的軌道上。這裏是一個很好的教程:http://nilsou.com/blog/2013/07/29/how-to-have-two-versions-of-the-same-app-on-your-device/

+0

不錯!我不再爲這個項目工作,但這看起來正是我當時需要的東西。 –

+0

該文章適合我。我唯一需要改變的是,如果你使用appiconset作爲app圖標,你可以在'Build Settings' - >'Asset Catalog App Icon Set Name'中配置它,而不是替換plist中的每個圖標文件' –

+0

該教程很有幫助,但是如何指定構建哪個構建配置而不創建單獨的方案(我不想這樣做,因爲它會爲整個項目增加更多手動開銷)?理想情況下,我會有3個配置:開發,分期,生產 - 所有將有不同的網址和捆綁ID – powerj1984

33

的Xcode 7

這可以很容易地使用在建的包裝配置設置

enter image description here

+0

這是真的。但是,在目標設置的常規選項卡中還有另一個包標識符佔位符。因此,如果您爲每個配置保留不同的包標識符,它在通用窗格中如何反映? –

+3

編輯你的方案,並將'Run'的'Build Configuration'改爲'Release'或其他的東西,其默認值是'Debug'。然後你的'general'頁面將顯示'Release'的配置。 @RashmiRanjanmallick –

+1

除此之外,我還必須在每個配置的Build Settings中設置「Product Bundle Identifier」。否則,常規選項卡中的預配置配置文件設置會投訴(Xcode 8)。 – Simo

相關問題