2012-05-23 27 views
9

我有一個測試用戶帳戶,可以在應用程序購買中正常運行。在In App Purchase Test中刪除購買用戶帳戶

我想「刪除」從這個賬戶購買,這樣我就可以多次測試購買。現在,如果我嘗試購買,它在邏輯上說測試用戶已經購買了有問題的產品。

我可以刪除測試用戶帳戶購買,這樣我可以多次測試相同的購買。每當我想測試購買時,我都不願意創建一個新的測試用戶。

編輯:每次我嘗試購買,我得到一個對話框「您已購買此點擊OK再次免費下載它。」

+0

我可以再次澄清:1)這是應用內購買還是從應用商店購買? 2)如果這是應用程序內購買,應用程序如何知道您已購買該項目?國家必須保存在某個地方。 – nhahtdh

+0

這個問題是否有幫助:http://stackoverflow.com/questions/7604578/how-can-i-reset-sandboxed-in-app-purchases-on-ios-for-testing? – borrrden

+0

我只知道3種方式來存儲數據:iCloud,在設備上,和應用程序自己的服務器。 – nhahtdh

回答

8

如果你真的想測試它乾淨,你將不得不創建另一個測試用戶。但是,我不認爲這需要。重新下載應用內購買是幾乎相同的代碼流。實際的購買和驗證邏輯不是您的應用程序的一部分,並且用戶多次購買東西不是應該發生的事情(除非您指定它是那種消耗品)。如果它適用於重新下載,則可以安全地假定它將用於初次購買。

您沒有訪問這些數據。如果蘋果公開了重置購買的方式,那麼他們將面臨安全風險,因爲我認爲他們的沙盒服務器代碼與其生產代碼幾乎相同(否則沙箱將毫無意義)。由於數據位於Apple帳戶的Apple服務器上,因此可以跨越多個設備。

另一種辦法是將刪除從你的iTunes連接應用程序內購買,並作出一個新的。

+3

** [...]「重新下載應用內購買是一個幾乎相同的代碼流。」[...] **只是想提醒一下,儘管這種說法對於給定的交易處理程序是正確的。對於應用程序代碼本身來說並不一定是真實的,因爲初始購買可能與恢復舊購買有很大不同。 – Questor

+1

收據檢查驗證碼如何?您需要在代碼收據檢查時測試沒有產品的場景,反之亦然。 –

+0

@theReverend這可能是你需要模擬的東西(即爲了測試的目的,有一個方法返回YES,每次返回NO)。 – borrrden

1

如果您的應用程序內購買的類型是消耗品那麼您可以重新安裝您的應用程序。如果您的應用程序內購買是非易耗品,那麼您將需要創建其他測試用戶。

+0

我們可以在發佈到Appstore之前將IAP類型從'consumable'更改爲'non-consumable'嗎?這將是測試的解決方案。 – brigadir

+0

我們在創建iTunesConnect後無法更改iTunes Connect中的IAP類型,因此我們可以爲測試目的創建更多的「易耗」IAP。 –