簡體   English   中英

SKProductsRequest在啟動時使用iOS 7.0.3崩潰應用程序

[英]SKProductsRequest crashing app at startup with iOS 7.0.3

我們的應用程序崩潰的報告在昨晚開始泛濫。 許多升級到7.0.3的用戶在啟動時崩潰了應用程序。 分析itunes崩潰日志是因為應用程序因啟動時間太長而被殺死。 顯然,檢查可用的應用內購買的電話是導致崩潰的原因。 我們從銷售中移除了所有應用內購買,現在用戶報告該應用現在正在運行。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

// earlier stuff...
    [self requestProductData]; // ask for in-app purchase localized prices/names
    [[SKPaymentQueue defaultQueue] addTransactionObserver:self]; // process any   pending transactions

// more stuff...
}

- (void) requestProductData
{
    NSMutableSet * prodSet = [[[NSMutableSet alloc] initWithCapacity:10] autorelease];

    StoreItem * curStoreItem;
    for(int j=0; j<[storeArr count]; j++) {
        curStoreItem = [storeArr objectAtIndex:j];
        [prodSet addObject:curStoreItem.productID];
    }


    SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:prodSet];
    request.delegate = self;
    [request start];
}

在didFinishLaunchingWithOptions中,我們進行調用以請求產品數據。 我們需要在另一個線程中執行此操作嗎? 還有誰有相同的問題嗎?

我們以兩種方式解決了這個問題,解決了即時實時應用程序崩潰問題,然后實際解決了觸發它的編碼錯誤。

iOS 7.0.3更新增加了對返回應用內商品數據的蘋果服務器調用的延遲。 由於我們正在從didFinishLaunching進行產品請求調用,我們的應用程序因為沒有足夠快地啟動而被殺死。

為了解決實時應用崩潰問題,我們暫時刪除了應用內購買應用的所有應用。 與此同時,我們將產品數據請求移至呈現應用內店面之前 - 正如maddy所建議的那樣正確的程序化解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM