2017-01-05 1 views
1

Ich habe einen Absturz in einer Xamarin App, die die Twilio Client Component verwendet. Ich verwende den "Getting Started" -Code, um eine einfache App zu erstellen, die einen Anruf auslöst, wenn ich auf eine Schaltfläche klicke. Aus dem Crash-Log sehe ich im Call-Stack einen Verweis auf "CRASHING_DUE_TO_PRIVACY_VIOLATION". Ich weiß nicht, was das sein könnte, da ich "Audio und Airplay" und "Voice over IP" in den Hintergrundmodi in meiner apps plist Datei überprüfe.Xamarin iOS Absturz mit Twilio Client

Die seltsame Sache im Simulator funktioniert perfekt, der Absturz tritt nur auf, wenn ich die App auf dem iPhone laufen lasse. Auf meinem Telefon läuft ios 10.2. Ich füge den Code und das Absturzprotokoll ein. Bitte helfen Sie, da dieser Absturz in einer App, die ich für die Arbeit erstelle, genau so vorkommt, dass ich sie wirklich lösen muss, und ich bin am Ende meines Wissens.

using System; 
    using UIKit; 
    using Foundation; 
    using TwilioClient.iOS; 

    namespace twiliotest 
    { 
     public partial class ViewController : UIViewController 
     { 
      TCDevice _device; 
      TCConnection _connection; 

      protected ViewController(IntPtr handle) : base(handle) 
     { 
      // Note: this .ctor should not contain any initialization   logic. 
     } 

     public override void ViewDidLoad() 
     { 
      base.ViewDidLoad(); 

      string sLink = "https://www.myserver.com/captok.php"; 
      var url = new NSUrl(sLink); 
      var data = NSData.FromUrl(url); 
      var token = data.ToString(); 

      // Create a new TCDevice object passing in the token. 
      _device = new TCDevice(token, null); 
     } 

     public override void DidReceiveMemoryWarning() 
     { 
      base.DidReceiveMemoryWarning(); 
     } 

     partial void ButtonCall_TouchUpInside(UIButton sender) 
     { 
      if (_connection == null || _connection.State == TCConnectionState.Disconnected) 
      { 
       var param = new TCConnectionParameters 
       { 
        From = "12125551234", 
        To = "12125554321" 
       }; 
       _connection = _device.Connect(param, null); 
      } 
      else { 
       _connection.Disconnect(); 
      }   
     } 

     void SetupDeviceEvents() 
     { 
      if (_device != null) 
      { 
       _device.ReceivedIncomingConnection += (sender, e) => 
       { 
        _connection = e.Connection; 
        _connection.Accept(); 
       }; 
      } 
     } 

     } 
    } 

Hier ist das Crashprotokoll. Hinweis der Absturz ist in Gewinde 7.

Incident Identifier: FA61C36F-110A-44DF-A862-FD7C37859D8E 
    CrashReporter Key: dc2811c1cf8685a6f8963c39740ec1af0fb4e080 
    Hardware Model:  iPhone7,2 
    Process:    twiliotest [7846] 
    Path:    /private/var/containers/Bundle/Application/412D52E2-9ECB-4C01-B984-AB2820FBBFB0/twiliotest.app/twiliotest 
    Identifier:   com.davidkbowers.twiliotest 
    Version:    1.0 (1.0) 
    Code Type:   ARM-64 (Native) 
    Role:    Foreground 
    Parent Process:  launchd [1] 
    Coalition:   com.davidkbowers.twiliotest [1855] 


    Date/Time:   2017-01-04 18:50:06.7079 -0500 
    Launch Time:   2017-01-04 18:50:00.8968 -0500 
    OS Version:   iPhone OS 10.2 (14C92) 
    Report Version:  104 

    Exception Type: EXC_CRASH (SIGABRT) 
    Exception Codes: 0x0000000000000000, 0x0000000000000000 
    Exception Note: EXC_CORPSE_NOTIFY 
    Triggered by Thread: 7 

    Application Specific Information: 
    abort() called 

    Filtered syslog: 
    None found 

    Thread 0 name: tid_403 Dispatch queue: com.apple.main-thread 
    Thread 0: 
    0 libsystem_kernel.dylib   0x00000001822c5188 mach_msg_trap + 8 
    1 libsystem_kernel.dylib   0x00000001822c4ff8 mach_msg + 72 
    2 CoreFoundation     0x00000001832c25d0 __CFRunLoopServiceMachPort + 192 
    3 CoreFoundation     0x00000001832c01ec __CFRunLoopRun + 1132 
    4 CoreFoundation     0x00000001831ee2b8 CFRunLoopRunSpecific + 444 
    5 GraphicsServices    0x0000000184ca2198 GSEventRunModal + 180 
    6 UIKit       0x00000001892357fc -[UIApplication _run] + 684 
    7 UIKit       0x0000000189230534 UIApplicationMain + 208 
    8 twiliotest      0x000000010047cd04 wrapper_managed_to_native_UIKit_UIApplication_UIApplicationMain_int_string___intptr_intptr (/<unknown>:1) 
    9 twiliotest      0x0000000100462a9c UIKit_UIApplication_Main_string___intptr_intptr (UIApplication.cs:79) 
    10 twiliotest      0x0000000100462a5c UIKit_UIApplication_Main_string___string_string (UIApplication.cs:63) 
    11 twiliotest      0x0000000100438e04 twiliotest_Application_Main_string__ (Main.cs:12) 
    12 twiliotest      0x000000010059bb64 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 244 
    13 twiliotest      0x000000010032ee28 mono_jit_runtime_invoke (mini-runtime.c:2524) 
    14 twiliotest      0x000000010039d1e8 do_runtime_invoke (object.c:2809) 
    15 twiliotest      0x000000010039f7cc mono_runtime_exec_main (object.c:4585) 
    16 twiliotest      0x000000010039f3e8 mono_runtime_run_main (object.c:4134) 
    17 twiliotest      0x0000000100314050 mono_jit_exec (driver.g.c:1048) 
    18 twiliotest      0x0000000100438bd0 xamarin_main (monotouch-main.m:487) 
    19 twiliotest      0x00000001005ec148 main (main.arm64.m:45) 
    20 libdyld.dylib     0x00000001821d15b8 start + 4 

    Thread 1: 
    0 libsystem_kernel.dylib   0x00000001822e3a88 __workq_kernreturn + 8 
    1 libsystem_pthread.dylib   0x00000001823a7344 _pthread_wqthread + 1452 
    2 libsystem_pthread.dylib   0x00000001823a6d8c start_wqthread + 4 

    Thread 2: 
    0 libsystem_pthread.dylib   0x00000001823a6d88 start_wqthread + 0 

    Thread 3 name: Dispatch queue: com.twilio.TCCommandHandler.commandQ 
    Thread 3: 
    0 libsystem_kernel.dylib   0x00000001822c5188 mach_msg_trap + 8 
    1 libsystem_kernel.dylib   0x00000001822c4ff8 mach_msg + 72 
    2 AudioToolbox     0x0000000186313c90 AUIOClient_Initialize + 228 
    3 AudioToolbox     0x00000001861a1864 AURemoteIO::Initialize() + 1328 
    4 AudioToolbox     0x000000018649c3b0 AUBase::DoInitialize() + 48 
    5 AudioToolbox     0x00000001864a4888 AUMethodInitialize(void*) + 76 
    6 twiliotest      0x00000001002251d8 create_audio_unit (coreaudio_dev.m:1507) 
    7 twiliotest      0x0000000100224c7c ca_factory_create_stream (coreaudio_dev.m:1599) 
    8 twiliotest      0x0000000100233d4c twilio_pjmedia_aud_stream_create (audiodev.c:790) 
    9 twiliotest      0x00000001002319d4 twilio_pjmedia_snd_port_create2 (sound_port.c:261) 
    10 twiliotest      0x0000000100241cec open_snd_dev (pjsua_aud.c:1715) 
    11 twiliotest      0x00000001002422d8 twilio_pjsua_set_snd_dev (pjsua_aud.c:1974) 
    12 twiliotest      0x0000000100213998 twilio_pjsua_call_make_call (pjsua_call.c:645) 
    13 twiliotest      0x00000001001f7090 -[TCCall makeCall] (TCCall.m:51) 
    14 twiliotest      0x00000001001e04a4 -[TCMakeCallCommand run] (TCCommands.m:215) 
    15 libdispatch.dylib    0x000000018219e1fc _dispatch_call_block_and_release + 24 
    16 libdispatch.dylib    0x000000018219e1bc _dispatch_client_callout + 16 
    17 libdispatch.dylib    0x00000001821ac3dc _dispatch_queue_serial_drain + 928 
    18 libdispatch.dylib    0x00000001821a19a4 _dispatch_queue_invoke + 652 
    19 libdispatch.dylib    0x00000001821ac8d8 _dispatch_queue_override_invoke + 360 
    20 libdispatch.dylib    0x00000001821ae34c _dispatch_root_queue_drain + 572 
    21 libdispatch.dylib    0x00000001821ae0ac _dispatch_worker_thread3 + 124 
    22 libsystem_pthread.dylib   0x00000001823a72a0 _pthread_wqthread + 1288 
    23 libsystem_pthread.dylib   0x00000001823a6d8c start_wqthread + 4 

    Thread 4 name: SGen worker 
    Thread 4: 
    0 libsystem_kernel.dylib   0x00000001822e2e1c __psynch_cvwait + 8 
    1 libsystem_pthread.dylib   0x00000001823a89c0 _pthread_cond_wait + 640 
    2 twiliotest      0x00000001003fa544 thread_func (mono-os-mutex.h:108) 
    3 libsystem_pthread.dylib   0x00000001823a9850 _pthread_body + 240 
    4 libsystem_pthread.dylib   0x00000001823a9760 _pthread_body + 0 
    5 libsystem_pthread.dylib   0x00000001823a6d94 thread_start + 4 

    Thread 5 name: Finalizer 
    Thread 5: 
    0 libsystem_kernel.dylib   0x00000001822c51c4 semaphore_wait_trap + 8 
    1 twiliotest      0x00000001003613f8 finalizer_thread (mono-os-semaphore.h:73) 
    2 twiliotest      0x00000001003ce664 start_wrapper (threads.c:740) 
    3 twiliotest      0x000000010041efbc inner_start_thread (mono-threads-posix.c:92) 
    4 libsystem_pthread.dylib   0x00000001823a9850 _pthread_body + 240 
    5 libsystem_pthread.dylib   0x00000001823a9760 _pthread_body + 0 
    6 libsystem_pthread.dylib   0x00000001823a6d94 thread_start + 4 

    Thread 6 name: com.apple.uikit.eventfetch-thread 
    Thread 6: 
    0 libsystem_kernel.dylib   0x00000001822c5188 mach_msg_trap + 8 
    1 libsystem_kernel.dylib   0x00000001822c4ff8 mach_msg + 72 
    2 CoreFoundation     0x00000001832c25d0 __CFRunLoopServiceMachPort + 192 
    3 CoreFoundation     0x00000001832c01ec __CFRunLoopRun + 1132 
    4 CoreFoundation     0x00000001831ee2b8 CFRunLoopRunSpecific + 444 
    5 Foundation      0x0000000183d2b26c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304 
    6 Foundation      0x0000000183d4bdd0 -[NSRunLoop(NSRunLoop) runUntilDate:] + 96 
    7 UIKit       0x0000000189ba9c38 -[UIEventFetcher threadMain] + 136 
    8 Foundation      0x0000000183e28e68 __NSThread__start__ + 1024 
    9 libsystem_pthread.dylib   0x00000001823a9850 _pthread_body + 240 
    10 libsystem_pthread.dylib   0x00000001823a9760 _pthread_body + 0 
    11 libsystem_pthread.dylib   0x00000001823a6d94 thread_start + 4 

    Thread 7 name: Dispatch queue: com.apple.root.default-qos 
    Thread 7 Crashed: 
    0 libsystem_kernel.dylib   0x00000001822e3014 __pthread_kill + 8 
    1 libsystem_pthread.dylib   0x00000001823ab450 pthread_kill + 112 
    2 libsystem_c.dylib    0x0000000182257400 abort + 140 
    3 twiliotest      0x0000000100320aa0 mono_handle_native_sigsegv (mini-exceptions.c:2420) 
    4 libsystem_platform.dylib  0x00000001823a5348 _sigtramp + 52 
    5 libsystem_kernel.dylib   0x00000001822de49c abort_with_payload_wrapper_internal + 100 
    6 libsystem_kernel.dylib   0x00000001822de4c8 system_set_sfi_window + 0 
    7 TCC        0x0000000185552328 __TCCAccessRequest_block_invoke_2.80 + 0 
    8 TCC        0x0000000185552224 __CRASHING_DUE_TO_PRIVACY_VIOLATION__ + 0 
    9 TCC        0x0000000185555330 __tccd_send_block_invoke + 348 
    10 libxpc.dylib     0x00000001823e6fcc _xpc_connection_reply_callout + 80 
    11 libxpc.dylib     0x00000001823e6f3c _xpc_connection_call_reply + 40 
    12 libdispatch.dylib    0x000000018219e1bc _dispatch_client_callout + 16 
    13 libdispatch.dylib    0x00000001821aca4c _dispatch_queue_override_invoke + 732 
    14 libdispatch.dylib    0x00000001821ae34c _dispatch_root_queue_drain + 572 
    15 libdispatch.dylib    0x00000001821ae0ac _dispatch_worker_thread3 + 124 
    16 libsystem_pthread.dylib   0x00000001823a72a0 _pthread_wqthread + 1288 
    17 libsystem_pthread.dylib   0x00000001823a6d8c start_wqthread + 4 

    Thread 8 name: com.apple.NSURLConnectionLoader 
    Thread 8: 
    0 libsystem_kernel.dylib   0x00000001822c5188 mach_msg_trap + 8 
    1 libsystem_kernel.dylib   0x00000001822c4ff8 mach_msg + 72 
    2 CoreFoundation     0x00000001832c25d0 __CFRunLoopServiceMachPort + 192 
    3 CoreFoundation     0x00000001832c01ec __CFRunLoopRun + 1132 
    4 CoreFoundation     0x00000001831ee2b8 CFRunLoopRunSpecific + 444 
    5 CFNetwork      0x00000001839f38f0 +[NSURLConnection(Loader) _resourceLoadLoop:] + 336 
    6 Foundation      0x0000000183e28e68 __NSThread__start__ + 1024 
    7 libsystem_pthread.dylib   0x00000001823a9850 _pthread_body + 240 
    8 libsystem_pthread.dylib   0x00000001823a9760 _pthread_body + 0 
    9 libsystem_pthread.dylib   0x00000001823a6d94 thread_start + 4 

    Thread 9: 
    0 libsystem_kernel.dylib   0x00000001822e3314 __semwait_signal + 8 
    1 libsystem_c.dylib    0x000000018220125c nanosleep + 212 
    2 libsystem_c.dylib    0x000000018220117c usleep + 64 
    3 twiliotest      0x000000010021b694 twilio_pj_thread_sleep (os_core_unix.c:780) 
    4 twiliotest      0x00000001002902f8 twilio_pj_ioqueue_poll (ioqueue_select.c:862) 
    5 twiliotest      0x000000010028d608 worker_proc (endpoint.c:332) 
    6 twiliotest      0x000000010021b4b0 thread_main (os_core_unix.c:531) 
    7 libsystem_pthread.dylib   0x00000001823a9850 _pthread_body + 240 
    8 libsystem_pthread.dylib   0x00000001823a9760 _pthread_body + 0 
    9 libsystem_pthread.dylib   0x00000001823a6d94 thread_start + 4 

    Thread 10: 
    0 libsystem_kernel.dylib   0x00000001822e323c __select + 8 
    1 twiliotest      0x000000010024ead4 twilio_pj_sock_select (sock_select.c:110) 
    2 twiliotest      0x0000000100290044 twilio_pj_ioqueue_poll (ioqueue_select.c:882) 
    3 twiliotest      0x000000010027d98c twilio_pjsip_endpt_handle_events2 (sip_endpoint.c:741) 
    4 twiliotest      0x0000000100221f64 twilio_pjsua_handle_events (pjsua_core.c:1837) 
    5 twiliotest      0x0000000100221a98 worker_thread (pjsua_core.c:695) 
    6 twiliotest      0x000000010021b4b0 thread_main (os_core_unix.c:531) 
    7 libsystem_pthread.dylib   0x00000001823a9850 _pthread_body + 240 
    8 libsystem_pthread.dylib   0x00000001823a9760 _pthread_body + 0 
    9 libsystem_pthread.dylib   0x00000001823a6d94 thread_start + 4 

    Thread 11 name: AVAudioSession Notify Thread 
    Thread 11: 
    0 libsystem_kernel.dylib   0x00000001822c5188 mach_msg_trap + 8 
    1 libsystem_kernel.dylib   0x00000001822c4ff8 mach_msg + 72 
    2 CoreFoundation     0x00000001832c25d0 __CFRunLoopServiceMachPort + 192 
    3 CoreFoundation     0x00000001832c01ec __CFRunLoopRun + 1132 
    4 CoreFoundation     0x00000001831ee2b8 CFRunLoopRunSpecific + 444 
    5 AVFAudio      0x000000019ce83d24 GenericRunLoopThread::Entry(void*) + 164 
    6 AVFAudio      0x000000019cea9d9c CAPThread::Entry(CAPThread*) + 84 
    7 libsystem_pthread.dylib   0x00000001823a9850 _pthread_body + 240 
    8 libsystem_pthread.dylib   0x00000001823a9760 _pthread_body + 0 
    9 libsystem_pthread.dylib   0x00000001823a6d94 thread_start + 4 

    Thread 12: 
    0 libsystem_kernel.dylib   0x00000001822c51dc semaphore_timedwait_trap + 8 
    1 libdispatch.dylib    0x00000001821b0770 _dispatch_semaphore_wait_slow + 112 
    2 libdispatch.dylib    0x00000001821af808 _dispatch_worker_thread + 268 
    3 libsystem_pthread.dylib   0x00000001823a9850 _pthread_body + 240 
    4 libsystem_pthread.dylib   0x00000001823a9760 _pthread_body + 0 
    5 libsystem_pthread.dylib   0x00000001823a6d94 thread_start + 4 

    Thread 13: 
    0 libsystem_pthread.dylib   0x00000001823a6d88 start_wqthread + 0 

    Thread 7 crashed with ARM Thread State (64-bit): 
     x0: 0x0000000000000000 x1: 0x0000000000000000 x2:     0x0000000000000000 x3: 0x000000015be197a0 
     x4: 0x000000000000001b x5: 0x000000016e359b00 x6: 0x0000000000000034 x7: 0xffffffffffffffec 
     x8: 0x000000000c000000 x9: 0x0000000004000000 x10: 0x0000000000003dd5 x11: 0x00000001ab196da3 
     x12: 0x00000001ab196da3 x13: 0x0000000000000018 x14: 0x0000000000000001 x15: 0x0000000000000881 
     x16: 0x0000000000000148 x17: 0x0000000000000000 x18: 0x0000000000000000 x19: 0x0000000000000006 
     x20: 0x000000016e35b000 x21: 0x000000010062d6b7 x22: 0x000000010062d77e x23: 0xc698a6e613ac0034 
     x24: 0x000000016e359ee8 x25: 0x000000010062d731 x26: 0x000000015c8c0e78 x27: 0x0000000000000004 
     x28: 0xffffffffffffffff fp: 0x000000016e359e80 lr: 0x00000001823ab450 
     sp: 0x000000016e359e60 pc: 0x00000001822e3014 cpsr: 0x00000000 

    Binary Images: 
    0x1000fc000 - 0x1006ebfff twiliotest arm64   <24d1aa9aa95d3911b2709a7a36f9a785> /var/containers/Bundle/Application/412D52E2-9ECB-4C01-B984-AB2820FBBFB0/twiliotest.app/twiliotest 

0x100898000 - 0x1008c7fff dyld arm64/usr/lib/dyld

Rest gelöscht aus Platzgründen ...

EOF

Bitte lassen Ich weiß, ob es noch etwas gibt, das ich posten muss. Vielen Dank im Voraus für Ihre Hilfe.

Dave

Antwort

0

Seien Sie sicher, dass Sie die neueste iOS Stimme SDK 2.0 https://www.twilio.com/docs/api/voice-sdk/ios verwenden. Die von Ihnen verwendete Xamarin-Komponente basiert möglicherweise auf der veralteten Version (Twilio iOS Client SDK). Die neue Version ist Programmable Voice iOS SDK, die iOS 10 unterstützt.

Details in der changelog.

0

Apps, die auf iOS 10+ abzielen, stürzen ab, wenn die erforderliche Berechtigungszeichenfolge fehlt.

Im Fall von Twilio benötigt es Zugriff auf das Mikrofon des Telefons, sodass Ihre App den Benutzer nach der Erlaubnis zur Verwendung des Mikrofons fragen muss.

Sie können dies tun, indem Sie die Datei Info.plist Ihrer App bearbeiten. Fügen Sie diesen Code <key>NSMicrophoneUsageDescription</key> <string>My app needs to use the microphone.</string> innerhalb des Abschnitts <dict> ... </dict> hinzu.

Weitere Informationen finden Sie unter iOS 10 - Changes in asking permissions of Camera, microphone and Photo Library causing application to crash und https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html.

Verwandte Themen