2012-06-07 28 views
1

我的應用程序已被批准並準備在今天的appstore中銷售。我立即從appstore下載它,但是當我打開我的應用程序時,我的應用程序中沒有廣告。我什麼都不懂。NSUserDefaults boolForKey在真實手機上的奇怪行爲

在我的代碼中,如果用戶購買inapp項目,我將userdefault的值設置爲TRUE。

因此,當應用程序啓動我檢查此userdefaults。如果它是TRUE,我不會顯示任何廣告,如果沒有,我打電話給廣告api。

這是應用程式內購買的部分地區:

if ([productId isEqualToString:@"dontshowads"]) 
    { 
      //user bought inapp item. so I must remove advertorials. 

      [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"aldimi_lite_reklamikaldirma_099"]; 
      [[NSUserDefaults standardUserDefaults] synchronize]; 
    } 

,這是viewWillAppear中區:

BOOL appin_reklamkaldirmaalindimi = [[NSUserDefaults standardUserDefaults] boolForKey:@"aldimi_lite_reklamikaldirma_099"]; 

    NSLog(@"appin_reklamkaldirmaalindimi :%d",appin_reklamkaldirmaalindimi); 

    if (!appin_reklamkaldirmaalindimi) 
    { 
     NSLog(@"showing ads"); 
    } 
    else { 
     NSLog(@"no ads. user bought inapp item"); 
    } 

當我運行我在模擬器應用程序的一切是罰款。 (我第一次在模擬器中刪除並重新構建它)

控制檯給出了這樣的記錄:

appin_reklamkaldirmaalindimi : 0 
    showing ads 

當我在真正的手機上運行的一切我的應用程序是罰款也。 (我在電話先刪除並重新構建它)

控制檯給出了這樣的記錄:

appin_reklamkaldirmaalindimi : 0 
    showing ads 

但是當我運行我的應用程序是從AppStore的下載一切是不同的。

控制檯給出了這樣的記錄:

appin_reklamkaldirmaalindimi : 0 
    no ads. user bought inapp item 

我試圖下載,並檢查在我的朋友的電話的情況。一切都是一樣的。所以這不是關於我的手機。

怎麼可能?我想了一個小時,我無法找到任何解釋這種情況...

+1

你嘗試刪除,然後再次安裝應用程序? – shabbirv

+0

是的,我試了5次。 – woheras

+0

@shabzco希望有正確的答案 - 您的設備持有您的測試默認設置,因此它認爲您不應該展示廣告。你知道有誰下載過它嗎? – jrturton

回答

1

這種奇怪的現象的唯一解釋是,您提交給App Store的代碼在某種程度上損壞或不同於代碼您通過構建您的計算機進行測試。解決這個問題的唯一方法是重新提交你的應用程序到App Store。

我能想到的唯一的另一種可能性是,您的應用程序有一些非常差和不正確的內存訪問傾向,這樣在運行您的廣告邏輯之前,部分可執行代碼或堆棧會以某種方式被覆蓋。

+0

我重新提交了我的應用程序到商店,問題消失了。謝謝大家。 – woheras