2012-06-11 163 views
11

我正在嘗試新的市場策略,因此我現在將免費提供我的0.79歐元應用程序,並通過應用程序內購買解鎖所有內容。我也不想背叛已經購買它的用戶,所以我想實施一項檢查,看看誰已經購買了該應用,不需要購買應用內支付來解鎖所有應用。iOS應用程序購買日期

我的問題是...我可以檢查應用程序何時被購買?或者也許有一個簡單的方法?

+0

感謝的答案,但我需要的東西,不會弄亂用戶後刪除應用程序。我需要爲應用程序購買「免費」的應用程序,以便我可以在應用程序被刪除時恢復它。 –

+0

它應該可以(而不是隱私侵犯)能夠訪問以前購買的應用程序版本/購買價格,但App Store在這方面極其缺乏(它甚至不支持付費升級,儘管原始的「你已經購買了此應用程序的先前版本」消息提示可能降價升級)。我有最好的建議是[提交增強請求](https://bugreport.apple.com/)。 –

回答

4

你無法確定這一點,因爲沒有辦法檢查用戶是否購買了應用程序,因爲無法向操作系統詢問安裝/購買日期。

如上所述,您可以將其保存在NSUserDefaults中,但如果用戶刪除該應用程序,則該信息將丟失。

可以將它保存在鑰匙串中,如果您刪除該應用程序,該鑰匙串不會被清除,但問題仍然存在,因爲如果iOS設備得到恢復,這些設置可能會丟失。

+1

至少在iOS 7中這不再正確。請參閱[下面](http://stackoverflow.com/a/23119397/1534401)以獲取正確答案。 – Frederik

+0

@Frederik這是真的,但是當這個答案寫的時候是正確的。 – rckoenes

+1

@rckoenes它仍然是正確的,因爲正式購買日期只存在於應用程序內購買,而不是應用程序本身。 – Mecki

0

假設您當前版本的應用程序保存狀態,在下次應用程序版本首次啓動時,您可以檢查任何已保存的狀態(例如NSUserDefaults中的密鑰,文檔目錄中的文件等)

但是,您應該只做一次,因此您需要在別處另有一個標誌來告訴您已執行檢查。

+3

mh但是當用戶刪除並重新安裝應用程序時會發生什麼? – Pfitz

+0

是的好點...而且,他們的購買日期可能不是他們第一次打開應用程序的日期 – MCKapur

1

rckoenes解釋是正確的。我最近經歷過這樣的情況,我已經考慮了答案中提到的選項。我最終的選擇是發佈另一個應用程序擴展(如'pro'或'lite'等),而不是現有應用程序的一個版本。這將切斷處理您的應用購買狀態的所有麻煩。然後,您將擁有全付費版本的應用以及所有優質內容和一個免費版本以及應用內購買來解鎖內容。希望這會有所幫助。

+0

我已經嘗試了2種應用程序的方式,但應用程序被拒絕,因爲「你不能這樣做,但你必須實施應用程序內購買」。順便說一句,我不喜歡有很多需要兩個相同的更新的2個應用程序... –

+0

可能有一些遺漏。名稱應該有所不同。 2我猜,應用模型只是一個選擇問題。如果你稍微瀏覽商店,你會發現幾乎所有流行的遊戲/應用都使用相同的模型。而對於更新,您可以通過將應用程序開發爲單一而非兩個來處理它,並在某種不同的define-directives的基礎上實現您的邏輯。無論如何,這就是我處理事情的方式,會急於知道你最終會怎麼做。 – Ahmed

+0

是的......我正在考慮一種簡單而友好的方式。無論如何感謝提示:-) –

-1

這應該是非常簡單的。如果您知道您的新應用程序何時聯機,您只需檢查安裝日期/時間(首次運行時將日期/時間存儲在鑰匙串中)。在您的免費應用上線日期/時間之前安裝該應用的用戶可以訪問內容。如果您擔心新用戶弄亂日期/時間,請使用在線時間服務獲取實際時間。

7

只是爲了更新這個,它是可能的。看看在這個問題的答案 - 在收到領域之一是「原購買之日起」

A complete solution to LOCALLY validate an in-app receipts and bundle receipts on iOS 7

+2

原始購買日期只是IAP條目的一個字段,它不適用於應用程序本身。應用購買日期也在收到應用,但沒有記錄。 – Mecki

+0

哎呀!我認爲我在「IAP數據 –

+0

@Mecki」裏面(正如您所指出的)「原始購買日期」令人困惑,「原始應用程序版本」(在應用程序級別),那麼「收據創建日期」如何?人們可以使用它作爲應用程序購買日期 – derpoliuk