2012-11-26 54 views
21

從時間到我發現一個令人討厭的文字對話框:「點擊繼續並登錄檢查下載。」如果我登錄(使用沙箱用戶)或點擊取消,對話框會立即再次顯示。點擊繼續並登錄以查看下載。 [沙盒]

我正在使用非續訂訂閱和非消耗品產品。

任何想法如何擺脫這個對話框?

感謝

/馬丁

+1

不知道這是否是您的答案,但我發現,當我激活了我的測試帳戶後,應用內購買無法在沙盒中正常工作。看到http://stackoverflow.com/questions/11848714/in-app-purchase-sandbox-environment-loop,讓我知道如果有幫助。 – jpporterVA

+0

我們可以在生產中的應用程序購買中測試ios嗎?現在我沒有找到關於此的很多有用的文檔。 – abhi1992

回答

10

的共識似乎是:

  • 問題在iOS 6中
  • 開始這似乎不一樣,如果不與一個Apple ID登錄的設置發生。
  • 打開飛行模式,然後從設置中註銷您登錄的任何Apple ID,然後離開飛行模式約15分鐘將會停止消息一段時間。
  • 擦拭設備和恢復不會讓它消失
  • 有人提出了一個關於這個問題的bug,它被標記爲Duplicate,所以Apple似乎意識到這個問題,但不願意對此做任何事情。
  • 有人猜測,當您的設備使用一個ID登錄到Sandbox並使用另一個ID登錄到現場商店時,會發生這種情況。如果您正在測試應用內購買,請在開始測試之前註銷您的主ID。

下面是對這個問題的一些更多的討論:

https://discussions.apple.com/message/21492551?ac_cid=tw123456#21492551

https://discussions.apple.com/thread/4412889?tstart=0

5

沙盒很多時候問題的冗餘對話框這不適用於非沙箱帳戶。如果您遵循storekit協議,則無需擔心。我的問題是由didReceiveResponse委託人發出的重複警報框,但我的應用程序已獲批准,並且在真實環境中沒有問題。

+0

我們可以在生產中的應用程序購買中測試ios嗎?現在我沒有找到關於此的很多有用的文檔。 – abhi1992

1

我固定在最平凡的方式永遠。 當AlertView出現時,只需點擊繼續並使用該帳戶登錄即可。 (在我的情況下,它甚至存儲了從我的iTunesConnect中的測試用戶列表中刪除的舊帳戶)。 我收到了5或6個帳戶的提醒,我正在測試我的InAppPurchase,但是在我與他們所有人簽約之後,我不再得到它。 希望這會有所幫助。

0

我遇到同樣的問題。

我相當肯定的是,實際問題是在支付隊列中存在應用程序內購買,並且這些購買需要從隊列中清除

代碼這樣做:

[[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 

我的應用程序有需要傳遞之前,我致電上述方法的複雜的核查制度。如果用戶在該期間退出應用程序或失去互聯網連接,則付款隊列中將剩餘剩餘購買金額。

解決此問題的一種方法是僅在您獲得的每一筆交易中將應用程序修改爲「finishTransaction」 - 因此清除支付隊列。請務必登錄所有可能與付款隊列中的購買相關聯的帳戶(也就是您用於該應用的所有測試帳戶)。

-1

什麼固定對我來說是相似的kgaidis答案,但要使它更容易些,我只是放在多個:SKPaymentQueue.defaultQueue()finishTransaction(事務中SKPaymentTransaction!)

到updatedTransactions功能的購買狀態。我在那裏放了大約20個,然後運行應用程序。在應用程序購買的幾個沙箱後,問題就消失了。

0

我加

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]; 

我的appDelegate didFinishLaunchingWithOptions的末端,它解決了這一問題對我來說。

0

仍然存在於2017年!

看起來像一個沙箱故障:儘管退出沙箱用戶帳戶記住該用戶的ID和不完整的事務不斷彈出。

我清除這些由:

  • 提示登錄時的問題的用戶,
  • 通過在App的「恢復購買」功能,該用戶運行(如果提示重新輸入憑據)。

這將清除所有未完成的事務(如果您的「恢復購買」功能是正確的),因此將不會在隨後的運行中出現的消息(如沙盒交易不完整的再次離開,直到......)