2012-10-20 54 views
1

我需要開發一個根據用戶所在國家/地區行爲不同的應用程序。比方說,如果用戶在法國,一些功能可用。但是,如果用戶來自印度,他將能夠訪問不同的功能集。基於用戶所在國家/地區的不同功能的應用程序

如果它只是基於語言的限制,我可以使用NSLocale類方法切換功能。但由於許可和法律原因,我的功能實際上取決於用戶的國家。

處理這種情況的最佳做法是什麼?

+1

爲什麼不從區域設置中檢索國家/地區代碼? –

+0

嗨熱舔,謝謝你的建議。我使用語言環境看到的問題是,用戶可以從設備的「設置」屏幕更改他的語言環境。我需要確切知道他來自哪個國家。更好的是,我需要知道iOS App Store國家是他。 – daniloslv

+1

你能問問用戶他/她來自哪個國家嗎? – pasawaya

回答

1

第三方應用程序無法訪問有關設備用戶或訪問iTunes帳戶的任何信息。沒有辦法知道用戶的真實國家。在任何時候,設備甚至可能不與任何一個人相關聯。例如,iPod touch可能沒有用戶登錄到任何iTunes帳戶。最終可以將相同的設備登錄到幾個不同帳戶中的一個。

您只能訪問用戶當前的GPS位置(如果用戶允許您的應用訪問該信息)或當前的語言環境。

基本上,沒有辦法做你所需要的。當然,你可以提示用戶,但顯然沒有辦法驗證這些信息。

+0

是的,理論上你可以使用GPS,但它需要詳細的邊界數據庫。 –

+0

@HotLicks你實際上可以通過SDK(MKReverseGeocoder)從GPS獲取國家。真正的問題是用戶必須允許。 – sosborn

0

對於因市場特定的許可或法律問題而有特定要求的每個市場,您可以在iTunes Connect中創建一個單獨的應用程序,並僅在相關市場上提供下載。如果你需要,這也可以讓你提供一個特定於市場的EULA。這是一個很大的維護負擔,但它可以確保只有特定市場的用戶才能訪問該應用程序。

請注意,在XCode中,您可以非常容易地構建,部署和發佈由不同配置(XCode稱爲「目標」)構建的項目的多個版本,因此您仍然可以通過簡單地添加一些預處理器定義在相關的目標定義中,並將#ifdef置於您想要區分邏輯的代碼中。

相關問題