十摧扇、<iOS IAP>內(nèi)購測試常見問題

1 胰耗、在iTunes Connect中祟剔,每個應(yīng)用程序可以創(chuàng)建多少格內(nèi)置購買產(chǎn)品 ID 隔躲?

閱讀 In-App Purchase Configuration Guide for iTunes Connect 中的Configuring a Product來尋找答案。

2物延、我的iOS應(yīng)用程序當(dāng)前是使用了一個 wildcard App ID 的 Provisioning Profile 來簽名的宣旱。我應(yīng)該如何讓我的 App ID 支持內(nèi)置購買?

閱讀 App Distribution Guide 的 https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingProfiles/MaintainingProfiles.html#//apple_ref/doc/uid/TP40012582-CH30-SW4 來學(xué)習(xí)如何讓你的 App ID 支持內(nèi)置購買叛薯。

3响鹃、不在 iTunes Connect 中找不到 Manage In-App Purchase 按鈕?

由于以下原因案训,你或許沒有 Manage In-App Purchase 按鈕:

  • 你的 iTunes Connect 賬號不是一個管理員或技術(shù)人員賬號。
  • 你的團隊代理人還沒有同意最新的 iOS 或 Mac 開發(fā)者計劃許可協(xié)議(
  • 你沒有最新支付的應(yīng)用合同粪糙。

4强霎、我必須上傳一個二進制文件來測試內(nèi)置購買嗎?

不需要蓉冈,測試內(nèi)置購買不要求上傳一個二進制文件城舞。

重要提示:不要把開發(fā)二進制上傳到iTunes Connect,直到應(yīng)用程序?qū)徍送ㄟ^寞酿。如果iTunes Connect里有二進制文件家夺,并且它的功能還不完善,應(yīng)用審核時會審核該二進制并且很可能會駁回該開發(fā)二進制文件伐弹。 如果你或應(yīng)用審核駁回你在iTunes Connect中最近的二進制文件拉馋,測試內(nèi)置購買將失敗。這種情況的變通辦法是上傳一個沒有內(nèi)置購買功能的二進制文件惨好,這樣就可以被審核通過煌茴。當(dāng)二進制文件審核通過以后,恢復(fù)帶有內(nèi)置購買功能的二進制測試日川。

5.我該如何解決“你的賬戶信息已經(jīng)改變”錯誤蔓腐?

你之所以得到這個錯誤,是因為你在測試內(nèi)置購買時用測試用戶賬號登陸了設(shè)備龄句。 解決該錯誤的辦法是回论,在設(shè)備的設(shè)置那登出應(yīng)用商店散罕,然后在 iTunes Connect 重新創(chuàng)建一個新的測試用戶賬號并用它測試內(nèi)置購買。

6傀蓉、為什么我的產(chǎn)品標(biāo)識符在 invalidProductIdentifiers 數(shù)組中返回欧漱?

這可能是以下原因造成的:

  • 你沒有完成所有的財務(wù)要求。
  • 你沒有使用一個 explicit App ID.
  • 你沒有使用跟你的 explicit App ID 相關(guān)聯(lián)的 Provisioning Profile .
  • 你在代碼中沒有使用正確的產(chǎn)品標(biāo)識符僚害。 關(guān)于產(chǎn)品標(biāo)識符硫椰,請看Technical Q&A, QA1329, 'In-App Purchase Product Identifiers' 以獲得更多信息。
  • 你沒有在iTunes Connect中出售你的內(nèi)置購買產(chǎn)品萨蚕。
  • 你或許已經(jīng)修改了你的產(chǎn)品靶草,但是這些更改并不是適用于所有的應(yīng)用商店服務(wù)器。
  • 你應(yīng)用審查被駁回岳遥,你在 iTunes Connect 中最新的二進制文件奕翔。

7、我該如何解決“你已經(jīng)完成了該內(nèi)置購買浩蓉,但是它還沒被下載派继。”錯誤信息捻艳?

這是因為你沒有在你的應(yīng)用程序里調(diào)用 SKPaymentQueue 的 finishTransaction: 方法驾窟。 調(diào)用該方法把一個交易從支付列表里移除。

8认轨、我該如何解決"你已經(jīng)成功購買绅络。點擊 OK 再次免費下載。"錯誤信息嘁字?

該信息是一個提醒恩急,而不是一個錯誤。它說你正在嘗試購買一個你已經(jīng)購買過的非消耗產(chǎn)品纪蜒。再次購買已經(jīng)購買過的非消耗產(chǎn)品并不需要再次支付衷恭。調(diào)用支付隊列的 restoreCompletedTransactions 方法不能恢復(fù)應(yīng)用程序中的任何產(chǎn)品。

9纯续、調(diào)用交易隊列的 restoreCompletedTransactions 方法可能不會重新購買随珠。

這可能是以下原因造成的:

  • 你以前并沒有購買任何非消耗,自動更新訂閱杆烁,或免費訂閱的產(chǎn)品牙丽。
  • 你正在嘗試恢復(fù)不能恢復(fù)的非自動更新訂閱或者消耗產(chǎn)品。
  • restoreCompletedTransactions 方法只能恢復(fù)非消耗兔魂,自動更新訂閱和免費訂閱產(chǎn)品烤芦。
注意:當(dāng)沒有可恢復(fù)的產(chǎn)品時,Store Kit 不會調(diào)用 paymentQueue:updatedTransactions: 方法析校。

10构罗、什么時候我應(yīng)該恢復(fù)我的內(nèi)置購買產(chǎn)品铜涉?

你只能在以下兩種情況下才可以恢復(fù)你的自動更新訂閱或者非消耗產(chǎn)品:

  • 為了在用戶的額外設(shè)備上下載它們時。
  • 當(dāng)它們的相關(guān)應(yīng)用程序被刪除時遂唧,為了可以在設(shè)備上重新下載它們芙代。

11、我該如何解決"這不是一個測試用戶賬號盖彭。請在沙盒環(huán)境重新創(chuàng)建一個新賬號纹烹。"錯誤信息?

該錯誤是因為當(dāng) Store Kit 請求你確認(rèn)購買時召边,你輸入了你的iTunes 用戶賬號聚唐。解決辦法是在你的設(shè)備的設(shè)置那登出你的應(yīng)用商店竟痰,當(dāng) Store Kit 要求你確認(rèn)購買時輸入測試用戶賬號。

12.我該如何取回 receipt 數(shù)據(jù)?

首先使用 appStoreReceiptURL 方法定位你的應(yīng)用 receipt 豫领,然后如列表2中所示讀取整個 receipt 數(shù)據(jù)愚墓。(僅適用于 iOS 7酪惭, OS X10.7 以后版本)
Listing 2 Retrieving the receipt data

NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
 // Test whether the receipt is present at the above URL 
if(![[NSFileManager defaultManager] fileExistsAtPath:[receiptURL path]])
{ 
NSData *receiptData = [NSData dataWithContentsOfURL:receiptURL];
 }
注意:對于支持 iOS6 或早先版本的應(yīng)用程序氯哮,使用 SKPaymentTransaction 對象的 transactionReceipt 特性來取回你的 receipt 數(shù)據(jù),如列表3.

Listing 3 Retrieving the receipt data in iOS 6 and earlier

-(void)completeTransaction:(SKPaymentTransaction *)transaction{ NSData *receiptData = [transaction transactionReceipt];}

13躏敢、驗證 receipt 失敗闷愤,狀態(tài)是一個<數(shù)字字符串>(iOS)

這是由以下原因造成的:

  • 你沒有在你的 iOS 應(yīng)用程序中用 base64加密你的 receipt 數(shù)據(jù)。
  • 發(fā)送到應(yīng)用商店的對象不是 JSON 格式件余。請看列表4肝谭,它是用于自動更新訂閱的一個正確的 JSON 對象。
    Listing 4 valid sample receipt for verifying an auto-renewable subscription
{ 
"receipt-data" : "...", "password" : "..."
}

14蛾扇、我給我的應(yīng)用程序添加了內(nèi)購功能。我該如何測試它 (iOS)魏滚?

要想測試內(nèi)購是否正確實現(xiàn)镀首,請遵循以下步驟:

  • 通過 Ad Hoc 發(fā)布方法下載你的初始應(yīng)用程序。
  • 還是通過 Ad Hoc 發(fā)布方法下載你的更新版應(yīng)用程序鼠次,用來驗證它覆蓋 (overwrites) 了初始應(yīng)用程序更哄。
  • 嘗試使用更新版本,試著從它那內(nèi)購產(chǎn)品腥寇。

15.驗證我的 receipt成翩,我應(yīng)該使用什么 url ?

當(dāng)你在沙盒你測試你的應(yīng)用程序赦役,以及當(dāng)你的應(yīng)用程序正在審核中時麻敌,使用沙盒 url: https://sandbox.itunes.apple.com/verifyReceipt

一旦你的應(yīng)用程序在應(yīng)用商店成功出售掂摔,使用生產(chǎn) url: https://buy.itunes.apple.com/verifyReceipt术羔。

16赢赊、我該如何驗證我的自動更新訂閱 receipt(iOS)?

首先總是用生產(chǎn) URL(production URL) 來驗證你的自動更新訂閱 receipt级历;如果你收到一個21007狀態(tài)碼释移,則使用沙盒URL來驗證。按照這種方法來驗證可以確保寥殖,當(dāng)你在沙盒中測試或?qū)徍藭r玩讳,或者在應(yīng)用商店出售時,你不需要不得不在應(yīng)用程序切換URL嚼贡。

注意:21007狀態(tài)碼表明該 receipt 是一個沙盒 receipt 熏纯,但是它被發(fā)送到生產(chǎn)服務(wù) (production service) 以用于驗證。

17编曼、我該如何解決 "Current receipt invalid or mismatched ds person id" 錯誤消息 (OS X)?

我的內(nèi)置購買已經(jīng)在 iTunes Connect 里本地化了很多語言豆巨。但是 localizedDescription 和 localizedTitle 特性總是以英語返回信息,即使我的測試設(shè)備默認(rèn)語言不是英語掐场。
localizedDescription 和 localizedTitle 根據(jù)當(dāng)前的 iTunes 商店設(shè)置的默認(rèn)語言來返回本地化信息往扔,而不是根據(jù)當(dāng)前的設(shè)備語言設(shè)置。 舉例熊户,如果你的內(nèi)置購買在 iTunes Connect里本地化了德語萍膛,但是你用英語測試用戶賬號登陸了,那么 localizedDescription 和 localizedTitle 會返回英語信息嚷堡。 要想 localizedDescription 和 localizedTitle 返回德語信息蝗罗,請用一個德語測試用戶賬號登陸你的測試設(shè)備。

參考
App Distribution Guide
iTunes Connect Developer Guide
In-App Purchase Programming Guide
Receipt Validation Programming Guide
In-App Purchase Configuration Guide for iTunes Connect
Technical Q&A, QA1329, 'In-App Purchase Product Identifiers'

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蝌戒,一起剝皮案震驚了整個濱河市串塑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌北苟,老刑警劉巖桩匪,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異友鼻,居然都是意外死亡傻昙,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門彩扔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來妆档,“玉大人,你說我怎么就攤上這事虫碉〖值耄” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纤虽。 經(jīng)常有香客問我乳绕,道長,這世上最難降的妖魔是什么逼纸? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任洋措,我火速辦了婚禮,結(jié)果婚禮上杰刽,老公的妹妹穿的比我還像新娘菠发。我一直安慰自己,他們只是感情好贺嫂,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布滓鸠。 她就那樣靜靜地躺著,像睡著了一般第喳。 火紅的嫁衣襯著肌膚如雪糜俗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天曲饱,我揣著相機與錄音悠抹,去河邊找鬼。 笑死扩淀,一個胖子當(dāng)著我的面吹牛楔敌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播驻谆,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼卵凑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了胜臊?” 一聲冷哼從身側(cè)響起勺卢,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎象对,沒想到半個月后值漫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡织盼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了酱塔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沥邻。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖羊娃,靈堂內(nèi)的尸體忽然破棺而出唐全,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布邮利,位于F島的核電站弥雹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏延届。R本人自食惡果不足惜剪勿,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望方庭。 院中可真熱鬧厕吉,春花似錦、人聲如沸械念。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽龄减。三九已至项钮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間希停,已是汗流浹背烁巫。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留脖苏,地道東北人程拭。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像棍潘,于是被迫代替她去往敵國和親恃鞋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容