Hoe verwijder ik advertenties met in-app-aankopen?

Ik heb problemen om erachter te komen waarom mijn iAd niet wordt verwijderd na een aankoop.

Dit is wat ik probeer in het bestand met de iAd:

#define kInAppPurchaseUpgradeProductId @"kInAppPurchaseUpgradeProductId"

NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
BOOL adsAreOff = [defaults boolForKey:kInAppPurchaseUpgradeProductId];

if (!adsAreOff)
{
    adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
    adView.frame = CGRectOffset(adView.frame, 0, -50);
    adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
    adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
    CGRect adFrame = adView.frame;
    adFrame.origin.y = self.view.frame.size.height-adView.frame.size.height;
    adView.frame = adFrame;
    adView.backgroundColor = [UIColor clearColor];
    [self.view addSubview:adView];
    adView.delegate=self;
    self.bannerIsVisible=NO;
}
else 
{
    [adView removeFromSuperview];
}

Dit is wat ik probeer in mijn in-app-aankoopcode:

-(void)purchaseUpgrade
{
    SKPayment * payment = [SKPayment paymentWithProductIdentifier:kInAppPurchaseUpgradeProductId];
    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
    [[SKPaymentQueue defaultQueue] addPayment:payment];
}

-(IBAction)purchaseButtonTapped
{
    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:adView forKey:kInAppPurchaseUpgradeProductId];

   //I tried this first, didn't work
    //[defaults setBool:TRUE forKey:kInAppPurchaseUpgradeProductId];

    [defaults synchronize];

    [self purchaseUpgrade];
}

Wordt dit op de juiste plaats afgehandeld of moet het in de methode paymentQueue staan?

0

1 antwoord

Zorg ervoor dat u uw NSUserDefaults synchroniseert wanneer u de sleutel instelt nadat de toepassing is gekocht:

// After a purchase is made:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:SOMETHING forKey:kInAppPurchaseUpgradeProductId]
[defaults synchronize];
1
toegevoegd
Ik heb mijn code aangepast met uw suggesties (heel erg bedankt). Nu in het testen krijg ik "Kan geen verbinding maken met de iTunes Store". Ik zie dit: {"status": 21000} op de sandbox verifyReceipt-site. Heeft u of iemand dit eerder gezien?
toegevoegd de auteur Luke Irvin, de bron
Ik weet het niet zeker; probeer een nieuwe SO-vraag te maken gericht op het nieuwe probleem.
toegevoegd de auteur mopsled, de bron
@suhas NSUserDefaults blijven bestaan ​​gedurende de hele levensduur van de app, maar gaan verloren bij het ongedaan maken van de installatie.
toegevoegd de auteur mopsled, de bron
als u de app verwijdert en opnieuw installeert, wat gebeurt er dan?
toegevoegd de auteur user1030800, de bron