2013-10-15 50 views
26

我在考慮更改我的付費iOS應用爲免費,使其成爲ad based,並且有一個in-app purchase選項可移除廣告。將付費應用更改爲免費,但知道用戶以前是否購買過

這聽起來像是一個好主意,如果我剛啓動應用程序,但我們有超過3萬次付費下載,並且我不希望這些用戶在更新到免費的新版本時看到廣告。

我在這裏有什麼選擇嗎?

+1

你是否在用戶默認/鑰匙串中存儲任何東西? – Wain

+0

是的,存儲他們是否使用度量標準。 –

+4

我不會切換到免費,30k是好的:-) –

回答

-3

不是,沒有。你可以做的最好的事情就是發佈一個更新,而它仍然是一個付費應用程序,它向NSUserDefaults(或者應用程序數據目錄中的一個文件,它並不重要)寫入一些值,表明它已被購買。等待一週或不管您想要的時間長短,然後發佈刪除該代碼的更新,定時在價格更改爲免費的當天發佈。

-1

唯一的選擇是發佈兩個更新。第一個將爲NSUserDefaults寫一個值,將它們標識爲購買者。第二個更新是您的廣告支持版本,可以讀取此購買者識別值並隱藏廣告。

+0

是的,但如果有人購買了過去,然後在我釋放免費版本後重新下載應用程序,這將不起作用。 –

+0

@NicHubbard,這實際上是不可能自動處理的。您需要爲使用自定義URL方案或類似內容的用戶提供升級路徑。 – Wain

+0

@NicHubbard當前版本是否向NSUserDefaults,鑰匙串或Documents目錄寫入任何內容?您可以在應用程序將任何內容寫入持久性存儲之前檢查免費版本**中的內容。 – neilco

1

如果您的當前應用程序有任何用戶默認值或鑰匙串中的數據,則可以作爲指標。當應用程序第一次打開(在新的版本)運行了一下代碼:

  1. 檢查在默認/鑰匙串數據
  2. 如果找到,使付費內容/禁用廣告
  3. 將這些數據遷移到一個新的密鑰(所以你不要再次升級/免費贈送東西)
+0

是的,我認爲它不起作用。因爲有些用戶可能暫時不升級,最後升級到第二個「免費」版本,這會破壞該場景。 –

+0

如何?關鍵是任何使用舊應用程序的人都將擁有原始密鑰。任何已升級或安裝新版本的用戶都將擁有新密鑰。 – Wain

+5

說一年前有這個應用程序,並且從那以後就刪除了它們,並且他們還獲得了一個新的iPhone。他們進入他們的「已購買」列表,並重新下載自從他們購買之前的應用程序。我不知道他們爲此付出了代價。 –

62

從iOS 7開始,可以使用正確的接收驗證來完成。在iOS 7下,您可以獲取購買的應用程序的收據。收據中的部分數據包含有關用戶原始購買版本的信息。您可以查看該版本,並且如果它是在更新發布之前免費使用IAP,則可以選擇爲用戶提供全部功能,而無需用戶再次購買升級。

當然,如果你希望你的更新的應用程序在iOS 6下工作,這不是一個選項。

有關收貨確認的詳細信息,請參閱Receipt Validation Programming Guide

+0

這聽起來像個好主意,但我需要支持iOS5。 –

+0

請記住,相比於6和7,iOS 5的使用率很小。 – rmaddy

+11

使用此功能並且根本不會在iOS5/6上展示廣告。 –

0

Woudnt在付費應用程序上啓動時提供免費的inanpp購買更容易。一個按鈕,像「升級」一樣。然後切換那個免費的inapp付費下一次更新?

+1

這對於已經購買該應用但已將其刪除的用戶來說是個問題。如果他們在幾個月內再次下載,那麼通過「升級」按鈕錯過了應用程序版本。他們只需安裝更新,這將是免費版本,當然包含廣告。 –

-1

在iTunes連接中,您可以爲應用程序購買生成促銷代碼。您可以創建高級功能的IAP項目,並手動將其作爲促銷給予購買者。雖然不是自動解決方案,但它可以讓你免於一些頭痛。

相關問題