> ## Documentation Index
> Fetch the complete documentation index at: https://help.airbridge.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 트러블 슈팅 - iOS SDK

<AccordionGroup>
  <Accordion title="Swift 6환경에서 handleDeeplink 및 handleDeferredDeeplink 함수등에서 입력한 Closure가 호출되는 시점에 앱이 종료되는 현상">
    ## **문제 현상**

    Swift 6환경에서 `handleDeeplink` 및 `handleDeferredDeeplink` 함수등에서 입력한 Closure가 호출되는 시점에 앱이 크래시되는 현상

    영향을 받는 함수

    * `Airbridge.handleDeeplink`
    * `Airbridge.handleDeferredDeeplink`
    * `Airbridge.createTrackingLink`
    * `Airbridge.click`
    * `Airbridge.impression`
    * `AirbridgeOptionBuilder.setOnAttributionReceived`

    ## 발생 원인

    Swift 5.x 이하에서는 멀티스레드 환경에서 여러 스레드가 동시에 같은 메모리에 접근하는 데이터 레이스 위험이 있어도 컴파일러가 경고만 주었으나 Swift 6 환경에서는 컴파일러 단계에서 다른 스레드(Actor 격리 영역)로 넘어가서 실행될 수 있는 모든 데이터와 클로저는 스레드 간 이동이 안전하다는 것을 반드시 증명해야 하며, 그렇지 않으면 컴파일 에러를 발생시키거나 하위 호환성 빌드 시 런타임 크래시를 유발합니다.

    ## 해결 방법

    에어브릿지 SDK에서 클로저를 파라미터로 받는 함수를 사용할 때, 클로저 내부 변수 앞에 **`@Sendable`** 어노테이션을 명시적으로 추가하여 데이터가 스레드 간에 안전하게 전달됨을 컴파일러에게 알려야 합니다.

    ```swift lines theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
    Airbridge.handleDeferredDeeplink() { @Sendable url in 
        if let url {
            // Deep link handling logic
        }
    }
    ```
  </Accordion>

  <Accordion title="Deep Link Install(Open)이 발생하지 않고 Organic Install(Open)이 발생합니다.">
    ##### 문제 원인

    iOS Lifecycle의 `didBecomeActive` 이전에 `trackDeeplink`를 호출해야 Deep link Install 혹은 Deep link Open이 발생합니다. `didBecomeActive` 이후에 `trackDeeplink`를 발생했을 경우에 Organic Install 혹은 Open이 발생합니다.

    ##### 발생 현상

    `Deeplink Install` 혹은 `Deeplink Open`이 발생하지 않고 `Install(Open)`이 발생 합니다.

    ##### 해결 방법

    `didBecomeActive` 이전에 `trackDeeplink` 를 호출 해 주세요. `AirbridgeOptionBuilder`에서 `setLogLevel` 을 `Debug`로 설정하면 다음과 같은 로그를 순차적으로 확인 할 수 있습니다.

    ```markdown lines theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
    Following app state detected: state=didDeeplink
    Following app state detected: state=didBecomeActive
    ```
  </Accordion>

  <Accordion title="4.9.0 업데이트시에 Airbridge Symbol을 찾을 수 없는 현상">
    ## 문제 현상

    4.x.x에서 4.9.0으로 SDK를 업데이트하여 빌드 했을 때, \`Undefined symbol: static Airbridge.Airbridge.\~\` 오류로 인해서 빌드가 되지 않습니다.

    ## 발생 원인

    Xcode 빌드 캐시와 업데이트된 바이너리 간의 불일치로 인해 발생하는 링크 오류로 발생됩니다.

    ## 해결 방법

    Xcode에서 Clean Build Folder 를 실행한 후 재빌드해 주세요.
  </Accordion>

  <Accordion title="CocoaPods이 4.7.0 버전을 찾지 못하는 문제">
    4.7.1배포 도중에 4.7.0이 삭제되는 이슈가 발생하여, 4.7.0에 대한 버전이 CocoaPods에 재배포가 되었습니다.

    CocoaPods이 버전을 찾지 못하거나, 설치한 Pods에 대해서 Checksum 오류가 표시된다면 다음을 진행 해 주세요.

    ```bash lines theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
    pod cache clean --all
    pod repo remove trunk
    pod setup 

    pod install --repo-update
    ```
  </Accordion>

  <Accordion title="저장된 암호의 도메인이 `airbridge.io` 또는 `abr.ge`로 보이는 문제">
    ## 문제 현상

    [Password AutoFill](https://developer.apple.com/documentation/security/password-autofill) 기능으로 저장된 암호의 도메인이 `airbridge.io` 또는 `abr.ge`로 보이는 현상이 앱을 사용하는 유저에게 발생할 수 있습니다.

    ## 발생 원인

    에어브릿지 SDK의 딥링크를 설정한 후에 Password AutoFill 기능을 활용하면 도메인이 에어브릿지 딥링크의 앱 링크(applinks) 도메인 `airbridge.io` 또는 `abr.ge`로 저장됩니다.

    ## 해결 방법

    Password AutoFill에 사용하는 webcredentials 도메인을 설정하면 문제를 해결할 수 있습니다.

    1. 암호를 저장하는 도메인을 준비해주세요.
    2. 아래 JSON을 `https://YOUR_DOMAIN/.well-known/apple-app-site-association`에 `Content-Type: application/json`으로 호스팅합니다. 준비한 도메인이 `YOUR_DOMAIN`입니다.

    [애플 개발자 대시보드](https://developer.apple.com/account/resources)의 \[Identifiers]>\[YOUR\_APP]에서 App ID Prefix, Bundle ID를 확인할 수 있습니다.

    ```json lines theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
    {
        "webcredentials": {
            "apps": ["YOUR_APP_ID_PREFIX.YOUR_BUNDLE_ID"]
        }
    }
    ```

    3. Xcode의 \[YOUR\_PROJECT]>\[Signing & Capabilities]로 이동합니다.
    4. '+ Capability'를 클릭해 Associated Domains를 추가합니다. Associated Domains에 `webcredentials:YOUR_DOMAIN`을 입력합니다.
  </Accordion>

  <Accordion title="Xcode에서 Upload Symbol Failed 경고 메시지가 뜨는 현상">
    ## 문제 현상

    App Store에 앱 업로드 시 Xcode에 Airbridge framework에 dSYM이 포함되어 있지 않다는 경고 메세지가 나타나는 현상

    ## 발생 원인

    Airbridge iOS SDK에서 dSYM을 지원하고 있지 않습니다.

    ## 해결 방법

    다음 버전에서 dSYM 지원을 개발 중에 있습니다. 해당 경고는 무시해 주세요.
  </Accordion>
</AccordionGroup>

<link rel="alternate" hrefLang="en" href="https://help.airbridge.io/en/developers/troubleshooting-ios-sdk-v4" />

<link rel="alternate" hrefLang="ko" href="https://help.airbridge.io/ko/developers/troubleshooting-ios-sdk-v4" />
