iOS監査拒否理由記録(TESTFLIGHTテストフラッシュバック)

2304 ワード

エラーメッセージ


We were unable to review your app as it crashed on launch. We have attached detailed crash logs to help troubleshoot this issue. Next Steps To resolve this issue, please revise your too and test it on a device to ensure it will launch without crashing.

突破口を見つける


半日テストし、最後にTESTFILGHTを使用して事前にバージョンをテストします.最終的に問題を発見し、TESTFLIGHTでアプリを開いたときに直接フラッシュバックした.

原因を分析する

– (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;

アプリケーションが起動すると、アプリケーションはエントリを起動します.アプリケーションの起動時にのみ実行されます.アプリケーションパラメータは、アプリケーションの状態、変数などを取得するために用いるものであり、辞書パラメータ:(NSDictionary*)launchOptions、このパラメータは、プログラムが起動する理由を記憶する.
  • ユーザーが直接起動すると、lauchOptions内にデータがありません.
  • 他のアプリケーションによってopenURL:を介して起動されると、UIA p p p r i c a tionLaunchOptionsURLKeyに対応するオブジェクトが起動URL(NSURL)、UIA p p r i c a tionLaunchOptionsSourceApplicationKeyに対応して起動されるソースアプリケーションのbundle ID(NSString)となる.
  • ローカル通知によって起動されると、U i a m i p l i c a t i o n L a u n c h O p t ionsLocalNotificationKeyは、アプリケーションを起動するためのローカル通知オブジェクト(UILocalNotification)に対応する.
  • リモート通知によって起動されると、U i a m i p l i c a t i o n L a u n c h O p t i o n s RemoteNotificationKeyは、アプリケーションを起動するリモート通知情報userInfo(NSDictionary)に対応する.
  • 他のキーとしては、U i A p p r i c a tionLaunchOptionsAnnotationKey、U i A p p p r i c a tionLaunchOptionsLocationKey、U I A p p r i c a tionLaunchOptionsNewsstandDownloadsKeyがある.起動時に区別するには、次のコードで処理する必要があります.たとえば、アプリケーションは他のアプリケーションから呼び出され(アプリケーションのサブアプリケーションとして)、単一のログインを実現するには、コードを起動する場所で合理的な検証を行い、ログインをスキップする必要があります.
  • -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        NSURL *url = [options objectForKey:UIApplicationLaunchOptionsURLKey];
        if(url){
        }
        NSString *bundleId = [options objectForKey:UIApplicationLaunchOptionsSourceApplicationKey];
        if(bundleId){
        }
        UILocalNotification * localNotify = [options objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
        if(localNotify){
        }
        NSDictionary * userInfo = [options objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
        if(userInfo){
        }
    }
    

    理由:サードパーティでアプリを開くと、アプリケーションはOPENURL:didFinishLaunchingWithOptionsメソッドを起動します.