Section 6/221 menit
6. Optimasi Xcode Build Settings
6. Optimasi Xcode Build Settings
Debug Build Settings yang Kritis
Buka Build Settings di target Xcode, pastikan pengaturan ini benar untuk skema Debug:
swift
# Optimization Level
Swift Compiler - Code Generation → Optimization Level
Debug: -Onone (tidak ada optimasi — compiler cepat, runtime normal)
Release: -O (optimasi penuh, compiler lebih lambat)
# Compilation Mode
Swift Compiler - Code Generation → Compilation Mode
Debug: Incremental (kompilasi per-file, incremental build efektif)
Release: Whole Module (WMO, seluruh modul dalam satu pass)
# Debug Information Format
Build Settings → Debug Information Format
Debug: DWARF with dSYM File → ganti ke DWARF (tanpa dSYM)
Release: DWARF with dSYM File (tetap, untuk symbolication crash)
Menghilangkan dSYM di Debug menghemat 30–50% waktu linking.
xcconfig untuk Konsistensi Tim
Jangan set build settings satu per satu di GUI — gunakan xcconfig agar mudah di-review di git dan konsisten di semua mesin:
swift
# Configs/Debug.xcconfig
SWIFT_OPTIMIZATION_LEVEL = -Onone
SWIFT_COMPILATION_MODE = incremental
DEBUG_INFORMATION_FORMAT = dwarf
ONLY_ACTIVE_ARCH = YES
ENABLE_TESTABILITY = YES
GCC_OPTIMIZATION_LEVEL = 0
SWIFT_ENABLE_INCREMENTAL_COMPILATION = YES
# Nonaktifkan fitur yang tidak diperlukan di debug
ENABLE_BITCODE = NO
VALIDATE_PRODUCT = NO
swift
# Configs/Release.xcconfig
SWIFT_OPTIMIZATION_LEVEL = -O
SWIFT_COMPILATION_MODE = wholemodule
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
ONLY_ACTIVE_ARCH = NO
ENABLE_TESTABILITY = NO
GCC_OPTIMIZATION_LEVEL = s
ONLY_ACTIVE_ARCH
Setting ini memastikan Xcode hanya mengkompilasi untuk arsitektur perangkat/simulator yang sedang digunakan (arm64 atau x86_64), bukan keduanya sekaligus.
swift
Build Settings → Build Active Architecture Only
Debug: YES ← pastikan ini!
Release: NO (perlu fat binary untuk distribusi)