관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] Xcode에서의 configuration별 build Settings 설정값 (최적화) 본문

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

디버그 용도만 No로 설정

Build Options - Debug Information Format

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

디버그에는 dSYM파일 x

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/

developer.apple.com/library/archive/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

useyourloaf.com/blog/xcode-322-validate-built-product/

Comments