У меня был уже существующий проект Obj-C, так что жюри сфальсифицированы его, чтобы показать этот вызов в Swift.
Вот импорт заголовка SDK Мне нужно добавить в Bridging-Header.h
файл моего проекта:
#import <Chartboost/CBAnalytics.h>
Вот мой фактический Swift вызов:
//Swift
@objc func makeChartboostPIACall(myReceipt:NSData, myProduct:SKProduct) {
CBAnalytics.trackInAppPurchaseEvent(myReceipt, product: myProduct)
}
Это должно быть так просто, но вот немного больше подробно о том, где эти значения, которые я проходил, исходят от:
В моем случае я передавал значения из моего кода Obj-C:
//Obj-C
[mySwiftInstance makeChartboostPIACall:transaction.transactionReceipt myProduct:myProduct];
Я сделал этот звонок после того, как только что подтвердил, что платежная операция была успешно завершена (SKPaymentTransactionStatePurchased
). Таким образом, «транзакция» представляет собой объект SKPaymentTransaction
, а «myProduct» соответствует SKProduct
того, что только что было куплено.
https://developer.apple.com/library/ios/documentation/StoreKit/Reference/SKPaymentTransaction_Class/index.html#//apple_ref/occ/instp/SKPaymentTransaction/transactionReceipt https://developer.apple.com/library/ios/documentation/StoreKit/Reference/SKProduct_Reference/index.html
Стоит отметить, что transaction.transactionReceipt
является устаревшим прошивкой 7, и это рекомендуемый метод, чтобы использовать в будущем:
//Obj-C
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
Стоит также отметить, что, если это не работая, как ожидалось, может быть что-то конкретное в отношении интеграции, которую вы используете, это неожиданно. Если да, можете ли вы отправить электронное письмо по адресу [email protected] с подробной информацией? Мы с удовольствием рассмотрим это подробно, а затем вернемся сюда, чтобы обновить ответ. – Kairon