iOS上的RevMob全屏广告崩溃

iOS上的RevMob全屏广告崩溃,ios,cocos2d-iphone,revmob,Ios,Cocos2d Iphone,Revmob,如果我点击一个全屏广告,并在广告打开Safari或AppStore之前关闭它,应用程序会崩溃,错误如下: [RevMob] Initializing Fullscreen. [RevMob] Ad received: (200). [RevMob] Fullscreen clicked. [RevMob] Loading iTunes url. [RevMob] Fullscreen closed. [RevMob] Opening iTunes. ***** Terminating app

如果我点击一个全屏广告,并在广告打开Safari或AppStore之前关闭它,应用程序会崩溃,错误如下:

[RevMob] Initializing Fullscreen.
[RevMob] Ad received: (200).
[RevMob] Fullscreen clicked.
[RevMob] Loading iTunes url.
[RevMob] Fullscreen closed.
[RevMob] Opening iTunes.
 ***** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'**
如果有一个加载屏幕阻止用户交互,而RevMob采取的是不会发生的行动的时间。。。我试图用一个加载屏幕来覆盖广告,但我没能做到。。。有什么解决办法吗

--

我有2个IVAR来控制revMob:

RevMobFullscreen* _revMobFullScreen;
BOOL _revMobFullScreenLoaded;
- (void)cacheFullScreenRevMob{

    //Get rid of old fullscreen ad and create a new one
    //This is need in order to (re)load an fullscreen ad
    [_revMobFullScreen release], _revMobFullScreen = nil;
    _revMobFullScreen = [[RevMobAds session] fullscreen];
    [_revMobFullScreen retain];

    //Pre load the ad for the next time

    _revMobFullScreenLoaded = NO;

    [_revMobFullScreen loadWithSuccessHandler:^(RevMobFullscreen *fs) {
        _revMobFullScreenLoaded = YES;

    } andLoadFailHandler:^(RevMobFullscreen *fs, NSError *error) {
        _revMobFullScreenLoaded = NO;

    } onClickHandler:nil onCloseHandler:^{
        [self postNotificationOnMainThreadFullAdDidFinish];
    }];
}
- (BOOL)showFullScreenRevMob{

    BOOL didShow = NO;
    if (_revMobFullScreenLoaded) {
        [_revMobFullScreen showAd];
        didShow = YES;
    }

    //Cache for the next time
    [self cacheFullScreenRevMob];

    return didShow;
}
我正在以这种方式预加载全屏广告:

RevMobFullscreen* _revMobFullScreen;
BOOL _revMobFullScreenLoaded;
- (void)cacheFullScreenRevMob{

    //Get rid of old fullscreen ad and create a new one
    //This is need in order to (re)load an fullscreen ad
    [_revMobFullScreen release], _revMobFullScreen = nil;
    _revMobFullScreen = [[RevMobAds session] fullscreen];
    [_revMobFullScreen retain];

    //Pre load the ad for the next time

    _revMobFullScreenLoaded = NO;

    [_revMobFullScreen loadWithSuccessHandler:^(RevMobFullscreen *fs) {
        _revMobFullScreenLoaded = YES;

    } andLoadFailHandler:^(RevMobFullscreen *fs, NSError *error) {
        _revMobFullScreenLoaded = NO;

    } onClickHandler:nil onCloseHandler:^{
        [self postNotificationOnMainThreadFullAdDidFinish];
    }];
}
- (BOOL)showFullScreenRevMob{

    BOOL didShow = NO;
    if (_revMobFullScreenLoaded) {
        [_revMobFullScreen showAd];
        didShow = YES;
    }

    //Cache for the next time
    [self cacheFullScreenRevMob];

    return didShow;
}
然后,这就是我显示全屏revmob广告的方式:

RevMobFullscreen* _revMobFullScreen;
BOOL _revMobFullScreenLoaded;
- (void)cacheFullScreenRevMob{

    //Get rid of old fullscreen ad and create a new one
    //This is need in order to (re)load an fullscreen ad
    [_revMobFullScreen release], _revMobFullScreen = nil;
    _revMobFullScreen = [[RevMobAds session] fullscreen];
    [_revMobFullScreen retain];

    //Pre load the ad for the next time

    _revMobFullScreenLoaded = NO;

    [_revMobFullScreen loadWithSuccessHandler:^(RevMobFullscreen *fs) {
        _revMobFullScreenLoaded = YES;

    } andLoadFailHandler:^(RevMobFullscreen *fs, NSError *error) {
        _revMobFullScreenLoaded = NO;

    } onClickHandler:nil onCloseHandler:^{
        [self postNotificationOnMainThreadFullAdDidFinish];
    }];
}
- (BOOL)showFullScreenRevMob{

    BOOL didShow = NO;
    if (_revMobFullScreenLoaded) {
        [_revMobFullScreen showAd];
        didShow = YES;
    }

    //Cache for the next time
    [self cacheFullScreenRevMob];

    return didShow;
}

编辑:由于@João的评论是在5.6.2版上修复的错误

请再看看这个问题,我编辑了它,添加了一些代码。是的,我保留了全屏广告。@diogot他们昨天刚修好!5.6.2版工作正常。如果尝试打开广告URL时出现超时,应用程序也会崩溃。这是5.6.1版上的一个错误。RevMob刚刚发布了5.6.2版的修复程序