2011-10-09 47 views
25

我有一個應用程序,有免費的和定價的產品,我需要爲我的應用程序創建兩個APK,並在支持它的國家/地區顯示支持應用程序內結算的應用程序,並顯示同一應用程序的另一個APK支持應用內結算(它只有免費產品)在不支持它的國家/地區。是否有可能基於國家有多個APK支持?

我可以使用Android Market多APK支持功能來實現這個功能嗎?如果不是,除了創建兩個單獨的應用程序之外,是否有任何可行的建議?

回答

17

多APK功能AFAIK不支持過濾國家至少在當前版本中。查看Supported filtersRules for multiple APKs瞭解更多詳情。

如果你打算建立兩個apks。除了使用多個APK功能(即使它在未來版本中支持過濾國家/地區),它也可以作爲兩個獨立的應用程序(您可以在開發人員控制檯中爲每個應用程序區分並設置可用的國家/地區)進行更簡單易用的維護。人們用來避免重複代碼的正常方式是使用Android庫項目。

如果您只想爲所有情況構建和發佈單個apk。一個可行的解決方案可以在項目資源中維護受支持的國家/地區列表,並添加一些條件分支來啓用/禁用基於國家/地區列表的應用內帳單代碼,並在運行時用一些UI警告確認用戶,如:

if (isInSupportedCountryList()) { 
    setInAppBillingOn(); 
} else { 
    setInAppBillingOff(); 
} 

正如您所看到的,每次新的國家被Google支持或刪除時,都需要(甚至不必)更新/重新發布。

+0

很好的解釋!但是,如果我們只是根據要求維護每個更新的國家/地區列表,那麼是否有可能實現這一目標?例如,如果版本號爲x,我們上傳一個國家的APK說A(僅),然後上傳一個版本x + 1爲另一個國家B(僅)。將這樣做發佈在國家A的應用程序? – bitsabhi

+0

因爲即使您在代碼中禁用它,您也無法將應用程序發佈到沒有應用內結算支持的國家/地區,所以我不認爲條件限制是基於各國的工作原理。 – Arashsoft

+0

問題是,如果我想添加一個新的字符串,我必須將該字符串翻譯成所有我已翻譯我的應用程序的語言,否則我不會翻譯字符串並翻譯一個應用程序。 – Kusan

-3

您可以通過本地化您的應用程序來實現此目的。檢查this

+0

恐怕你沒有得到我所要求的。這與本地化無關。我需要的是在相同的應用程序在不同的國家顯示不同的APK –

3

我認爲最簡單的事情就是上傳兩個單獨的應用程序,然後使用「發佈選項」來選擇您想要的每個版本的國家。然後,您可以添加和刪除「每個國家/地區」的應用程序。

enter image description here

相關問題