2013-08-19 36 views
0

我正在開發一個使用web服務的iPad應用程序。在當前版本中,我有一個常量字符串,它是服務器的地址。每次我想檢查某些東西時,我只需更改地址(從生產,應用程序的凍結版本到預生產版本,等於存儲庫的版本)。問題是我想在iPad上有兩個版本的應用程序,但我認爲只要包標識符相同,這是不可能的。沒有創建另一個項目,這樣做的正確方法是什麼?我可以擁有「兩個目標」,可以分發兩個版本的應用程序,唯一的區別是web服務地址?ios分發預覽和製作版本

將應用程序傳遞給客戶端時,此問題會升級,因爲每當我部署測試版本時,「凍結」版本都將被刪除。

每次在部署之前更改webservice地址時,是否應該更改包標識符?或者也許有一些「自動化」的方式呢?

在此先感謝

回答

1

我不會依賴於您的服務請求的捆綁標識符,你最終會在你需要維護服務器的許多版本的API的。你可以做的是在你的項目上創建一個新的目標,並將一個預處理器宏添加到你的編譯設置中,然後在代碼中引用該宏來決定使用哪個URL。

enter image description here

然後在你的代碼:

- (NSURL *)url { 
NSString *urlString = @"your://standars.url"; 

#如果APITEST
urlString = @ 「你://test.url」;
#ENDIF

return [NSURL URLWithString:urlString]; 

}

+0

感謝答覆,但我不知道這是否是對我來說是正確的選擇。用戶一次可以在設備上安裝兩個版本? – patryk

+1

不是,因爲你肯定需要改變捆綁ID,並且爲了設置你可能想要添加一個不同的目標。請記住,認爲它可能會變得繁瑣,保持2個版本的同步。 – cescofry

+0

我接受你的回答,但我需要補充說我重複了目標,更改了捆綁ID,設置了正確的捆綁名稱,並使用預處理器宏來設置適當的服務器地址:-)現在我在模擬器/設備中有兩個應用程序。保留預生產和生產應用程序的版本並不困難,因爲我使用git存儲庫來跟蹤代碼更改(並且後端具有相同的模型,兩臺服務器)。 – patryk