swift 如何使用 Chartboost 分析?

How to use Chartboost Analytics with swift?

我已经通过 headers 导入了 Chartboost,但无法从 Chartboost.framework 获取 CBAnalytics 以调用 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-via-SDK#ios

我有一个 pre-existing Obj-C 项目,所以我 jury-rigged 它在 Swift.

中显示这个调用

这是我需要添加到项目的 Bridging-Header.h 文件中的 SDK header 导入:

#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) 后才打了那个电话。因此,"transaction" 是 SKPaymentTransaction object,而 "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 自 iOS 7 起已弃用,这是以后推荐使用的方法:

//Obj-C
NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];