Git, CocoaPods, Xcode, Shell

[iOS - Swift] Xcode 빌드 옵션 개념 (scheme, configuration, export_method)

jake-kim 2022. 9. 3. 23:24

Xcode Scheme

ExProj라는 Scheme 하나가 있는 상태

  • 특정 빌드 환경이 미리 정해진 하나의 collection
    • configuration 정보
    • 하드웨어, 아키텍쳐 정보
    • 등등
  • Scheme을 원하는대로 추가할 수 있지만 Active Scheme은 하나만 존재
    • * Active Scheme이란? Build, Run, Test, Profile, Archive 할때 하나의 Scheme만을 선택할 수 있다는 의미

새로 만든 QA Scheme

cf) 생성된 Scheme을 빌드하고 싶을때는 Xcode에서 선택해서 빌드해도 되지만 terminal 명령어로도 가능

xcodebuild \
  -project ExProj.xcodeproj \
  -scheme QA \
  -destination 'platform=iOS Simulator,name=iPhone 13,OS=15.0'
  
  # 만약 workspace도 사용한다면 아래 추가
  # -workspace ExProj.xcworkspace

빌드 성공

Configuration

  • Build Configuration은 빌드할때 빌드의 환경 제어를 담당 (Debug인지 Release인지 설정하는 것)
  • 이것은 하나의 스킴안에서 관리되며, shift + cmd +  , 단축키를 이용하여 오픈
  • QA 스킴 > Run > Configuration 설정을 보면 현재 Debug로 되어있는 상태
    • Run할때 Debug환경으로 실행

  • Build Configuration을 눌러보면 Release도 존재

  • 왼쪽 탭 Archive에서도 Build Configuration이 존재하여, 빌드를 Archive하여 내보낼때도 여기서 configuration 설정을 먼저 해주어야함
    • Archive의 Build Configuration의 디폴트는 Release

Export Method

https://developer.apple.com/documentation/xcode/distributing-your-app-for-beta-testing-and-releases

  • Xcode에서 앱과 관련된 파일들을 이진 파일로 만드는 (.ipa) Archive작업을 완료하면 위와같은 export_method 옵션이 표출
    • App Store Connect: TestFlight를 사용하거나 App Store를 통해 배포하려는 경우
    • Ad Hoc: 등록된 장치의 제한된 수의 사용자에게만 배포하려는 경우
    • Enterprise: Apple Developer Enterprise Programe의 회원이고, 별도의 디바이스 등록없이 앱을 다운받을 수 있는 경우
    • Developemnt: 등록된 장치의 제한된 수의 사용자에게만 배포하려는 경우
  • 즉, 일일이 디바이스 등록이 필요하고 그 등록된 사용자만 앱을 설치할 수 있게 하려면 Development, Ad Hoc을 사용하고 애플에서 제공하는 Enterprise 회원이면 디바이스 등록 없이도 QA를 편리하게 사용할 수 있다는 의미

* 참고

https://developer.apple.com/documentation/xcode/distributing-your-app-for-beta-testing-and-releases

https://developer.apple.com/library/archive/featuredarticles/XcodeConcepts/Concept-Schemes.html