다음을 통해 공유


iOS 빌드 문제 해결

중요

Visual Studio App Center는 2025년 3월 31일에 사용 중지될 예정입니다. Visual Studio App Center가 완전히 사용 중지될 때까지 계속 사용할 수 있지만 마이그레이션을 고려할 수 있는 몇 가지 권장 대안이 있습니다.

지원 타임라인 및 대안에 대해 자세히 알아보세요.

Xcode 체계를 찾을 수 없음

또는 를 xcworkspacexcproject 빌드하려면 공유 Xcode 체계가 필요합니다. Xcode 스키마는 로컬로 저장되므로 Xcode에서 액세스할 수 있습니다. 기본적으로 스키마는 다른 사용자와 공유되거나 소스 제어에 포함되지 않습니다.

Xcode에서 체계를 공유하려면 다음 단계를 사용합니다.

  1. 제품 > 구성표 > 관리 체계를 선택합니다.
  2. xcproject/xcworkspace에 대한 체계를 공유로 설정합니다.
  3. 스키마의 컨테이너는 빌드하려는 Xcode 프로젝트 또는 작업 영역으로 설정해야 합니다.
  4. 소스 제어에 .xcscheme 파일을 추가하고 App Center에서 액세스할 수 있도록 원격 리포지토리 푸시합니다.

스키마를 공유로 표시

경고

폴더 xcshareddata/xcschemes/ 가 파일에 없는지 확인합니다 .gitignore . 여기서 파일은 .xcscheme Xcode에 의해 저장됩니다. App Center는 이러한 파일을 사용하여 프로젝트를 제대로 빌드합니다. 를 다른 폴더로 내보내 .xcscheme 는 것만으로는 작동하지 않습니다.

"clang: error: linker 명령이 종료 코드 1로 실패했습니다."로 iOS 빌드가 실패합니다.

이 오류는 작업 영역 대신 xcodeproj를 사용하여 App Center를 빌드하여 발생할 수 있습니다. 프로젝트에 CocoaPods를 추가할 때 App Center에서 빌드할 때 작업 영역 사용으로 전환합니다.

표시기: 빌드 로그에서 다음 줄을 찾습니다.

ld: library not found for -lPods-GarageController
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** ARCHIVE FAILED **

이 오류를 해결하려면 프로젝트의 빌드 구성을 열고 저장을 클릭합니다. App Center는 향후 빌드에 대해 작업 영역을 자동으로 올바르게 선택합니다.

iOS 서명 문제 설명

참고

비 ascii 문자를 사용하는 서명 ID는 빌드에서 지원되지 않습니다.

프로비저닝 프로필 및 인증서를 처리하는 것은 어려운 과정일 수 있습니다. 다음 팁은 iOS 앱에 성공적으로 서명하는 데 도움이 됩니다.

  1. 프로젝트에 서명 변경 내용을 푸시한 후 App Center에 빌드 구성을 저장합니다. App Center에서 모든 분기의 빌드 구성은 Xcode 프로젝트의 두 값인 CODE_SIGN_STYLEDEVELOPMENT_TEAM (폴더의 파일에 .xcodeproj 설정됨)을 project.pbxproj 저장합니다. 수동 서명과 자동 서명 간에 변경하거나 개발 팀을 전환할 때마다 변경 내용을 푸시한 후 App Center에 빌드 구성을 저장해야 합니다. 푸시 후 저장하지 않으면 서명 오류로 빌드가 실패할 수 있습니다.

  2. 자동 서명을 사용할 때 올바른 프로비전 프로필을 끌어서 놓습니다. Xcode의 서명 아래에 있는 대상의 일반 탭에서 Xcode 관리 프로필 옆에 있는 정보 아이콘을 클릭합니다. 그러면 프로필 정보가 포함된 팝오버가 표시됩니다. 아래와 같이 왼쪽 위에 있는 PROV 아이콘을 클릭하고 원하는 위치로 끕니다.

  3. 수동 및 자동 서명을 사용할 때 App Center의 현재 지원되는 옵션을 기록해 둡다. App Center는 수동 iOS 앱 서명을 완벽하게 지원하므로 모든 유형의 프로필 또는 인증서를 사용할 수 있습니다. App Center에 업로드하는 프로비저닝 프로필 및 인증서가 프로젝트에서 지정한 것과 일치하는지 확인합니다. Xcode에서 자동으로 서명 관리를 사용하도록 설정한 경우 App Center는 개발자 인증서 및 프로필(배포가 아님)을 사용하여 앱 서명을 지원합니다. App Center에 업로드할 때 Xcode에서 자동 생성된 프로비저닝 프로필을 사용해야 합니다.

여전히 문제가 발생?

문제를 해결하고 빌드 등록 및 실행을 위해 다음 단계를 권장합니다.

  1. Xcode 프로젝트에서 수동 서명을 설정하고 로컬에서 작동하는지 확인합니다.
  2. 확인되면 변경 내용을 커밋하고 리포지토리에 푸시합니다.
  3. Xcode 대상에서 선택한 프로비저닝 프로필 및 인증서를 준비하고 App Center 빌드 구성에 업로드합니다.
  4. 가장 중요한 것은 새 인증서 및 프로필을 빌드 구성에 저장하기 전에 프로젝트의 최신 상태를 푸시했는지 확인합니다.

내 .ipa 파일은 어디에 있나요?

Xcodebuild는 xcrun과 달리 빌드에 .ipa 서명되지 않은 경우 파일 생성을 허용하지 않습니다. 서명되지 않은 빌드는 대신 을 .xcarchive 생성합니다. 서명되지 않은 빌드의 아티팩트를 사용하여 파일을 생성 .ipa 하려는 경우 파일을 사용하여 .xcarchive 생성할 수 있습니다.

Xcode

Xcode를 사용하는 내 iOS 앱이 잘못된 비트코드 버전 오류로 인해 실패함

에서 빌드가 실패 error: Invalid bitcode version (Producer: '802.0.38.0_0' Reader: '800.0.42.1_0')하는 경우 프로젝트보다 최신 버전의 Xcode에서 빌드한 라이브러리 또는 Pod를 사용합니다. App Center에서 프로젝트를 업데이트하고 구성을 빌드하여 최신 버전의 Xcode를 사용하거나 일치하는 버전의 Xcode로 컴파일되는 문제가 있는 라이브러리의 대체 버전으로 전환할 수 있습니다.

iOS 앱이 테스트를 실행하지 못함

테스트가 실패하는 일반적인 이유는 링커 명령이 다음과 유사한 오류를 발생하기 때문입니다.

 ld: directory not found for option iPhoneSimulator10.3.sdk/Developer/Library/Frameworks 
  ❌ ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later (@rpath/XCTest.framework/XCTest) for architecture x86_64 
  ❌ clang: error: linker command failed with exit code 1 (use -v to see invocation)  

이 오류의 원인은 Apple Mach-O 링커 의 연결 유형이 정적 라이브러리로 설정되지 않았기 때문일 수 있습니다. 앱을 성공적으로 빌드하고 테스트하려면 테스트 대상에서 Apple Mach-O 링커의 연결 유형이 정적 라이브러리로 설정되어 있는지 확인합니다.

Apple Mach-O 링커

Xcode 9에서 CocoaPods를 사용하여 iOS 빌드가 계속 실패합니다. 어떻게 해야 하나요?

Pod 프로젝트의 서명 구성이 기본 프로젝트의 서명 구성과 다르기 때문일 수 있습니다. Pod가 리포지토리에 체크 인되어 있나요? 그렇다면 Pods 프로젝트는 기본 프로젝트와 동일한 서명 방법을 사용해야 합니다.

Pod가 체크 인되지 않은 경우 다른 문제가 있을 수 있습니다. 이 GitHub 문제 에서 빌드 전 스크립트와 함께 사용할 수 있는 몇 가지 해결 방법이 있습니다.

프로젝트를 Xcode 10 베타로 업그레이드했으므로 대상 간의 종속성 주기 오류로 인해 앱이 빌드되지 않습니다.

Xcode 10의 새 빌드 시스템은 빌드에서 종속성 주기를 검색하고 있는 경우 빌드에 실패합니다.

빌드를 수정하는 방법에 대한 자세한 내용은 일반적인 유형의 종속성 주기 해결에 대한 Apple 설명서를 참조하세요.