Git, CocoaPods, Xcode, Shell
[iOS - Swift] Xcode 빌드 옵션 개념 (scheme, configuration, export_method)
jake-kim
2022. 9. 3. 23:24
Xcode Scheme
- 특정 빌드 환경이 미리 정해진 하나의 collection
- configuration 정보
- 하드웨어, 아키텍쳐 정보
- 등등
- Scheme을 원하는대로 추가할 수 있지만 Active Scheme은 하나만 존재
- * Active Scheme이란? Build, Run, Test, Profile, Archive 할때 하나의 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
- 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