Azure / azure-sdk-for-ios

iOS client SDKs for Microsoft Azure
https://azure.github.io/azure-sdk-for-ios/
MIT License
185 stars 88 forks source link

[BUG]App crashes when try to render stream in swiftUI #1826

Closed SarawutSr closed 1 month ago

SarawutSr commented 2 months ago

I used this function

struct RemoteVideoView: UIViewRepresentable { let view:RendererView

init(view: RendererView) {
    self.view = view
}

func makeUIView(context: Context) -> UIView {

    return view
}

func updateUIView(_ uiView: UIView, context: Context) {
}

}

for rendering the video stream in swiftUI after join the Group Call.

In simulator with iOS < 17.2, it works well. But if I run the application in simulator with iOS 17.4 & 17.5, it always crashes all the time, as show in picture.

I am struggling with this for 2 weeks now, and have no idea how to solve/tackle this problem. Could you help me to check and advice how to fix?

To reproduce, you can use one of ms examples on below link to run. (I walkthrough these two applications for better understanding to develop)

https://github.com/Azure-Samples/communication-services-ios-quickstarts/tree/main/add-video-calling https://github.com/Azure-Samples/communication-services-ios-quickstarts/tree/main/join-room-call

Both of example projects are facing the same problem.

Exception or Stack Trace libsystem_platform.dylib`: 0x101213340 <+0>: sub x3, x0, x1 0x101213344 <+4>: cmp x3, x2 0x101213348 <+8>: b.lo 0x101213590 ; <+592> 0x10121334c <+12>: mov x3, x0 0x101213350 <+16>: cmp x2, #0x40 0x101213354 <+20>: b.lo 0x10121356c ; <+556> 0x101213358 <+24>: sub x4, x1, x0 0x10121335c <+28>: cmp x4, x2 0x101213360 <+32>: b.lo 0x101213464 ; <+292> 0x101213364 <+36>: cmp x2, #0x4, lsl #12 ; =0x4000 0x101213368 <+40>: b.lo 0x1012133e8 ; <+168> 0x10121336c <+44>: add x3, x3, #0x20 0x101213370 <+48>: and x3, x3, #0xffffffffffffffe0 0x101213374 <+52>: ldnp x12, x13, [x1] 0x101213378 <+56>: ldnp x14, x15, [x1, #0x10] 0x10121337c <+60>: sub x5, x3, x0 0x101213380 <+64>: add x1, x1, x5 0x101213384 <+68>: ldnp x8, x9, [x1] 0x101213388 <+72>: ldnp x10, x11, [x1, #0x10] 0x10121338c <+76>: add x1, x1, #0x20 0x101213390 <+80>: sub x2, x2, x5 0x101213394 <+84>: stnp x12, x13, [x0] 0x101213398 <+88>: stnp x14, x15, [x0, #0x10] 0x10121339c <+92>: subs x2, x2, #0x40 0x1012133a0 <+96>: b.ls 0x1012133c4 ; <+132> 0x1012133a4 <+100>: stnp x8, x9, [x3] 0x1012133a8 <+104>: stnp x10, x11, [x3, #0x10] 0x1012133ac <+108>: add x3, x3, #0x20 0x1012133b0 <+112>: ldnp x8, x9, [x1] 0x1012133b4 <+116>: ldnp x10, x11, [x1, #0x10] 0x1012133b8 <+120>: add x1, x1, #0x20 0x1012133bc <+124>: subs x2, x2, #0x20 0x1012133c0 <+128>: b.hi 0x1012133a4 ; <+100> 0x1012133c4 <+132>: add x1, x1, x2 0x1012133c8 <+136>: ldnp x12, x13, [x1] 0x1012133cc <+140>: ldnp x14, x15, [x1, #0x10] 0x1012133d0 <+144>: stnp x8, x9, [x3] 0x1012133d4 <+148>: stnp x10, x11, [x3, #0x10] 0x1012133d8 <+152>: add x3, x3, x2 0x1012133dc <+156>: stnp x12, x13, [x3, #0x20] 0x1012133e0 <+160>: stnp x14, x15, [x3, #0x30] 0x1012133e4 <+164>: ret
0x1012133e8 <+168>: add x3, x3, #0x20 0x1012133ec <+172>: and x3, x3, #0xffffffffffffffe0 0x1012133f0 <+176>: ldnp x12, x13, [x1] 0x1012133f4 <+180>: ldnp x14, x15, [x1, #0x10] 0x1012133f8 <+184>: sub x5, x3, x0 0x1012133fc <+188>: add x1, x1, x5 0x101213400 <+192>: ldnp x8, x9, [x1] 0x101213404 <+196>: ldnp x10, x11, [x1, #0x10] 0x101213408 <+200>: add x1, x1, #0x20 0x10121340c <+204>: sub x2, x2, x5 -> 0x101213410 <+208>: stp x12, x13, [x0] 0x101213414 <+212>: stp x14, x15, [x0, #0x10] 0x101213418 <+216>: subs x2, x2, #0x40 0x10121341c <+220>: b.ls 0x101213440 ; <+256> 0x101213420 <+224>: stp x8, x9, [x3] 0x101213424 <+228>: stp x10, x11, [x3, #0x10] 0x101213428 <+232>: add x3, x3, #0x20 0x10121342c <+236>: ldnp x8, x9, [x1] 0x101213430 <+240>: ldnp x10, x11, [x1, #0x10] 0x101213434 <+244>: add x1, x1, #0x20 0x101213438 <+248>: subs x2, x2, #0x20 0x10121343c <+252>: b.hi 0x101213420 ; <+224> 0x101213440 <+256>: add x1, x1, x2 0x101213444 <+260>: ldnp x12, x13, [x1] 0x101213448 <+264>: ldnp x14, x15, [x1, #0x10] 0x10121344c <+268>: stp x8, x9, [x3] 0x101213450 <+272>: stp x10, x11, [x3, #0x10] 0x101213454 <+276>: add x3, x3, x2 0x101213458 <+280>: stp x12, x13, [x3, #0x20] 0x10121345c <+284>: stp x14, x15, [x3, #0x30] 0x101213460 <+288>: ret
0x101213464 <+292>: cmp x2, #0x4, lsl #12 ; =0x4000 0x101213468 <+296>: b.lo 0x1012134e8 ; <+424> 0x10121346c <+300>: add x3, x3, #0x20 0x101213470 <+304>: and x3, x3, #0xffffffffffffffe0 0x101213474 <+308>: ldp x12, x13, [x1] 0x101213478 <+312>: ldp x14, x15, [x1, #0x10] 0x10121347c <+316>: sub x5, x3, x0 0x101213480 <+320>: add x1, x1, x5 0x101213484 <+324>: ldp x8, x9, [x1] 0x101213488 <+328>: ldp x10, x11, [x1, #0x10] 0x10121348c <+332>: add x1, x1, #0x20 0x101213490 <+336>: sub x2, x2, x5 0x101213494 <+340>: stnp x12, x13, [x0] 0x101213498 <+344>: stnp x14, x15, [x0, #0x10] 0x10121349c <+348>: subs x2, x2, #0x40 0x1012134a0 <+352>: b.ls 0x1012134c4 ; <+388> 0x1012134a4 <+356>: stnp x8, x9, [x3] 0x1012134a8 <+360>: stnp x10, x11, [x3, #0x10] 0x1012134ac <+364>: add x3, x3, #0x20 0x1012134b0 <+368>: ldp x8, x9, [x1] 0x1012134b4 <+372>: ldp x10, x11, [x1, #0x10] 0x1012134b8 <+376>: add x1, x1, #0x20 0x1012134bc <+380>: subs x2, x2, #0x20 0x1012134c0 <+384>: b.hi 0x1012134a4 ; <+356> 0x1012134c4 <+388>: add x1, x1, x2 0x1012134c8 <+392>: ldp x12, x13, [x1] 0x1012134cc <+396>: ldp x14, x15, [x1, #0x10] 0x1012134d0 <+400>: stnp x8, x9, [x3] 0x1012134d4 <+404>: stnp x10, x11, [x3, #0x10] 0x1012134d8 <+408>: add x3, x3, x2 0x1012134dc <+412>: stnp x12, x13, [x3, #0x20] 0x1012134e0 <+416>: stnp x14, x15, [x3, #0x30] 0x1012134e4 <+420>: ret
0x1012134e8 <+424>: add x3, x3, #0x20 0x1012134ec <+428>: and x3, x3, #0xffffffffffffffe0 0x1012134f0 <+432>: ldp x12, x13, [x1] 0x1012134f4 <+436>: ldp x14, x15, [x1, #0x10] 0x1012134f8 <+440>: sub x5, x3, x0 0x1012134fc <+444>: add x1, x1, x5 0x101213500 <+448>: ldp x8, x9, [x1] 0x101213504 <+452>: ldp x10, x11, [x1, #0x10] 0x101213508 <+456>: add x1, x1, #0x20 0x10121350c <+460>: sub x2, x2, x5 0x101213510 <+464>: stp x12, x13, [x0] 0x101213514 <+468>: stp x14, x15, [x0, #0x10] 0x101213518 <+472>: subs x2, x2, #0x40 0x10121351c <+476>: b.ls 0x101213540 ; <+512> 0x101213520 <+480>: stp x8, x9, [x3] 0x101213524 <+484>: stp x10, x11, [x3, #0x10] 0x101213528 <+488>: add x3, x3, #0x20 0x10121352c <+492>: ldp x8, x9, [x1] 0x101213530 <+496>: ldp x10, x11, [x1, #0x10] 0x101213534 <+500>: add x1, x1, #0x20 0x101213538 <+504>: subs x2, x2, #0x20 0x10121353c <+508>: b.hi 0x101213520 ; <+480> 0x101213540 <+512>: add x1, x1, x2 0x101213544 <+516>: ldp x12, x13, [x1] 0x101213548 <+520>: ldp x14, x15, [x1, #0x10] 0x10121354c <+524>: stp x8, x9, [x3] 0x101213550 <+528>: stp x10, x11, [x3, #0x10] 0x101213554 <+532>: add x3, x3, x2 0x101213558 <+536>: stp x12, x13, [x3, #0x20] 0x10121355c <+540>: stp x14, x15, [x3, #0x30] 0x101213560 <+544>: ret
0x101213564 <+548>: ldr x6, [x1], #0x8 0x101213568 <+552>: str x6, [x3], #0x8 0x10121356c <+556>: subs x2, x2, #0x8 0x101213570 <+560>: b.hs 0x101213564 ; <+548> 0x101213574 <+564>: adds x2, x2, #0x8 0x101213578 <+568>: b.eq 0x10121358c ; <+588> 0x10121357c <+572>: ldrb w6, [x1], #0x1 0x101213580 <+576>: strb w6, [x3], #0x1 0x101213584 <+580>: subs x2, x2, #0x1 0x101213588 <+584>: b.ne 0x10121357c ; <+572> 0x10121358c <+588>: ret
0x101213590 <+592>: cbz x3, 0x1012136c4 ; <+900> 0x101213594 <+596>: add x4, x0, x2 0x101213598 <+600>: add x1, x1, x2 0x10121359c <+604>: cmp x2, #0x40 0x1012135a0 <+608>: b.lo 0x1012136a4 ; <+868> 0x1012135a4 <+612>: cmp x2, #0x4, lsl #12 ; =0x4000 0x1012135a8 <+616>: b.lo 0x101213624 ; <+740> 0x1012135ac <+620>: ldp x12, x13, [x1, #-0x10] 0x1012135b0 <+624>: ldp x14, x15, [x1, #-0x20] 0x1012135b4 <+628>: sub x3, x4, #0x1 0x1012135b8 <+632>: and x3, x3, #0xffffffffffffffe0 0x1012135bc <+636>: sub x5, x4, x3 0x1012135c0 <+640>: sub x1, x1, x5 0x1012135c4 <+644>: sub x2, x2, x5 0x1012135c8 <+648>: ldp x8, x9, [x1, #-0x10] 0x1012135cc <+652>: ldp x10, x11, [x1, #-0x20] 0x1012135d0 <+656>: stnp x12, x13, [x4, #-0x10] 0x1012135d4 <+660>: stnp x14, x15, [x4, #-0x20] 0x1012135d8 <+664>: sub x1, x1, #0x20 0x1012135dc <+668>: subs x2, x2, #0x40 0x1012135e0 <+672>: b.ls 0x101213604 ; <+708> 0x1012135e4 <+676>: stnp x8, x9, [x3, #-0x10] 0x1012135e8 <+680>: stnp x10, x11, [x3, #-0x20] 0x1012135ec <+684>: sub x3, x3, #0x20 0x1012135f0 <+688>: ldp x8, x9, [x1, #-0x10] 0x1012135f4 <+692>: ldp x10, x11, [x1, #-0x20] 0x1012135f8 <+696>: sub x1, x1, #0x20 0x1012135fc <+700>: subs x2, x2, #0x20 0x101213600 <+704>: b.hi 0x1012135e4 ; <+676> 0x101213604 <+708>: sub x1, x1, x2 0x101213608 <+712>: ldp x12, x13, [x1, #-0x10] 0x10121360c <+716>: ldp x14, x15, [x1, #-0x20] 0x101213610 <+720>: stnp x8, x9, [x3, #-0x10] 0x101213614 <+724>: stnp x10, x11, [x3, #-0x20] 0x101213618 <+728>: stnp x12, x13, [x0, #0x10] 0x10121361c <+732>: stnp x14, x15, [x0] 0x101213620 <+736>: ret
0x101213624 <+740>: ldp x12, x13, [x1, #-0x10] 0x101213628 <+744>: ldp x14, x15, [x1, #-0x20] 0x10121362c <+748>: sub x3, x4, #0x1 0x101213630 <+752>: and x3, x3, #0xffffffffffffffe0 0x101213634 <+756>: sub x5, x4, x3 0x101213638 <+760>: sub x1, x1, x5 0x10121363c <+764>: sub x2, x2, x5 0x101213640 <+768>: ldp x8, x9, [x1, #-0x10] 0x101213644 <+772>: ldp x10, x11, [x1, #-0x20] 0x101213648 <+776>: stp x12, x13, [x4, #-0x10] 0x10121364c <+780>: stp x14, x15, [x4, #-0x20] 0x101213650 <+784>: sub x1, x1, #0x20 0x101213654 <+788>: subs x2, x2, #0x40 0x101213658 <+792>: b.ls 0x10121367c ; <+828> 0x10121365c <+796>: stp x8, x9, [x3, #-0x10] 0x101213660 <+800>: stp x10, x11, [x3, #-0x20] 0x101213664 <+804>: sub x3, x3, #0x20 0x101213668 <+808>: ldp x8, x9, [x1, #-0x10] 0x10121366c <+812>: ldp x10, x11, [x1, #-0x20] 0x101213670 <+816>: sub x1, x1, #0x20 0x101213674 <+820>: subs x2, x2, #0x20 0x101213678 <+824>: b.hi 0x10121365c ; <+796> 0x10121367c <+828>: sub x1, x1, x2 0x101213680 <+832>: ldp x12, x13, [x1, #-0x10] 0x101213684 <+836>: ldp x14, x15, [x1, #-0x20] 0x101213688 <+840>: stp x8, x9, [x3, #-0x10] 0x10121368c <+844>: stp x10, x11, [x3, #-0x20] 0x101213690 <+848>: stp x12, x13, [x0, #0x10] 0x101213694 <+852>: stp x14, x15, [x0] 0x101213698 <+856>: ret
0x10121369c <+860>: ldr x6, [x1, #-0x8]! 0x1012136a0 <+864>: str x6, [x4, #-0x8]! 0x1012136a4 <+868>: subs x2, x2, #0x8 0x1012136a8 <+872>: b.hs 0x10121369c ; <+860> 0x1012136ac <+876>: adds x2, x2, #0x8 0x1012136b0 <+880>: b.eq 0x1012136c4 ; <+900> 0x1012136b4 <+884>: ldrb w6, [x1, #-0x1]! 0x1012136b8 <+888>: strb w6, [x4, #-0x1]! 0x1012136bc <+892>: subs x2, x2, #0x1 0x1012136c0 <+896>: b.ne 0x1012136b4 ; <+884> 0x1012136c4 <+900>: ret
0x1012136c8 <+904>: udf #0x0 0x1012136cc <+908>: udf #0x0 0x1012136d0 <+912>: udf #0x0 0x1012136d4 <+916>: udf #0x0 0x1012136d8 <+920>: udf #0x0 0x1012136dc <+924>: udf #0x0

To Reproduce Steps to reproduce the behavior:

  1. Xcode Version 15.4 (15F31d)

  2. Use one of the MS example projects

https://github.com/Azure-Samples/communication-services-ios-quickstarts/tree/main/add-video-calling https://github.com/Azure-Samples/communication-services-ios-quickstarts/tree/main/join-room-call

  1. With AzureCommunicationCalling 2.11.0 https://github.com/Azure/Communication/releases/tag/v2.11.0

  2. Run Xcode simulator with iOS 17.4 / 17.5 (either Debug or Release)

Expected behavior The remote video stream would be smoothly render

Screenshot 2024-07-07 at 14 48 51
tjprescott commented 1 month ago

@raosanat can you please take a look?

lucianopa-msft commented 1 month ago

Hi @SarawutSr, We are looking into this issue, we will get back to you as soon as possible.

SarawutSr commented 1 month ago

Hi @SarawutSr, We are looking into this issue, we will get back to you as soon as possible.

Thank you so much.

lucianopa-msft commented 1 month ago

Can you try with version 2.12.0-beta.2 to see if that is reproducible there?

SarawutSr commented 1 month ago

Can you try with version 2.12.0-beta.2 to see if that is reproducible there?

After I tested with the version that you recommended, application able to rendered the video on the screen properly. But i found another issues instead.

The issue is when I hangup the call, I found the error as show in picture and it happens on both iOS 17.2 and 17.4. Another version not test yet.

Additional information On this whole scenarios, including issues that i found on 2.11.0. I did not use the CallKitOption as code that i comment while run application on below

private func createCallAgentOptions() -> CallAgentOptions {
    let options = CallAgentOptions()
    options.pushNotificationTtl = 25*60*60 // Extending device token TTL to 25 hours

// options.callKitOptions = createCallKitOptions() return options } *I cannot start the call when use the CallKit option

Screenshot 2024-07-17 at 08 16 02

Logs... AzureCommunicationCalling`Video::onPropertyChange: 0x10a4c3b50 <+0>: sub sp, sp, #0xa0 0x10a4c3b54 <+4>: stp x22, x21, [sp, #0x70] 0x10a4c3b58 <+8>: stp x20, x19, [sp, #0x80] 0x10a4c3b5c <+12>: stp x29, x30, [sp, #0x90] 0x10a4c3b60 <+16>: add x29, sp, #0x90 0x10a4c3b64 <+20>: mov x20, x3 0x10a4c3b68 <+24>: mov x22, x2 0x10a4c3b6c <+28>: mov x21, x1 0x10a4c3b70 <+32>: mov x19, x0 0x10a4c3b74 <+36>: adrp x8, 7697 0x10a4c3b78 <+40>: ldr x8, [x8, #0x738] 0x10a4c3b7c <+44>: ldr x8, [x8] 0x10a4c3b80 <+48>: stur x8, [x29, #-0x28] 0x10a4c3b84 <+52>: cbz x0, 0x10a4c3b98 ; <+72> 0x10a4c3b88 <+56>: ldr x8, [x19] -> 0x10a4c3b8c <+60>: ldur x8, [x8, #-0x18] 0x10a4c3b90 <+64>: add x0, x19, x8 0x10a4c3b94 <+68>: bl 0x10bb7a234 ; rt::intrusive_ptr_add_ref(rt::IReferenceCountable const) 0x10a4c3b98 <+72>: ldr w8, [x19, #0x88] 0x10a4c3b9c <+76>: cmp w8, w21 0x10a4c3ba0 <+80>: b.ne 0x10a4c3bec ; <+156> 0x10a4c3ba4 <+84>: cmp w22, #0x209 0x10a4c3ba8 <+88>: b.ne 0x10a4c3dc8 ; <+632> 0x10a4c3bac <+92>: adrp x22, 8422 0x10a4c3bb0 <+96>: add x22, x22, #0x658 ; g_aufLogComponent 0x10a4c3bb4 <+100>: ldr x21, [x22] 0x10a4c3bb8 <+104>: ldr w8, [x21] 0x10a4c3bbc <+108>: cmp w8, #0x32 0x10a4c3bc0 <+112>: b.gt 0x10a4c3cf8 ; <+424> 0x10a4c3bc4 <+116>: add x8, sp, #0x18 0x10a4c3bc8 <+120>: mov x0, x19 0x10a4c3bcc <+124>: bl 0x10a4c39c4 ; Video::GetCorrelationId() 0x10a4c3bd0 <+128>: mov x0, x20 0x10a4c3bd4 <+132>: bl 0x10a507968 ; SkyLibVideoStatusEnumToString(SkyLib::Video::STATUS) 0x10a4c3bd8 <+136>: ldrsb w9, [x19, #0x67] 0x10a4c3bdc <+140>: tbnz w9, #0x1f, 0x10a4c3c8c ; <+316> 0x10a4c3be0 <+144>: add x8, x19, #0x50 0x10a4c3be4 <+148>: and x9, x9, #0xff 0x10a4c3be8 <+152>: b 0x10a4c3c90 ; <+320> 0x10a4c3bec <+156>: adrp x8, 8422 0x10a4c3bf0 <+160>: nop
0x10a4c3bf4 <+164>: ldr x20, [x8, #0x658] 0x10a4c3bf8 <+168>: ldr w8, [x20] 0x10a4c3bfc <+172>: cmp w8, #0x32 0x10a4c3c00 <+176>: b.gt 0x10a4c3dc8 ; <+632> 0x10a4c3c04 <+180>: add x8, sp, #0x18 0x10a4c3c08 <+184>: mov x0, x19 0x10a4c3c0c <+188>: bl 0x10a4c39c4 ; Video::GetCorrelationId() 0x10a4c3c10 <+192>: ldrsb w9, [x19, #0x67] 0x10a4c3c14 <+196>: tbnz w9, #0x1f, 0x10a4c3c24 ; <+212> 0x10a4c3c18 <+200>: add x8, x19, #0x50 0x10a4c3c1c <+204>: and x9, x9, #0xff 0x10a4c3c20 <+208>: b 0x10a4c3c28 ; <+216> 0x10a4c3c24 <+212>: ldp x8, x9, [x19, #0x50] 0x10a4c3c28 <+216>: ldrb w10, [sp, #0x2f] 0x10a4c3c2c <+220>: sxtb w11, w10 0x10a4c3c30 <+224>: ldp x12, x13, [sp, #0x18] 0x10a4c3c34 <+228>: cmp w11, #0x0 0x10a4c3c38 <+232>: add x11, sp, #0x18 0x10a4c3c3c <+236>: csel x11, x12, x11, lt 0x10a4c3c40 <+240>: csel x10, x13, x10, lt 0x10a4c3c44 <+244>: stp x9, x11, [sp, #0x40] 0x10a4c3c48 <+248>: str x10, [sp, #0x50] 0x10a4c3c4c <+252>: mov w9, #0x8803 0x10a4c3c50 <+256>: movk w9, #0x1, lsl #16 0x10a4c3c54 <+260>: stp x9, x8, [sp, #0x30] 0x10a4c3c58 <+264>: str w21, [sp, #0x58] 0x10a4c3c5c <+268>: adrp x4, 7427 0x10a4c3c60 <+272>: add x4, x4, #0x161 ; "%s::onPropertyChange, preview videoId: %s, returning because msrtc videoStatus belongs to a different videoId: %d" 0x10a4c3c64 <+276>: add x5, sp, #0x30 0x10a4c3c68 <+280>: mov x0, x20 0x10a4c3c6c <+284>: mov x1, x19 0x10a4c3c70 <+288>: mov w2, #0x6a32 0x10a4c3c74 <+292>: mov w3, #0x0 0x10a4c3c78 <+296>: bl 0x10bbae5d0 ; auf::LogComponent::log(void const
, unsigned int, unsigned int, char const, auf::LogArgs const&) 0x10a4c3c7c <+300>: ldrsb w8, [sp, #0x2f] 0x10a4c3c80 <+304>: tbz w8, #0x1f, 0x10a4c3dc8 ; <+632> 0x10a4c3c84 <+308>: ldr x0, [sp, #0x18] 0x10a4c3c88 <+312>: b 0x10a4c3d38 ; <+488> 0x10a4c3c8c <+316>: ldp x8, x9, [x19, #0x50] 0x10a4c3c90 <+320>: ldrb w10, [sp, #0x2f] 0x10a4c3c94 <+324>: sxtb w11, w10 0x10a4c3c98 <+328>: ldp x12, x13, [sp, #0x18] 0x10a4c3c9c <+332>: cmp w11, #0x0 0x10a4c3ca0 <+336>: add x11, sp, #0x18 0x10a4c3ca4 <+340>: csel x11, x12, x11, lt 0x10a4c3ca8 <+344>: csel x10, x13, x10, lt 0x10a4c3cac <+348>: stp x9, x11, [sp, #0x40] 0x10a4c3cb0 <+352>: mov w9, #0xa0000 0x10a4c3cb4 <+356>: mov w11, #0x8803 0x10a4c3cb8 <+360>: movk w11, #0x1, lsl #16 0x10a4c3cbc <+364>: orr x9, x11, x9 0x10a4c3cc0 <+368>: stp x9, x8, [sp, #0x30] 0x10a4c3cc4 <+372>: stp x10, x0, [sp, #0x50] 0x10a4c3cc8 <+376>: adrp x4, 7427 0x10a4c3ccc <+380>: add x4, x4, #0x1d3 ; "%s::onPropertyChange, videoId: %s, msrtc videoStatus: %s" 0x10a4c3cd0 <+384>: add x5, sp, #0x30 0x10a4c3cd4 <+388>: mov x0, x21 0x10a4c3cd8 <+392>: mov x1, x19 0x10a4c3cdc <+396>: mov w2, #0x7a32 0x10a4c3ce0 <+400>: mov w3, #0x0 0x10a4c3ce4 <+404>: bl 0x10bbae5d0 ; auf::LogComponent::log(void const, unsigned int, unsigned int, char const, auf::LogArgs const&) 0x10a4c3ce8 <+408>: ldrsb w8, [sp, #0x2f] 0x10a4c3cec <+412>: tbz w8, #0x1f, 0x10a4c3cf8 ; <+424> 0x10a4c3cf0 <+416>: ldr x0, [sp, #0x18] 0x10a4c3cf4 <+420>: bl 0x10bf1d118 ; symbol stub for: operator delete(void) 0x10a4c3cf8 <+424>: ldr x8, [x19, #0x80] 0x10a4c3cfc <+428>: cbz x8, 0x10a4c3d40 ; <+496> 0x10a4c3d00 <+432>: mov x8, sp 0x10a4c3d04 <+436>: mov x0, x19 0x10a4c3d08 <+440>: bl 0x10a4c39c4 ; Video::GetCorrelationId() 0x10a4c3d0c <+444>: str w20, [sp, #0x30] 0x10a4c3d10 <+448>: ldr x0, [x19, #0x80] 0x10a4c3d14 <+452>: cbz x0, 0x10a4c3e08 ; <+696> 0x10a4c3d18 <+456>: ldr x8, [x0] 0x10a4c3d1c <+460>: ldr x8, [x8, #0x30] 0x10a4c3d20 <+464>: add x1, sp, #0x30 0x10a4c3d24 <+468>: mov x2, sp 0x10a4c3d28 <+472>: blr x8 0x10a4c3d2c <+476>: ldrsb w8, [sp, #0x17] 0x10a4c3d30 <+480>: tbz w8, #0x1f, 0x10a4c3dc8 ; <+632> 0x10a4c3d34 <+484>: ldr x0, [sp] 0x10a4c3d38 <+488>: bl 0x10bf1d118 ; symbol stub for: operator delete(void) 0x10a4c3d3c <+492>: b 0x10a4c3dc8 ; <+632> 0x10a4c3d40 <+496>: ldr x20, [x22] 0x10a4c3d44 <+500>: ldr w8, [x20] 0x10a4c3d48 <+504>: cmp w8, #0x32 0x10a4c3d4c <+508>: b.gt 0x10a4c3dc8 ; <+632> 0x10a4c3d50 <+512>: add x8, sp, #0x18 0x10a4c3d54 <+516>: mov x0, x19 0x10a4c3d58 <+520>: bl 0x10a4c39c4 ; Video::GetCorrelationId() 0x10a4c3d5c <+524>: ldrsb w9, [x19, #0x67] 0x10a4c3d60 <+528>: tbnz w9, #0x1f, 0x10a4c3d70 ; <+544> 0x10a4c3d64 <+532>: add x8, x19, #0x50 0x10a4c3d68 <+536>: and x9, x9, #0xff 0x10a4c3d6c <+540>: b 0x10a4c3d74 ; <+548> 0x10a4c3d70 <+544>: ldp x8, x9, [x19, #0x50] 0x10a4c3d74 <+548>: ldrb w10, [sp, #0x2f] 0x10a4c3d78 <+552>: sxtb w11, w10 0x10a4c3d7c <+556>: ldp x12, x13, [sp, #0x18] 0x10a4c3d80 <+560>: cmp w11, #0x0 0x10a4c3d84 <+564>: add x11, sp, #0x18 0x10a4c3d88 <+568>: csel x11, x12, x11, lt 0x10a4c3d8c <+572>: csel x10, x13, x10, lt 0x10a4c3d90 <+576>: mov w12, #0x8802 0x10a4c3d94 <+580>: stp x12, x8, [sp, #0x30] 0x10a4c3d98 <+584>: stp x9, x11, [sp, #0x40] 0x10a4c3d9c <+588>: str x10, [sp, #0x50] 0x10a4c3da0 <+592>: adrp x4, 7427 0x10a4c3da4 <+596>: add x4, x4, #0x20c ; "%s::onPropertyChange, videoId: %s, event not sent" 0x10a4c3da8 <+600>: add x5, sp, #0x30 0x10a4c3dac <+604>: mov x0, x20 0x10a4c3db0 <+608>: mov x1, x19 0x10a4c3db4 <+612>: mov w2, #0x8532 0x10a4c3db8 <+616>: mov w3, #0x0 0x10a4c3dbc <+620>: bl 0x10bbae5d0 ; auf::LogComponent::log(void const, unsigned int, unsigned int, char const, auf::LogArgs const&) 0x10a4c3dc0 <+624>: ldrsb w8, [sp, #0x2f] 0x10a4c3dc4 <+628>: tbnz w8, #0x1f, 0x10a4c3c84 ; <+308> 0x10a4c3dc8 <+632>: ldr x8, [x19] 0x10a4c3dcc <+636>: ldur x8, [x8, #-0x18] 0x10a4c3dd0 <+640>: add x0, x19, x8 0x10a4c3dd4 <+644>: bl 0x10bb7a240 ; rt::intrusive_ptr_release(rt::IReferenceCountable const) 0x10a4c3dd8 <+648>: ldur x8, [x29, #-0x28] 0x10a4c3ddc <+652>: adrp x9, 7697 0x10a4c3de0 <+656>: ldr x9, [x9, #0x738] 0x10a4c3de4 <+660>: ldr x9, [x9] 0x10a4c3de8 <+664>: cmp x9, x8 0x10a4c3dec <+668>: b.ne 0x10a4c3e04 ; <+692> 0x10a4c3df0 <+672>: ldp x29, x30, [sp, #0x90] 0x10a4c3df4 <+676>: ldp x20, x19, [sp, #0x80] 0x10a4c3df8 <+680>: ldp x22, x21, [sp, #0x70] 0x10a4c3dfc <+684>: add sp, sp, #0xa0 0x10a4c3e00 <+688>: ret
0x10a4c3e04 <+692>: bl 0x10bf1d280 ; symbol stub for: stack_chk_fail 0x10a4c3e08 <+696>: bl 0x10bbc5380 ; std::1::__throw_bad_function_call[abi:v160006]()

lucianopa-msft commented 1 month ago

*I cannot start the call when use the CallKit option

CallKit and simulator don't work well together, from my current understanding the CallKit experience in the simulator is not supported or at the very least limited. So even for us in our testing scenarios we never use CallKit in simulator, it is always recommended to test CallKit using real devices.

Regarding the crash, given that stack trace I think that is something is already fixed and will be available on next beta release.

SarawutSr commented 1 month ago

*I cannot start the call when use the CallKit option

CallKit and simulator don't work well together, from my current understanding the CallKit experience in the simulator is not supported or at the very least limited. So even for us in our testing scenarios we never use CallKit in simulator, it is always recommended to test CallKit using real devices.

Regarding the crash, given that stack trace I think that is something is already fixed and will be available on next beta release.

Thank you for your update.

Let me summarized, it means all of the issues that I found will be fixed on next released. Is this correct?

lucianopa-msft commented 1 month ago

Let me summarized, it means all of the issues that I found will be fixed on next released. Is this correct?

Hey Yes, I believe we already fixed this issue, so when next release comes up this will be fixed.

srikasem-s commented 1 month ago

Let me summarized, it means all of the issues that I found will be fixed on next released. Is this correct?

Hey Yes, I believe we already fixed this issue, so when next release comes up this will be fixed.

I tried to install new version that your team just launched, based on your mentioned for bug fixing. I got the error as show in picture

Can you help?

Screenshot 2024-07-30 at 15 37 19

My pod file:

platform :ios, '15.0' use_frameworks!

ACSFrameworkVersion = '2.12.0'

target 'iOSVideo' do pod 'AzureCommunicationCalling', ACSFrameworkVersion end

post_install do |installer| app_project = Xcodeproj::Project.open(Dir.glob("*.xcodeproj")[0]) app_project.native_targets.each do |target| target.build_configurations.each do |config| config.build_settings['OTHER_SWIFT_FLAGS'] = ['$(inherited)'] if ACSFrameworkVersion.include?('beta') config.build_settings['OTHER_SWIFT_FLAGS'] << '-D BETA' end app_project.save end end end

lucianopa-msft commented 1 month ago

Hey @srikasem-s Although package is there on GitHub, we are still not published on cocoa pods, so you cannot install it from Pods yet. Still pending, so we recommend still continue with 2.11.0.

lucianopa-msft commented 1 month ago

@SarawutSr Issue has been fixed in https://github.com/Azure/Communication/releases/tag/v2.13.0-beta.1 Can you please confirm? Feel free to reopen if the issue is still there.

SarawutSr commented 1 month ago

@SarawutSr Issue has been fixed in https://github.com/Azure/Communication/releases/tag/v2.13.0-beta.1 Can you please confirm? Feel free to reopen if the issue is still there.

After I tested with your new beta version, 2.13.0-beta.1. The application able to run on iOS 17.4 and render remote video stream properly.

But when I hang up the call, I got the error as I mentioned on above. The logs and screen capture are on below

AzureCommunicationCalling`Video::onPropertyChange: 0x10a68a0a4 <+0>: sub sp, sp, #0xa0 0x10a68a0a8 <+4>: stp x22, x21, [sp, #0x70] 0x10a68a0ac <+8>: stp x20, x19, [sp, #0x80] 0x10a68a0b0 <+12>: stp x29, x30, [sp, #0x90] 0x10a68a0b4 <+16>: add x29, sp, #0x90 0x10a68a0b8 <+20>: mov x20, x3 0x10a68a0bc <+24>: mov x22, x2 0x10a68a0c0 <+28>: mov x21, x1 0x10a68a0c4 <+32>: mov x19, x0 0x10a68a0c8 <+36>: adrp x8, 7714 0x10a68a0cc <+40>: ldr x8, [x8, #0x738] 0x10a68a0d0 <+44>: ldr x8, [x8] 0x10a68a0d4 <+48>: stur x8, [x29, #-0x28] 0x10a68a0d8 <+52>: cbz x0, 0x10a68a0ec ; <+72> 0x10a68a0dc <+56>: ldr x8, [x19] -> 0x10a68a0e0 <+60>: ldur x8, [x8, #-0x18] 0x10a68a0e4 <+64>: add x0, x19, x8 0x10a68a0e8 <+68>: bl 0x10bd4ff38 ; rt::intrusive_ptr_add_ref(rt::IReferenceCountable const) 0x10a68a0ec <+72>: ldr w8, [x19, #0x88] 0x10a68a0f0 <+76>: cmp w8, w21 0x10a68a0f4 <+80>: b.ne 0x10a68a14c ; <+168> 0x10a68a0f8 <+84>: cmp w22, #0x209 0x10a68a0fc <+88>: b.ne 0x10a68a338 ; <+660> 0x10a68a100 <+92>: adrp x22, 8439 0x10a68a104 <+96>: add x22, x22, #0x8d8 ; g_aufLogComponent 0x10a68a108 <+100>: ldr x21, [x22] 0x10a68a10c <+104>: ldr w8, [x21] 0x10a68a110 <+108>: cmp w8, #0x32 0x10a68a114 <+112>: b.gt 0x10a68a268 ; <+452> 0x10a68a118 <+116>: add x8, sp, #0x18 0x10a68a11c <+120>: mov x0, x19 0x10a68a120 <+124>: bl 0x10a689f18 ; Video::GetCorrelationId() 0x10a68a124 <+128>: cmp w20, #0x9 0x10a68a128 <+132>: b.hi 0x10a68a1ec ; <+328> 0x10a68a12c <+136>: adrp x8, 7781 0x10a68a130 <+140>: add x8, x8, #0x7b8 ; typeinfo for std::1::bind<void (Video::)(unsigned int, PROPKEY, unsigned int, std::1::basic_string<char, std::__1::char_traits, std::1::allocator>), Video, std::1::placeholders::ph<1> const&, std::1::placeholders::ph<2> const&, std::1::placeholders::ph<3> const&, std::1::placeholders::ph<4> const&> + 24 0x10a68a134 <+144>: ldr x8, [x8, w20, sxtw #3] 0x10a68a138 <+148>: ldrsb w10, [x19, #0x67] 0x10a68a13c <+152>: tbnz w10, #0x1f, 0x10a68a1fc ; <+344> 0x10a68a140 <+156>: add x9, x19, #0x50 0x10a68a144 <+160>: and x10, x10, #0xff 0x10a68a148 <+164>: b 0x10a68a200 ; <+348> 0x10a68a14c <+168>: adrp x8, 8439 0x10a68a150 <+172>: nop
0x10a68a154 <+176>: ldr x20, [x8, #0x8d8] 0x10a68a158 <+180>: ldr w8, [x20] 0x10a68a15c <+184>: cmp w8, #0x32 0x10a68a160 <+188>: b.gt 0x10a68a338 ; <+660> 0x10a68a164 <+192>: add x8, sp, #0x18 0x10a68a168 <+196>: mov x0, x19 0x10a68a16c <+200>: bl 0x10a689f18 ; Video::GetCorrelationId() 0x10a68a170 <+204>: ldrsb w9, [x19, #0x67] 0x10a68a174 <+208>: tbnz w9, #0x1f, 0x10a68a184 ; <+224> 0x10a68a178 <+212>: add x8, x19, #0x50 0x10a68a17c <+216>: and x9, x9, #0xff 0x10a68a180 <+220>: b 0x10a68a188 ; <+228> 0x10a68a184 <+224>: ldp x8, x9, [x19, #0x50] 0x10a68a188 <+228>: ldrb w10, [sp, #0x2f] 0x10a68a18c <+232>: sxtb w11, w10 0x10a68a190 <+236>: ldp x12, x13, [sp, #0x18] 0x10a68a194 <+240>: cmp w11, #0x0 0x10a68a198 <+244>: add x11, sp, #0x18 0x10a68a19c <+248>: csel x11, x12, x11, lt 0x10a68a1a0 <+252>: csel x10, x13, x10, lt 0x10a68a1a4 <+256>: stp x9, x11, [sp, #0x40] 0x10a68a1a8 <+260>: str x10, [sp, #0x50] 0x10a68a1ac <+264>: mov w9, #0x8803 0x10a68a1b0 <+268>: movk w9, #0x1, lsl #16 0x10a68a1b4 <+272>: stp x9, x8, [sp, #0x30] 0x10a68a1b8 <+276>: str w21, [sp, #0x58] 0x10a68a1bc <+280>: adrp x4, 7443 0x10a68a1c0 <+284>: add x4, x4, #0x624 ; "%s::OnPropertyChange, preview videoId: %s, returning because msrtc videoStatus belongs to a different videoId: %d" 0x10a68a1c4 <+288>: add x5, sp, #0x30 0x10a68a1c8 <+292>: mov x0, x20 0x10a68a1cc <+296>: mov x1, x19 0x10a68a1d0 <+300>: mov w2, #0x6a32 0x10a68a1d4 <+304>: mov w3, #0x0 0x10a68a1d8 <+308>: bl 0x10bd842d4 ; auf::LogComponent::log(void const
, unsigned int, unsigned int, char const, auf::LogArgs const&) 0x10a68a1dc <+312>: ldrsb w8, [sp, #0x2f] 0x10a68a1e0 <+316>: tbz w8, #0x1f, 0x10a68a338 ; <+660> 0x10a68a1e4 <+320>: ldr x0, [sp, #0x18] 0x10a68a1e8 <+324>: b 0x10a68a2a8 ; <+516> 0x10a68a1ec <+328>: adrp x8, 7444 0x10a68a1f0 <+332>: add x8, x8, #0xa34 ; "INVALID_ENUM_VALUE" 0x10a68a1f4 <+336>: ldrsb w10, [x19, #0x67] 0x10a68a1f8 <+340>: tbz w10, #0x1f, 0x10a68a140 ; <+156> 0x10a68a1fc <+344>: ldp x9, x10, [x19, #0x50] 0x10a68a200 <+348>: ldrb w11, [sp, #0x2f] 0x10a68a204 <+352>: sxtb w12, w11 0x10a68a208 <+356>: ldp x13, x14, [sp, #0x18] 0x10a68a20c <+360>: cmp w12, #0x0 0x10a68a210 <+364>: add x12, sp, #0x18 0x10a68a214 <+368>: csel x12, x13, x12, lt 0x10a68a218 <+372>: csel x11, x14, x11, lt 0x10a68a21c <+376>: stp x10, x12, [sp, #0x40] 0x10a68a220 <+380>: mov w10, #0xa0000 0x10a68a224 <+384>: mov w12, #0x8803 0x10a68a228 <+388>: movk w12, #0x1, lsl #16 0x10a68a22c <+392>: orr x10, x12, x10 0x10a68a230 <+396>: stp x10, x9, [sp, #0x30] 0x10a68a234 <+400>: stp x11, x8, [sp, #0x50] 0x10a68a238 <+404>: adrp x4, 7443 0x10a68a23c <+408>: add x4, x4, #0x696 ; "%s::OnPropertyChange, videoId: %s, msrtc videoStatus: %s" 0x10a68a240 <+412>: add x5, sp, #0x30 0x10a68a244 <+416>: mov x0, x21 0x10a68a248 <+420>: mov x1, x19 0x10a68a24c <+424>: mov w2, #0x7a32 0x10a68a250 <+428>: mov w3, #0x0 0x10a68a254 <+432>: bl 0x10bd842d4 ; auf::LogComponent::log(void const, unsigned int, unsigned int, char const, auf::LogArgs const&) 0x10a68a258 <+436>: ldrsb w8, [sp, #0x2f] 0x10a68a25c <+440>: tbz w8, #0x1f, 0x10a68a268 ; <+452> 0x10a68a260 <+444>: ldr x0, [sp, #0x18] 0x10a68a264 <+448>: bl 0x10c0f31c4 ; symbol stub for: operator delete(void) 0x10a68a268 <+452>: ldr x8, [x19, #0x80] 0x10a68a26c <+456>: cbz x8, 0x10a68a2b0 ; <+524> 0x10a68a270 <+460>: mov x8, sp 0x10a68a274 <+464>: mov x0, x19 0x10a68a278 <+468>: bl 0x10a689f18 ; Video::GetCorrelationId() 0x10a68a27c <+472>: str w20, [sp, #0x30] 0x10a68a280 <+476>: ldr x0, [x19, #0x80] 0x10a68a284 <+480>: cbz x0, 0x10a68a378 ; <+724> 0x10a68a288 <+484>: ldr x8, [x0] 0x10a68a28c <+488>: ldr x8, [x8, #0x30] 0x10a68a290 <+492>: add x1, sp, #0x30 0x10a68a294 <+496>: mov x2, sp 0x10a68a298 <+500>: blr x8 0x10a68a29c <+504>: ldrsb w8, [sp, #0x17] 0x10a68a2a0 <+508>: tbz w8, #0x1f, 0x10a68a338 ; <+660> 0x10a68a2a4 <+512>: ldr x0, [sp] 0x10a68a2a8 <+516>: bl 0x10c0f31c4 ; symbol stub for: operator delete(void) 0x10a68a2ac <+520>: b 0x10a68a338 ; <+660> 0x10a68a2b0 <+524>: ldr x20, [x22] 0x10a68a2b4 <+528>: ldr w8, [x20] 0x10a68a2b8 <+532>: cmp w8, #0x32 0x10a68a2bc <+536>: b.gt 0x10a68a338 ; <+660> 0x10a68a2c0 <+540>: add x8, sp, #0x18 0x10a68a2c4 <+544>: mov x0, x19 0x10a68a2c8 <+548>: bl 0x10a689f18 ; Video::GetCorrelationId() 0x10a68a2cc <+552>: ldrsb w9, [x19, #0x67] 0x10a68a2d0 <+556>: tbnz w9, #0x1f, 0x10a68a2e0 ; <+572> 0x10a68a2d4 <+560>: add x8, x19, #0x50 0x10a68a2d8 <+564>: and x9, x9, #0xff 0x10a68a2dc <+568>: b 0x10a68a2e4 ; <+576> 0x10a68a2e0 <+572>: ldp x8, x9, [x19, #0x50] 0x10a68a2e4 <+576>: ldrb w10, [sp, #0x2f] 0x10a68a2e8 <+580>: sxtb w11, w10 0x10a68a2ec <+584>: ldp x12, x13, [sp, #0x18] 0x10a68a2f0 <+588>: cmp w11, #0x0 0x10a68a2f4 <+592>: add x11, sp, #0x18 0x10a68a2f8 <+596>: csel x11, x12, x11, lt 0x10a68a2fc <+600>: csel x10, x13, x10, lt 0x10a68a300 <+604>: mov w12, #0x8802 0x10a68a304 <+608>: stp x12, x8, [sp, #0x30] 0x10a68a308 <+612>: stp x9, x11, [sp, #0x40] 0x10a68a30c <+616>: str x10, [sp, #0x50] 0x10a68a310 <+620>: adrp x4, 7443 0x10a68a314 <+624>: add x4, x4, #0x6cf ; "%s::OnPropertyChange, videoId: %s, event not sent" 0x10a68a318 <+628>: add x5, sp, #0x30 0x10a68a31c <+632>: mov x0, x20 0x10a68a320 <+636>: mov x1, x19 0x10a68a324 <+640>: mov w2, #0x8532 0x10a68a328 <+644>: mov w3, #0x0 0x10a68a32c <+648>: bl 0x10bd842d4 ; auf::LogComponent::log(void const, unsigned int, unsigned int, char const, auf::LogArgs const&) 0x10a68a330 <+652>: ldrsb w8, [sp, #0x2f] 0x10a68a334 <+656>: tbnz w8, #0x1f, 0x10a68a1e4 ; <+320> 0x10a68a338 <+660>: ldr x8, [x19] 0x10a68a33c <+664>: ldur x8, [x8, #-0x18] 0x10a68a340 <+668>: add x0, x19, x8 0x10a68a344 <+672>: bl 0x10bd4ff44 ; rt::intrusive_ptr_release(rt::IReferenceCountable const) 0x10a68a348 <+676>: ldur x8, [x29, #-0x28] 0x10a68a34c <+680>: adrp x9, 7714 0x10a68a350 <+684>: ldr x9, [x9, #0x738] 0x10a68a354 <+688>: ldr x9, [x9] 0x10a68a358 <+692>: cmp x9, x8 0x10a68a35c <+696>: b.ne 0x10a68a374 ; <+720> 0x10a68a360 <+700>: ldp x29, x30, [sp, #0x90] 0x10a68a364 <+704>: ldp x20, x19, [sp, #0x80] 0x10a68a368 <+708>: ldp x22, x21, [sp, #0x70] 0x10a68a36c <+712>: add sp, sp, #0xa0 0x10a68a370 <+716>: ret
0x10a68a374 <+720>: bl 0x10c0f332c ; symbol stub for: stack_chk_fail 0x10a68a378 <+724>: bl 0x10bd9b084 ; std::1::__throw_bad_function_call[abi:v160006]()

Screenshot 2024-08-01 at 20 22 05