iOS 앱 배포와 출시
[iOS - swift] Xcode에서의 configuration별 build Settings 설정값 (최적화)
jake-kim
2021. 5. 5. 03:12
아래에서는, Alpha가 배포용도로 사용될 경우를 가정하여 설명
- 이상적인 configuration설정 방법 - 6개의Configuration
- 디버그용도 (Development provisioning profile): Debug - Alpha / Debug - Beta / Debug - Production
- 배포용도 (Adhoc, Appstore provisioning profile): Release - Alpha / Release - Beta / Release - Production
Build Active Architecture Only
- Yes: 디버그 용도- 빠른 속도, 단 32bit아키텍처만 지원
- 32bit 아키텍처: armv7, armv7s
- No: 배포 용도- 64bit 아키텍처도 지원
- 64bit 아키틱쳐: arm64

Build Options - Debug Information Format
- 컴파일러가 소스코드를 해석하면서 Debug Symbol을 생성
* Debug Symbol: 컴파일된 바이너리 코드에 어떤 라인이 소스코드와 매핑되는지에 관한 정보 - Firebase에서의 Crashlytics와 같은 것을 사용하기 위해, 배포버전에 with dSYM file 옵션 확인

Enable Testability
- Unit test코드에 사용되는 import @testable 사용에 관한 활성화 설정

Validate Built Product
- 제품에 관한 유효성 검사를 실시한 것인지 여부
// 유효성 검사 결과, 유효하지 않은 경우에 관한 로그
iPhone/iPod Touch: icon.png: icon dimensions (56 x 56) don't meet
the size requirements. The icon file must be 57x57 pixels, in .png
format (-19014)
- 배포버전에 필요하므로 yes 설정

Apple Clang - Code Generation
- C언어를 통한 코드 생성에서 빌드 속도에 관한 설정
- 배포 - Fastest, Smallest
- 디버그 - None

Apple Clang - Preprocessing
- Enable Foundation Assertions: 경고를 띄우는 것
- debug - Yes
- 배포 - No

- Preprecoessor Macros: debug에서만 flag값이 활성화되도록 세팅

Swift Compiler
- Code Generation
- Compilation Mode: 배포는 Whole, debug는 Incremental
- Optimization Level: 배포는 Optimize for speed, debug는 No Optimization

Custom Flags
- debug에만 DEBUG flag값이 있도록 설정 (디폴트)

Signing
- All 탭 클릭 > signing 검색
- Debug-Alpha, Debug-Beta, Debug-Production: iOS Developer
- Release-Alpha, Release-Beta, Release-Production: iOS Developer

cf) build scheme
만약 Debug-Alpha인 경우
- 아래처럼 Run, Test, Analyze에는 Debug-Alpha 설정
- Profile, Archive에는 Release-Alpha로 설정

* 참고
samwize.com/2015/01/14/what-is-build-active-architecture-only/