菜鸟教程小白 发表于 2022-12-13 14:18:27

ios - 收到 Voip Push 后崩溃


                                            <p><p>在测试 Voip Pushes 时遇到了这个错误</p>

<pre><code>2016-10-19 14:03:26.809 linphone Can&#39;t endBackgroundTask: no background task exists with identifier c6, or it may have already been ended. Break in UIApplicationEndBackgroundTaskError() to debug.
Oct 19 14:03:26linphone &lt;Notice&gt;: ios/(honeAppDelegate.m:492 ) PushKit received with payload : &lt;PKPushPayload: 0x14ee5b30&gt;
Oct 19 14:03:26linphone &lt;Notice&gt;: ios/(honeAppDelegate.m:494 ) incoming voip notfication: {
      aps =   {
            alert = Testando;
      };
    }
2016-10-19 14:03:26.818 linphone -: unrecognized selector sent to instance 0x18e5c760
2016-10-19 14:03:26.821 linphone Crash: -: unrecognized selector sent to instance 0x18e5c760
2016-10-19 14:03:26.902 linphone Stack Trace: (
    0   CoreFoundation                      0x24bff933 &lt;redacted&gt; + 150
    1   libobjc.A.dylib                     0x2439ae17 objc_exception_throw + 38
    2   CoreFoundation                      0x24c052b5 &lt;redacted&gt; + 0
    3   CoreFoundation                      0x24c02ee1 &lt;redacted&gt; + 700
    4   CoreFoundation                      0x24b2e238 _CF_forwarding_prep_0 + 24
    5   linphone                            0x0002ee2f - + 214
    6   linphone                            0x00030f15 __78-_block_invoke_2 + 96
    7   libdispatch.dylib                   0x012ddb7f _dispatch_call_block_and_release + 10
    8   libdispatch.dylib                   0x012ddb6b _dispatch_client_callout + 22
    9   libdispatch.dylib                   0x012e2655 _dispatch_main_queue_callback_4CF + 1680
    10CoreFoundation                      0x24bc1b6d &lt;redacted&gt; + 8
    11CoreFoundation                      0x24bc0067 &lt;redacted&gt; + 1574
    12CoreFoundation                      0x24b0f229 CFRunLoopRunSpecific + 520
    13CoreFoundation                      0x24b0f015 CFRunLoopRunInMode + 108
    14GraphicsServices                  0x260ffac9 GSEventRunModal + 160
    15UIKit                               0x291e3189 UIApplicationMain + 144
    16linphone                            0x0002b949 main + 124
    17libdyld.dylib                     0x247b7873 &lt;redacted&gt; + 2
)
2016-10-19 14:03:26.907 linphone *** Terminating app due to uncaught exception &#39;NSInvalidArgumentException&#39;, reason: &#39;-: unrecognized selector sent to instance 0x18e5c760&#39;
*** First throw call stack:
(0x24bff91b 0x2439ae17 0x24c052b5 0x24c02ee1 0x24b2e238 0x2ee2f 0x30f15 0x12ddb7f 0x12ddb6b 0x12e2655 0x24bc1b6d 0x24bc0067 0x24b0f229 0x24b0f015 0x260ffac9 0x291e3189 0x2b949 0x247b7873)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
</code></pre>

<p>这是应用程序崩溃时 XCode 指向我的代码。</p>

<pre><code>- (void)processRemoteNotification:(NSDictionary *)userInfo {

    NSDictionary *aps = ;

    if (aps != nil) {
      NSDictionary *alert = ;
      if (alert != nil) {
            NSString *loc_key = ;
            /* if we receive a remote notification, it is probably because our TCP background socket was no more working.
             As a result, break it and refresh registers in order to make sure to receive incoming INVITE or MESSAGE*/
            if (linphone_core_get_calls(LC) == NULL) { // if there are calls, obviously our TCP socket shall be working
                //linphone_core_set_network_reachable(LC, FALSE);
                if (!linphone_core_is_network_reachable(LC)) {
                  LinphoneManager.instance.connectivity = none; //Force connectivity to be discovered again
                  ;
                }
                if (loc_key != nil) {

                  NSString *callId = ;
                  if (callId != nil) {
                        ;
                  } else {
                        LOGE(@&#34;PushNotification: does not have call-id yet, fix it !&#34;);
                  }

                  if () {
                        ;
                  }
                }
            }
      }
    }
    LOGI(@&#34;Notification %@ processed&#34;, userInfo.description);
}
</code></pre>

<p>如您所见,我确实收到了推送通知,但仅在日志中,它不会在我的手机上弹出并且应用程序崩溃。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您正在访问“alert”字典中键“loc-key”的值,而有效负载“alert”字典中没有此键的值,因此它在 <code>NSString *loc_key = 处崩溃;
</code></p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 收到 Voip Push 后崩溃,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/40136653/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/40136653/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 收到 Voip Push 后崩溃