Ios <;应用内购买>;如何直接生成产品
最近我在做Ios <;应用内购买>;如何直接生成产品,ios,in-app-purchase,app-store-connect,Ios,In App Purchase,App Store Connect,最近我在做IAP。 如您所知,当您想要发送付款请求时,您应该致电 + (id)paymentWithProduct:(SKProduct *)product 但我发现获取产品的唯一方法是使用SKProductsRequest,有没有直接生成SKProduct的方法? 就像不推荐的一样 + (id)paymentWithProductIdentifier:(NSString *)identifier 事实上,我想要一个新的SKProduct对象,直接使用产品id BR,罗杰没有这样的机制。您必
IAP
。
如您所知,当您想要发送付款请求时,您应该致电
+ (id)paymentWithProduct:(SKProduct *)product
但我发现获取产品的唯一方法是使用SKProductsRequest
,有没有直接生成SKProduct
的方法?
就像不推荐的一样
+ (id)paymentWithProductIdentifier:(NSString *)identifier
事实上,我想要一个新的SKProduct
对象,直接使用产品id
BR,罗杰没有这样的机制。您必须获得苹果公司批准的应用程序内购买,并使用SKProductsRequest API检索定价信息。我使用此功能购买产品,而无需从iTunes获取所有产品:
- (void)buyProductIdentifier:(NSString *)productIdentifier
{
SKMutablePayment *payment = [[SKMutablePayment alloc] init] ;
payment.productIdentifier = productIdentifier;
[[SKPaymentQueue defaultQueue] addPayment:payment];
}
如果您想要创建一个用于单元测试的
SKProduct
,您可以扩展该类并设置标识符:
extension SKProduct {
convenience init(identifier: String, price: String, priceLocale: Locale) {
self.init()
self.setValue(identifier, forKey: "productIdentifier")
self.setValue(NSDecimalNumber(string: price), forKey: "price")
self.setValue(priceLocale, forKey: "priceLocale")
}
}
您可以创建
SKMutablePayment
而不是SKPayment
:
let payment=SKMutablePayment()
payment.productIdentifier=
SKPaymentQueue.default().add(付款)
如果可能的话,您就不需要在ITunesConnect中插入新产品,苹果也无法跟踪销售的产品。也许你可以将答案标记为正确,因为没有其他方法可以做到这一点——一种不符合苹果建议的黑客方式。