我目前正在將現有的iOS應用調整爲一個非常類似的應用系列(每個應用實例可能會映射到不同的國家/地區) 。管理相關iOS應用系列的最佳做法
我打算在具有不同的構建目標,所有這些情況下,它們之間唯一的區別應該是:
- 圖像(可能只是濺射屏幕和圖標)
- 本地化
- 字符串變量:基本URL用於遠程服務,應用ID,支持電子郵件等(可能一半這樣的變量的一打)
代碼本身應該是SA我在所有的應用程序。
我想知道的是你認爲是管理這類應用系列的最佳實踐。
關於圖像和本地化(或一般的資源),它應該只是從目標添加/刪除適當的文件(我猜我甚至可以在不同的目錄中使用相同的圖像名稱)。
我不知道的主要是其他配置變量。
我聽說過的幾個選項/念頭:
- 使用預處理宏,並與不同的URL的主要配置的頭文件,身份證,等
- 從plist中加載它們(或類似配置文件),只要應用程序啓動,並具有一個目標一個這樣的文件
- 創建空.sqlite文件(此應用已經使用了核心數據),並與缺省配置變量填充它,並具有一個目標一個這樣的文件
我覺得第一個選項是最快一發不可收拾一旦我有這個應用程序的少數情況下,再加上我必須重新編譯每次我更改這些設置一次。
第三個選擇,我也不能確定,因爲我會增加實體到我的數據庫不覺得自己屬於那裏,加上它那種感覺就像矯枉過正的東西可能會是5-10設置。我也不確定如何在更新中添加新設置。
所以我更傾向於第二種選擇。
想法?任何替代這些?
更新#1:
關於第二個選項,也有一個缺點,即這些字符串(IDS,網址等)會稍微暴露(即,如果某人是打開的應用程序,並通過看plist),而不是源代碼。並不是說這是一個大問題,而只是需要考慮的問題。
更新#2:
如何直接使用應用程序的Info.plist並將其存儲在那裏? (因此有一個信息。每個目標配置的plist)雖然最初我想的是有一個單獨的plist,並且有一個「配置單例」,它可以在啓動時加載所有內容,但我認爲簡單地將它放在info.plist中可能更簡單,然後通過[[[NSBundle mainBundle] infoDictionary] objectForKey:@"com.example.mykey1"]
閱讀。
沒想到的是,確實也將讓事情變得簡單......但我不知道我會想,以配合各建一個只有一個特定的(一套)語言(S)。另外,關於sqlite源代碼管理問題的好處,我沒有考慮過。 – 2011-04-05 07:45:16