

iOS10のNotification Content
Extensionを利用してRichNotificationを作ろうとしているのですが、うまくいっていません。

アプリが非起動状態でRichNotificationのview部分をタップした時のみ、アプリが起動した瞬間にクラッシュします。  
アプリがフォアグラウンドやバックグラウンドにいる場合はview部分をタップしても問題なく動作します。

また、カスタムアクション付きの通知なのですが、カスタムアクションについては非起動状態でもフォアグラウンドでもバックグラウンドでも問題なく動作しています。

カスタムアクションが問題なく機能していること、フォアグラウンドやバックグラウンドにアプリがいる状態でviewをタップしても問題なく動いているところからdelegete等の実装漏れはではないと考えています。

ログを見てみると非起動状態からのviewタップ時のみNSInvalidArgumentExceptionで落ちていました。アプリ非起動時のviewタップのみ挙動が違うのでしょうか？  
解決方法をご存知の方はご教授いただけないでしょうか。

以下エラーログ

[code]

    User MyApp[57503]: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'unable to serialize userInfo: Error Domain=NSCocoaErrorDomain Code=3851 "Property list invalid for format: 200 (property lists cannot contain objects of type 'CFNull')" UserInfo={NSDebugDescription=Property list invalid for format: 200 (property lists cannot contain objects of type 'CFNull')}'
    *** First throw call stack:
    (
        0   CoreFoundation                      0x000000010dd9d34b __exceptionPreprocess + 171
        1   libobjc.A.dylib                     0x000000010d7fe21e objc_exception_throw + 48
        2   UIKit                               0x000000010b8eb252 -[UIConcreteLocalNotification userInfo] + 0
        3   UIKit                               0x000000010b56ef2e _UNNotificationRequestToUILocalNotification + 1540
        4   UIKit                               0x000000010b56e8c6 UNNotificationToUILocalNotification_block_invoke_2 + 74
        5   UIKit                               0x000000010b1b8961 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 2522
        6   UIKit                               0x000000010b1bf3b9 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1731
        7   UIKit                               0x000000010b1bc539 -[UIApplication workspaceDidEndTransaction:] + 188
        8   FrontBoardServices                  0x00000001107ba76b __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24
        9   FrontBoardServices                  0x00000001107ba5e4 -[FBSSerialQueue _performNext] + 189
        10  FrontBoardServices                  0x00000001107ba96d -[FBSSerialQueue _performNextFromRunLoopSource] + 45
        11  CoreFoundation                      0x000000010dd42311 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
        12  CoreFoundation                      0x000000010dd2759c __CFRunLoopDoSources0 + 556
        13  CoreFoundation                      0x000000010dd26a86 __CFRunLoopRun + 918
        14  CoreFoundation                      0x000000010dd26494 CFRunLoopRunSpecific + 420
        15  UIKit                               0x000000010b1badb6 -[UIApplication _run] + 434
        16  UIKit                               0x000000010b1c0f34 UIApplicationMain + 159
        17  MyApp                               0x00000001066a398f main + 111
        18  libdyld.dylib                       0x000000010eb8e68d start + 1
        19  ???                                 0x0000000000000001 0x0 + 1
    )
    
[/code]


CC BY-SA 3.0
2016-10-20T13:39:14.207
29742
2016-12-06T05:12:24.310
19247
question
ios objective-c notification ios-app-extension
Notification Content Extendionのviewをタップするとアプリがクラッシュする


自己解決しました。

UserNotificationのuserInfoの中にNullを含んだデータがあると発生するようです。  
関係ないデータ部分にNullが入っていたのでnilに変換したら動くようになりました。


CC BY-SA 3.0
2016-10-24T03:32:38.520
29853
2016-10-24T03:32:38.520
19293
29742
answer