2016-11-16 28 views
1

我嘗試在Swift 3中爲我的精靈套件遊戲實現應用內購買功能,並帶有幾個永久物品。所有內容都是在iTunes Connect上創建的,軟件包名稱已設置,並且我的4個項目在iTunes Connect中正確聲明。問題是關於Xcode中的代碼。我使用Raywenderlich.com這裏的教程:Swift 3:在有幾件商品的應用購買功能中

https://www.raywenderlich.com/122144/in-app-purchase-tutorial

本教程只是一個項目做,但怎麼樣,如果我們需要更多的項目? (在我的情況下是4)。我嘗試2天修改代碼以管理多個單個項目,但沒有任何成功。我已經修改了結構RageProducts用下面的代碼:

import Foundation 

public struct RageProducts { 

public static let GirlfriendOfDrummerRage = "com.creaworks.FurryLight_Puzzles.Guitarist" 



fileprivate static let productIdentifiers: Set<ProductIdentifier> = [RageProducts.GirlfriendOfDrummerRage] 

// Initial declaration for one item 
// public static let store = IAPHelper(productIds: RageProducts.productIdentifiers) 
} 

//New declaration for 4 items 
public static let store = IAPHelper(productIds: Set(
[ 
    GreenGrocerPurchase.AdRemoval, 
    GreenGrocerPurchase.NewShoppingLists_One, 
    GreenGrocerPurchase.NewShoppingLists_Five, 
    GreenGrocerPurchase.NewShoppingLists_Ten 
    ].map { $0.productId } 
)) 

func resourceNameForProductIdentifier(_ productIdentifier: String) -> String? { 
return productIdentifier.components(separatedBy: ".").last 
} 

當我測試的代碼,編譯器返回任何錯誤,但我看到了我的購買清單(而不是一個沒有項目時我啓動舊項目申報)。我錯過了什麼?

是否有一個最簡單的3個代碼示例來聲明應用程序購買中的幾個項目?我在網上找不到任何東西。我使用spritekit,因此,我不需要tableview組件或UIView按鈕,這對於剛開始使用應用程序購買功能時有點混淆。

回答

2

請確保您添加額外的標識符,與此類似:

public static let GirlfriendOfDrummerRage = "com.creaworks.FurryLight_Puzzles.Guitarist" 

然後將它們添加到Set<ProductIdentifier>

這裏有2種產品的例子:

public struct Products { 

    public static let One = "com.creaworks.FurryLight_Puzzles.Guitarist" 
    public static let Two = "com.creaworks.FurryLight_Puzzles.GuitaristTWO" 

    fileprivate static let productIndentifiers: Set<ProductIdentifier> = [Products.One, Products.Two] 

    func resourceNameForProductIdentifier(_ productIdentifier: String) -> String? { 
     return productIdentifier.components(separatedBy: ".").last 
    } 
} 
+0

感謝您的幫助,我需要幾個IAPHelper實例或者我可以管理只用一個實例(存儲可變)幾個項目? – PGibouin

+0

同一個。確保你使用正確的'struct'名字 – Idan

+1

太好了,它工作正常,我可以在我的列表中看到我的四個項目!如果我們只知道spritekit,那麼應用內購買並不容易編碼! – PGibouin

相關問題