Интеграция Chartboost iOS SDK в cocos2d-x 3

Я выполнил все шаги в соответствии с документацией Chartboost, чтобы интегрировать iOS SDK в свое приложение. Но на последнем этапе вызова Chartboost у меня ошибка компиляции:

- (void)applicationDidBecomeActive:(UIApplication *)application {


    // Begin a user session. Must not be dependent on user actions or any prior network requests.
    // Must be called every time your app becomes active.
    [Chartboost startWithAppId:@"some_id" appSignature:@"some_signature" delegate:self];

    // Show an ad at location "CBLocationHomeScreen"
    [[Chartboost sharedChartboost] showInterstitial:CBLocationHomeScreen];

При вызове метода startWithAppId я получаю следующую ошибку:

......../proj.ios_mac/ios/AppController.mm:101:126: Cannot initialize a parameter of type 'id<ChartboostDelegate>' with an lvalue of type 'AppController *'


person Narek    schedule 21.07.2014    source источник
comment
Определение интерфейса AppController не включает протокол Chartboostdelegate.   -  person LearnCocos2D    schedule 22.07.2014
comment
Я сделал это: @interface AppController : NSObject <UIApplicationDelegate, ChartboostDelegate> { это сработало. Спасибо!   -  person Narek    schedule 22.07.2014
comment
ваш второй метод не работает, потому что вы смешиваете методы 5.x и более ранних версий Chartboost iOS SDK   -  person Victor Perov    schedule 06.10.2014


Ответы (2)


Вместо,

попробуйте использовать этот код

Chartboost *cb = [Chartboost sharedChartboost];

cb.appId = @"some_id";
cb.appSignature = @"some_sig";

[cb startSession];

[cb showInterstitial];
person LouieJe    schedule 12.08.2014
comment
Как видите, автор использует версию Chartboost 5.x, поэтому ваш код бесполезен. - person Victor Perov; 06.10.2014

Вот обновленный ответ для всех, кто может столкнуться с этой темой. Проверено на работоспособность 16 февраля 2015 г. для Chartboost Версия 5.1.3

В файле appController.mm добавьте следующие импорты:

#import <Chartboost/Chartboost.h>
#import <Chartboost/CBNewsfeed.h>
#import <CommonCrypto/CommonDigest.h>
#import <AdSupport/AdSupport.h>

Затем добавьте следующий интерфейс:

@interface AppController () <ChartboostDelegate>
@end

Наконец, в вашем методе applicationDidBecomeActive добавьте:

- (void)applicationDidBecomeActive:(UIApplication *)application 
{
    [Chartboost startWithAppId:@"appID" appSignature:@"appSIG" delegate:self];
    [Chartboost showInterstitial:CBLocationHomeScreen];
    //[Chartboost showInterstitial:@"CBLocationHomeScreen"]; //older way
}
person Community    schedule 16.02.2015