Browse Questions
- | Problem | Cause | Fix | |---------|-------|-----| | #if SIT always falls through to #else | Flag added to Other Swift Flags instead of Active Compilation Conditions | Move flag to the correct…
- Combine subscriptions and NotificationCenter block observers cause leaks when the observation token is stored on self while the callback closure captures self strongly.
- - Instruments — CPU Profiler, Time Profiler, Allocations, Leaks, Core Data - Xcode Memory Graph — find retain cycles and leaked objects - View Hierarchy Debugger — spot off-screen renders,…
- Each feedback type has a very different responsibility — don't let them overlap.
| Problem | Cause | Fix |
|---|---|---|
#if SIT always falls through to #else | Flag added to Other Swift Flags instead of Active Compilation Conditions | Move flag to the correct build setting |
| Firebase crashes at launch | Plist file not included in Target Membership | Re-add plist and check Target Membership |
| All environments overwrite each other on device | Bundle identifiers are identical across configurations | Set a unique bundle ID per configuration |
| App name doesn't change per environment | CFBundleDisplayName not added or still hardcoded | Add $(APP_DISPLAY_NAME) to CFBundleDisplayName in Info.plist |
| Firebase Auth rejects requests | Bundle ID in app doesn't match the one registered in Firebase Console | Ensure Firebase Console bundle ID matches exactly per environment |