當(dāng)應(yīng)用完成測(cè)試后归苍,就可以提交應(yīng)用以供審核宠默。 該章節(jié)重點(diǎn)介紹一些提示來幫助開發(fā)者通過審核過程矛纹。
一、遞交產(chǎn)品供審核
當(dāng)?shù)谝淮翁峤粚徍顺绦驎r(shí)光稼,同時(shí)需要提交內(nèi)購產(chǎn)品以供審核或南。 第一次遞交通過審核后,后續(xù)更新應(yīng)用程序和內(nèi)購產(chǎn)品時(shí)則可以分別提交艾君。 更多信息采够,請(qǐng)看 In-App Purchase Configuration Guide for iTunes Connect.
二、在測(cè)試環(huán)境中的收據(jù)
當(dāng)應(yīng)用程序在開發(fā)冰垄,審核以及產(chǎn)品過程中蹬癌,在不同的環(huán)境中運(yùn)行。如下圖
在開發(fā)過程中虹茶,應(yīng)用程序的版本是開發(fā)簽名的版本逝薪,它連接到應(yīng)用開發(fā)服務(wù)器以及應(yīng)用程序中的測(cè)試環(huán)境。 在產(chǎn)品過程中蝴罪,用戶運(yùn)行產(chǎn)品簽名版本的應(yīng)用程序董济,它連接到應(yīng)用產(chǎn)品服務(wù)器以及產(chǎn)品應(yīng)用商店。 然而要门,在應(yīng)用程序?qū)徍诉^程中虏肾,應(yīng)用程序運(yùn)行在混合的產(chǎn)品/測(cè)試環(huán)境中:它是產(chǎn)品簽名并且連接到應(yīng)用產(chǎn)品服務(wù)器,但是它連接到應(yīng)用商店的測(cè)試環(huán)境中欢搜。
當(dāng)驗(yàn)證在服務(wù)器中收據(jù)時(shí)封豪,服務(wù)器需要能夠處理產(chǎn)品簽名的應(yīng)用程序,它從蘋果的測(cè)試環(huán)境中獲取它的收據(jù)炒瘟。 推薦方法是總是首先為應(yīng)用產(chǎn)品服務(wù)器激活收據(jù)而不是為產(chǎn)品應(yīng)用商店吹埠。 如果激活出現(xiàn) “Sandbox receipt used in production" 錯(cuò)誤,則驗(yàn)證測(cè)試環(huán)境疮装。
三缘琅、實(shí)現(xiàn)核對(duì)清單
在遞交審核應(yīng)用之前,驗(yàn)證已經(jīng)實(shí)現(xiàn)了所有需要的行為斩个。 確保應(yīng)用已經(jīng)實(shí)現(xiàn)了以下內(nèi)核內(nèi)購行為(以典型的開發(fā)過程順序列出):
- 在 iTunes Connect里創(chuàng)建并配置產(chǎn)品胯杭。
- 在過程中更改產(chǎn)品,但是在測(cè)試任何代碼前受啥,至少需要已經(jīng)配置好的產(chǎn)品
- 從應(yīng)用 Bubdle 或服務(wù)器上獲取產(chǎn)品 ID (product identifiers). 用 SKProductsRequest 對(duì)象把列表發(fā)送給應(yīng)用商店做个。
- 使用應(yīng)用商店返回的 SKProduct 對(duì)象,為應(yīng)用商店實(shí)現(xiàn)用戶界面。開發(fā)過程中使用簡(jiǎn)單的界面滚局,比如表格視圖或一些按鈕居暖。在開發(fā)過程中運(yùn)行順利后可以實(shí)現(xiàn)最終的用戶界面。
- 使用 SKPaymentQueue的addPayment: 方法來添加一個(gè) SKPayment 對(duì)象到交易隊(duì)列藤肢,用來請(qǐng)求支付太闺。
- 使用 paymentQueue:updateTransactions: 方法來實(shí)現(xiàn)交易隊(duì)列觀察者 (transaction queue observer)。
- 在開發(fā)過程中有任何需要時(shí)嘁圈, 在 SKPaymentTransactionObserver 協(xié)議里實(shí)現(xiàn)其它方法省骂。
- 為了以后能夠啟動(dòng)蟀淮,做永久交易記錄,傳遞已被購買的產(chǎn)品钞澳,下載全部相關(guān)內(nèi)容怠惶,并在最后調(diào)用 SKPaymentQueue 的 finishTransaction:方法。在開發(fā)過程中轧粟,只實(shí)現(xiàn)該代碼的簡(jiǎn)易版本--比如策治,只是簡(jiǎn)單的在屏幕上顯示“Product Delivered” 字樣---然后在開發(fā)過程中有任何需要時(shí)實(shí)現(xiàn)真實(shí)版本。
如果應(yīng)用程序出售非消耗產(chǎn)品兰吟,自動(dòng)更新訂閱通惫,或者非自動(dòng)更新訂閱,驗(yàn)證你已經(jīng)實(shí)現(xiàn)了以下恢復(fù)邏輯:
- 提供 UI 來開啟恢復(fù)過程混蔼。
- 通過使用 SKReceiptRefreshRequest 類來刷新應(yīng)用收據(jù)或者使用 SKPaymentQueue 類的 restoreCompletedTransactions 方法來恢復(fù)完整交易履腋,來獲取過去購買的信息。
- 允許用戶重新下載內(nèi)容拄丰。如果使用蘋果托管內(nèi)容府树,恢復(fù)完整交易并使用交易的downloads特性得到SKDownload類的對(duì)象。
- 如果應(yīng)用服務(wù)器是托管內(nèi)容料按,正確訪問應(yīng)用服務(wù)器奄侠。
如果應(yīng)用程序出售自動(dòng)或非自動(dòng)訂閱,驗(yàn)證已經(jīng)實(shí)現(xiàn)以下訂閱邏輯:
- 通過傳遞最新發(fā)布的內(nèi)容片斷來處理嶄新的購買訂閱---比如载矿,一本雜志最新的問題垄潮。
- 當(dāng)新內(nèi)容發(fā)布時(shí),用戶是可以使用的闷盔。
- 當(dāng)訂閱到期后弯洗,允許用戶重新更新它。
如果應(yīng)用程序出售自動(dòng)訂閱逢勾,允許應(yīng)用商店處理該過程牡整,不要嘗試自己來處理如下內(nèi)容。如果應(yīng)用程序出售非自動(dòng)訂閱溺拱,應(yīng)用程序負(fù)責(zé)處理如下過程逃贝。
- 當(dāng)訂閱到期后,停止用戶使用新內(nèi)容迫摔。更新應(yīng)用界面沐扳,這樣用戶就可以選擇再次購買該訂閱并重新激活它的內(nèi)容。
- 實(shí)現(xiàn)系統(tǒng)來跟蹤最新發(fā)布的內(nèi)容句占。 當(dāng)恢復(fù)購買時(shí)沪摄,使用該系統(tǒng),讓用戶可以根據(jù)訂閱激活的時(shí)間來訪問他們已經(jīng)支付的內(nèi)容。