# 새 Xcode 버전으로 마이그레이션한 후 발생하는 오류

> Resolve errors caused by migrating to a new Xcode version.

## 증상##symptoms

이전 버전에서 새 버전의 Xcode로 마이그레이션한 후 오류가 발생합니다. 다음 UBA/Xcode 로그의 자주 발생하는 오류 메시지와 경고는 이 문제의 증상입니다.

* 컴파일러가 실패하고 기호를 찾을 수 없습니다.
  * ```text
    ld: symbol(s) not found for architecture arm64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    ```
* iOS 배포 타겟 버전이 지원되지 않습니다.
  * ```text
    warning: The iOS deployment target 'IPHONEOSDEPLOYMENTTARGET' is set to 10.0, but the range of supported deployment target versions is 11.0 to 16.1.99
    ```
* 서명하려면 선택되지 않은 개발팀이 필요합니다.
  * ```text
    error: Signing for "gRPC-C++-gRPCCertificates-Cpp" requires a development team. Select a development team in the Signing & Capabilities editor. (in target 'gRPC-C++-gRPCCertificates-Cpp' from project 'Pods')
    ```

## 원인##causes

일부 컴포넌트나 패키지, 플러그인이 새로운 버전의 Xcode와 호환되지 않는 경우, Xcode 버전을 변경할 때 이러한 오류가 종종 나타납니다.

## 해결 방법##resolution

첫 번째 단계에서는 로컬 캐시 라이브러리가 없는 저장소의 클린 클론을 사용하여 로컬에서 배치 모드로 빌드하고, Build Automation 타겟에서 수행하는 것 외에 추가 변경 사항을 적용하지 않고 Xcode 프로젝트를 빌드할 수 있는지 확인합니다.

로컬에서 배치 모드로 빌드를 완료한 후 로컬에서 사용하는 `cocoapods` 버전이 Build Automation에서 사용하는 버전과 일치하는지 확인합니다. 버전이 일치하지 않으면 다음 사전 빌드 스크립트를 사용하여 적절한 버전을 설치합니다. 다음은 `cocoapods` 버전 1.12.0의 예제입니다.

> **Note:**
>
> **참고**: Unity Dashboard의 빌드 대상에 대한 **Advanced Configuration** 탭에서 사전 빌드 스크립트를 설정할 수 있습니다.

```text
gem install cocoapods -v 1.12.0
echo "current cocoapods version: "
gem which cocoapods
```

![‘UBA - Cocoapods 빌드 스크립트’](/api/media?file=/build-automation/media/images/build-automation/cocoapods-script.png "UBA - Cocoapods 빌드 스크립트")

로컬 버전의 `cocoapods`를 확인하려면 터미널에서 다음 커맨드를 사용합니다.

```text
pod --version
```

> **Note:**
>
> **참고**: 빌드하기 전에 로컬 Xcode 프로젝트에 변경 사항을 적용한 경우에는 Build Automation에서 프로젝트에 해당 변경 사항을 함께 적용해야 합니다.

특정 버전에 `cocoapods`를 고정하여 모든 빌드에서 일관된 버전을 사용하도록 합니다. [Unity용 외부 종속성 관리자](https://github.com/googlesamples/unity-jar-resolver)와 같은 외부 툴을 사용하거나 직접 `Dependencies.xml` 파일을 편집할 수 있습니다. 이 툴에서 7.0보다 큰 버전을 사용하는 `~> 7.0` 등의 표현식이 아닌 `7.0.0`과 같은 정확한 버전을 사용하는 경우 종속 패키지 버전이 변경되지 않고 새로운 버그가 도입되지 않도록 해야 합니다.

해당 문제가 해결되지 않았다면 지원팀이 추가 조사를 진행할 수 있도록 지원 티켓을 제출합니다. Unity Dashboard에서 티켓을 제출하려면 **DevOps**를 열고 **Help & Support** > **Ticket** > **File a ticket**을 선택합니다.

## 추가 리소스##additional-resources

* [Cocoapods 기술 자료(외부)](https://cocoapods.org/)
* [Apple Xcode 기술 자료(외부)](https://developer.apple.com/documentation/xcode)
