1

以下のSKProductコードを使用した迅速なアプリがあります

func validateProductIdentifiers() {

        let identifiers:NSSet = NSSet(array: kProductIdentifiers)
        let productRequest = SKProductsRequest(productIdentifiers: identifiers)
        productRequest.delegate = self
        productRequest.start()
    }

    func productsRequest(request: SKProductsRequest!, didReceiveResponse response: SKProductsResponse!) {

        let product:SKProduct = response.products[0] as SKProduct

        homeView!.stopActivityAnimating()
        loadBulletBuy()
        bulletBuy!.loadBuyData(response)


    }

私はこのアプリが自分のデバイスであることを 1 か月近くテストしてきましたが、このメソッドの呼び出し中にアプリが失敗したりクラッシュしたりすることはありませんでした。

これで私のアプリはライブになり、上記の方法でアプリがクラッシュすることがわかりました。デバイスからのクラッシュ ログ

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   FrontLine                       0x000000010016654c @objc FrontLine.GameViewController.productsRequest (FrontLine.GameViewController)(ObjectiveC.SKProductsRequest!, didReceiveResponse : ObjectiveC.SKProductsResponse!) -> () (GameViewController.swift:0)
1   StoreKit                        0x0000000186638dac __34-[SKProductsRequest _handleReply:]_block_invoke + 540
2   libdispatch.dylib               0x0000000192cb53a8 _dispatch_call_block_and_release + 20
3   libdispatch.dylib               0x0000000192cb5368 _dispatch_client_callout + 12
4   libdispatch.dylib               0x0000000192cb997c _dispatch_main_queue_callback_4CF + 928
5   CoreFoundation                  0x0000000181eddfa0 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
6   CoreFoundation                  0x0000000181edc048 __CFRunLoopRun + 1488
7   CoreFoundation                  0x0000000181e090a0 CFRunLoopRunSpecific + 392
8   GraphicsServices                0x000000018afa35a0 GSEventRunModal + 164
9   UIKit                           0x000000018673aaa0 UIApplicationMain + 1484
10  FrontLine                       0x0000000100189640 main (AppDelegate.swift:0)
11  libdyld.dylib                   0x0000000192cdea04 start + 0

いくつかの検索を行ったところ、デリゲートの割り当て解除が原因である可能性があり、私の場合は VC が原因であることがわかりました。現在、新しいソリューションを試しています。

しかし、テスト実行でアプリがクラッシュせず、本番環境だけでクラッシュする理由を理解できません。

アプリの開発バージョンをインストールしようとしましたが、アプリ ストア バージョンをインストールしたかのようにアプリがスムーズに動作し、クラッシュします。

このような失敗を防ぐ方法についての洞察は役に立ちます

ありがとう

4

1 に答える 1