版本記錄
版本號 | 時(shí)間 |
---|---|
V1.0 | 2018.08.14 |
前言
大家都知道,ios虛擬商品如寶石、金幣等都需要走內(nèi)購,和蘋果三七分成,如果這類商品不走內(nèi)購那么上不去架或者上架以后被發(fā)現(xiàn)而被下架。最近有一個(gè)項(xiàng)目需要增加內(nèi)購支付功能,所以最近又重新集成并整理了下,希望對大家有所幫助。感興趣的可以參考上面幾篇。
1. iOS內(nèi)購IAP(一) —— 基礎(chǔ)配置篇(一)
2. iOS內(nèi)購IAP(二) —— 工程實(shí)踐(一)
3. iOS內(nèi)購IAP(三) —— 編程指南之關(guān)于內(nèi)購(一)
4. iOS內(nèi)購IAP(四) —— 編程指南之設(shè)計(jì)您的應(yīng)用程序的產(chǎn)品(一)
5. iOS內(nèi)購IAP(五) —— 編程指南之檢索產(chǎn)品信息(一)
6. iOS內(nèi)購IAP(六) —— 編程指南之請求支付(一)
7. iOS內(nèi)購IAP(七) —— 編程指南之促進(jìn)應(yīng)用內(nèi)購買(一)
8. iOS內(nèi)購IAP(八) —— 編程指南之提供產(chǎn)品(一)
9. iOS內(nèi)購IAP(九) —— 編程指南之處理訂閱(一)
10. iOS內(nèi)購IAP(十) —— 編程指南之恢復(fù)購買的產(chǎn)品(一)
11. iOS內(nèi)購IAP(十一) —— 編程指南之準(zhǔn)備App審核(一)
開始
構(gòu)建iOS應(yīng)用程序的一個(gè)好處是,您在應(yīng)用程序貨幣化方面有很多選擇:普通的vanilla付費(fèi)應(yīng)用程序,廣告支持的免費(fèi)應(yīng)用程序,甚至支持應(yīng)用程序內(nèi)購買的應(yīng)用程序。
應(yīng)用內(nèi)購買(或IAP)允許開發(fā)人員在使用應(yīng)用時(shí)向用戶收取特定功能或內(nèi)容的費(fèi)用。由于以下幾個(gè)原因,實(shí)施IAP尤其引人注目:
- 這是一種額外的賺錢方式,除了簡單地預(yù)先付費(fèi)購買應(yīng)用程序。一些用戶愿意在額外的內(nèi)容或功能上花費(fèi)更多。
- 一個(gè)應(yīng)用程序可以免費(fèi)提供,這使其成為大多數(shù)人的簡單下載。免費(fèi)應(yīng)用通常會(huì)比付費(fèi)應(yīng)用獲得更多下載。如果用戶喜歡該應(yīng)用,那么他們可以在以后購買更多內(nèi)容或功能。
- 您可以在免費(fèi)應(yīng)用程序中向用戶顯示廣告,并可選擇通過購買IAP刪除它們。
- 在首次發(fā)布應(yīng)用后,新的付費(fèi)內(nèi)容可以添加到同一個(gè)應(yīng)用中,而不必開發(fā)全新的應(yīng)用以賺取更多收益。
在此應(yīng)用內(nèi)購買教程中,您將利用IAP解鎖應(yīng)用中嵌入的額外內(nèi)容。您需要熟悉基本的Swift和iOS編程概念。如果不熟悉這些,那么在開始之前您需要一個(gè)付費(fèi)開發(fā)者帳戶,可以訪問iOS Developer Center和App Store Connect。
注意:本篇文章環(huán)境是Swift 4.2, iOS 12, Xcode 10。
在這個(gè)應(yīng)用程序內(nèi)購買教程中,您將構(gòu)建一個(gè)名為“RazeFaces”的小應(yīng)用程序,它允許用戶購買“RazeFace”,是這個(gè)網(wǎng)站常用的書籍和視頻的簡潔插圖。
下載下來這個(gè)應(yīng)用,然后在Xcode中打開。 Build并運(yùn)行以查看它到目前為止的功能。 答案是:不是很多! 您將看到一個(gè)空表視圖,導(dǎo)航欄中有一個(gè)Restore
按鈕,稍后將連接該按鈕以恢復(fù)購買。
完成本教程后,將會(huì)在表格視圖中列出一個(gè)您可以購買的RazeFaces
列表。 如果您刪除并重新安裝該應(yīng)用程序,Restore
按鈕將恢復(fù)以前購買的任何RazeFaces
。
前往Xcode快速查看代碼。 主視圖控制器位于MasterViewController.swift
中。 此類顯示tableview視圖,其中包含可用IAP列表。 購買存儲(chǔ)為SKProduct
對象的數(shù)組。
請注意,MasterViewController
正在使用一個(gè)名為IAPHelper
類型的RazeFaceProducts.store
的對象來完成繁重的工作。 看看他們各自的代碼文件RazeFaceProducts.swift
和IAPHelper.swift
。
RazeFaceProducts
是一個(gè)簡單的結(jié)構(gòu),包含有關(guān)應(yīng)用程序中產(chǎn)品的一些信息,IAPHelper
完成了與StoreKit
交接的所有重要工作。 這些方法目前都已被刪除,但您將在本教程中填寫它們以向應(yīng)用程序添加IAP功能。
在編寫任何代碼以合并IAP之前,您首先需要在iOS Developer Center
和App Store Connect
中進(jìn)行一些設(shè)置。
Creating an App ID - 創(chuàng)建一個(gè)App ID
首先,您需要?jiǎng)?chuàng)建一個(gè)App ID
。 這會(huì)將您的應(yīng)用與您的應(yīng)用內(nèi)購買產(chǎn)品相關(guān)聯(lián)。 登錄Apple Developer Center,然后選擇Certificates, IDs & Profiles
。
接下來,選擇Identifiers > App IDs
,然后單擊右上角的+以創(chuàng)建新的App ID
。
填寫新App ID
的信息。 輸入Name
為的RazeFace IAP Tutorial App
。 選擇Explicit App ID
并輸入唯一的Bundle ID
。 通常的做法是反向使用您的域名(例如,com.razeware.razefaces
)。 記下Bundle ID
,因?yàn)樵诮酉聛淼牟襟E中將需要它。
向下滾動(dòng)到App Services
部分。 請注意,默認(rèn)情況下啟用應(yīng)用程序內(nèi)購買和GameCenter
。 單擊Continue
,然后單擊Register
和Done
。
恭喜! 您有一個(gè)新的App ID! 接下來,您將在App Store Connect
中創(chuàng)建匹配的應(yīng)用程序。
Checking Your Agreements - 檢查你的協(xié)議
在將iTunes添加到iTunes Connect
中的應(yīng)用程序之前,您必須執(zhí)行以下兩項(xiàng)操作:
- 確保您已在developer.apple.com上接受最新的
Apple Development Program License Agreement
。 - 確保您已在App Store Connect.
的Agreements, Tax, and Billing
部分中接受了最新的Paid Applications
協(xié)議。
如果您還沒有這樣做,通常iTunes Connect會(huì)給您一個(gè)警告,如下所示:
如果您看到類似上述內(nèi)容,請按照步驟接受相應(yīng)的協(xié)議。
在iTunes Connect中仔細(xì)檢查Agreements, Tax, and Banking
部分也是很好的:
如果您看到標(biāo)題為包含Paid Applications
行的Request Contracts
的部分,請單擊Request
按鈕。 填寫所有必要信息并提交。 您的申請可能需要一段時(shí)間才能獲得批準(zhǔn)。 只能等待!
否則,如果您看到Contracts In Effect
中列出的Paid Applications
,那么您似乎已經(jīng)完成了此步驟! 不錯(cuò)的工作!
注意:提交后,Apple可能需要數(shù)天才能批準(zhǔn)這些與IAP相關(guān)的協(xié)議。 在此期間,即使您在代碼中正確實(shí)現(xiàn)了所有內(nèi)容,也無法在應(yīng)用中顯示IAP產(chǎn)品。 對于首次實(shí)施應(yīng)用內(nèi)購買的人來說,這是令人沮喪的常見原因。只能等待!
Creating an App in iTunes Connect - 在iTunes Connect中創(chuàng)建一個(gè)App
現(xiàn)在要?jiǎng)?chuàng)建應(yīng)用程序記錄本身,單擊頁面左上角的App Store Connect
,然后單擊My Apps
。
接下來,單擊頁面左上角的+,然后選擇New App
以添加新的應(yīng)用程序記錄。 填寫如下所示的信息:
您將無法使用您在此處看到的完全相同的應(yīng)用程序Name
,因?yàn)閼?yīng)用程序名稱在App Store中必須是唯一的。 也許在上面屏幕截圖中顯示的示例標(biāo)題之后添加您自己的首字母。
注意:如果您快速完成此步驟,則可能未在下拉列表中顯示
Bundle ID
。 這有時(shí)需要一段時(shí)間才能通過Apple的系統(tǒng)認(rèn)證。
單擊Create
,您就完成了!
Creating In-App Purchase Products - 創(chuàng)建IAP產(chǎn)品
提供IAP時(shí),您必須首先在App Store Connect
中為每個(gè)單獨(dú)的購買添加條目。如果您曾在商店中列出待售的應(yīng)用程序,那么這是一個(gè)類似的過程,包括選擇購買的定價(jià)等級。當(dāng)用戶進(jìn)行購買時(shí),App Store處理向用戶收費(fèi)的復(fù)雜過程并回復(fù)有關(guān)此類操作的數(shù)據(jù)。
您可以添加一大堆不同類型的IAP:
- Consumable - 消耗品:這些可以多次購買,可以用完。這些非常適合額外的生活,游戲內(nèi)貨幣,臨時(shí)能量等。
-
Non-Consumable - 非消耗品:您購買一次的東西,并期望具有永久性,如額外的水平和可解鎖的內(nèi)容。本教程中的
RazeFace
插圖屬于此類別。 - Non-Renewing Subscription - 非續(xù)訂訂閱:在固定時(shí)間段內(nèi)可用的內(nèi)容。
- Auto-Renewing Subscription - 自動(dòng)續(xù)訂訂閱:重復(fù)訂閱的內(nèi)容,比如每一個(gè)月的期刊。
您只能為數(shù)字商品提供應(yīng)用內(nèi)購買,而不能為實(shí)體商品或服務(wù)提供應(yīng)用內(nèi)購買。有關(guān)所有這些的更多信息,請查看Apple關(guān)于Creating In-App Purchase Products的完整文檔。
現(xiàn)在,在App Store Connect
中查看應(yīng)用程序的條目時(shí),單擊Features
選項(xiàng)卡,然后選擇In-App Purchases
。要添加新的IAP產(chǎn)品,請單擊In-App Purchases
右側(cè)的+。
你將會(huì)看到下面的彈窗
當(dāng)用戶在您的應(yīng)用中購買RazeFace
時(shí),您會(huì)希望他們始終可以訪問它,因此請選擇Non-Consumable
,然后單擊Create
。
接下來,填寫IAP的詳細(xì)信息如下:
-
Reference Name - 參考名稱:標(biāo)識
iTunes Connect
中IAP的昵稱。 此名稱不會(huì)出現(xiàn)在應(yīng)用中的任何位置。 您將通過此次購買解鎖的RazeFace
的標(biāo)題是Swift Shopping
,因此請?jiān)诖颂庉斎搿?/li> -
Product ID - 產(chǎn)品ID:這是標(biāo)識IAP的唯一字符串。 通常最好從
Bundle ID
開始,然后附加一個(gè)特定于此可購買項(xiàng)目的唯一名稱。 對于本教程,請確保添加swiftshopping
,因?yàn)樯院髮⒃趹?yīng)用程序中使用它來查找RazeFace
以解鎖。 例如,您可以使用:com.theNameYouPickedEarlier.razefaces.swiftshopping
。 - Cleared for Sale - 清算待售:啟用或禁用IAP的銷售。
-
Price Tier - 價(jià)格層:IAP的價(jià)格成本。 選擇
Tier 1
。
現(xiàn)在向下滾動(dòng)到Localizations
部分,并注意英語(美國)有一個(gè)默認(rèn)條目。 為Display Name
和Description
輸入Swift Shopping
。 單擊Save
。 很好! 您已經(jīng)創(chuàng)建了第一個(gè)IAP產(chǎn)品。
注意:
App Store Connect
可能會(huì)報(bào)出您缺少IAP的元數(shù)據(jù)。 在您提交應(yīng)用以供審核之前,您需要在此頁面底部添加IAP的屏幕截圖。 該屏幕截圖僅用于Apple的審核review,不會(huì)出現(xiàn)在App Store列表中。
在深入研究一些代碼之前還需要一個(gè)步驟。 在應(yīng)用程序的開發(fā)版本中測試應(yīng)用程序內(nèi)購買時(shí),Apple提供了一個(gè)測試環(huán)境,允許您“購買”您的IAP產(chǎn)品,而無需創(chuàng)建財(cái)務(wù)交易。
這些特殊測試購買只能通過App Store Connect
中的特殊Sandbox Tester
用戶帳戶進(jìn)行。
Creating a Sandbox User - 創(chuàng)建沙盒賬戶
在App Store Connect
中,單擊窗口左上角的App Store Connect
以返回主菜單。 選擇Users and Roles
,然后單擊Sandbox Testers
選項(xiàng)卡。 單擊Tester
標(biāo)題旁邊的+。
填寫信息,完成后單擊Save
。 您可以為測試用戶編寫名字和姓氏,但必須使用真實(shí)的電子郵件地址,因?yàn)锳pple會(huì)向該地址發(fā)送驗(yàn)證電子郵件。 收到該電子郵件后,請務(wù)必點(diǎn)擊其中的鏈接以驗(yàn)證您的郵箱地址。
您輸入的電子郵件地址也不應(yīng)與Apple ID
帳戶相關(guān)聯(lián)。 提示:如果您有一個(gè)Gmail帳戶,您只需使用address alias,而不必創(chuàng)建一個(gè)全新的帳戶。
注意:不幸的是,測試新購買的
non-consumable
的IAP需要每次都有一個(gè)新的沙箱測試者(和電子郵件地址)。 使用相同沙盒測試器的重復(fù)購買將被視為恢復(fù)已購買的項(xiàng)目,因此不會(huì)執(zhí)行特定于新購買的任何代碼。
如果需要通過新的購買代碼進(jìn)行多次測試并且您的電子郵件提供商不支持
qualifiers
,那么請考慮設(shè)置可消耗的IAP僅用于測試目的。 每次測試后刪除設(shè)備上的應(yīng)用程序,購買消耗的IAP將被視為新購買。
您可以采用的一種策略是在測試成功案例之前盡可能多次測試失敗案例。 這樣你就需要?jiǎng)?chuàng)建更少的沙盒測試器。 一般情況下,請記住,一旦用戶(甚至是沙盒)購買了
non-consumable
的IAP,他就不能再次購買,只能恢復(fù)它。
太棒了 - 你現(xiàn)在有一個(gè)測試用戶。 您最終可以在您的應(yīng)用中實(shí)施IAP!
后記
本篇主要講述了一個(gè)詳細(xì)的內(nèi)購流程,感興趣的給個(gè)贊或者關(guān)注~~~