Как использовать Chartboost Analytics со Swift?

Я импортировал Chartboost через заголовки и не могу получить CBAnalytics из Chartboost.framework для вызова следующей функции в Swift.

+ (void) trackInAppPurchaseEvent:(NSData *)transactionReceipt 
                         product:(SKProduct *)product;

Я следовал этим инструкциям https://answers.chartboost.com/hc/en-us/articles/205606995 https://answers.chartboost.com/hc/en-us/articles/204639335-Post-Install-Analytics-Event-Level-Tracking-через-SDK#ios


person Yurii Kyparus    schedule 16.08.2016    source источник


Ответы (1)


У меня был уже существующий проект 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 объект, а «мойПродукт» — это соответствие 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 устарел с iOS 7, и это рекомендуемый метод для использования в будущем:

//Obj-C
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
person Kairon    schedule 19.08.2016
comment
Также стоит отметить, что если это не работает должным образом, в используемой вами интеграции может быть что-то неожиданное. Если да, не могли бы вы написать по адресу [email protected] дополнительную информацию? Мы будем рады подробно изучить это, а затем вернуться сюда, чтобы обновить ответ. - person Kairon; 20.08.2016