6.11 · Launch arguments, the scene callbacks, and reading a binary and its plists
Before and around launch the app is shaped by inputs you can set from outside and by files you can read with command-line tools.
Mental model. A process starts with arguments, an environment, a binary and an Info.plist. All four can be changed or inspected from a terminal, which makes launch behaviour testable.
Launch inputs
Arguments that become defaults, and what scene-based callbacks replace.
- How do launch arguments and environment variables reach an app, and why does “-key value” override UserDefaults?
A process receives arguments (CommandLine.arguments) and an environment (ProcessInfo.processInfo.environment) from whoever starts it. Foundation adds a twist… - In a scene-based app, which callbacks fire at launch and on activation, and which app delegate callbacks go silent?
In an app that declares a scene manifest, the launch sequence observed on the iOS 27.2 simulator with a UIKit app logging every callback was…
Inspecting what you ship
Reading a binary and validating Info.plist from the command line.
- How do you inspect what a binary links, what load commands it has and how it is signed with command-line tools?
Three tools answer most launch and packaging questions without Xcode. otool -L binary lists the dynamic libraries the binary will ask dyld to load (the check… - How do you validate, read and convert an Info.plist or entitlements file from the command line, and what are the two plist formats?
A property list is either XML (human-readable and diff-friendly) or binary (compact and fast to parse, starting with the bytes bplist00); both hold the same…
More in iOS platform internals
- 6.1 · The process, the sandbox, entitlements and privacy prompts
- 6.2 · App and scene lifecycle in UIKit and SwiftUI
- 6.3 · The run loop, its modes, and the main-thread contract
- 6.4 · The launch path: dyld, initialisers and the first frame
- 6.5 · Background modes, BGTaskScheduler and background transfers
- 6.6 · Memory warnings, jetsam and the watchdog
- 6.7 · Info.plist, URL schemes, universal links and associated domains
- 6.8 · App groups, keychain groups and extensions as separate processes
- 6.9 · How a process dies, what it costs, what confines it and what seals it
- 6.10 · Threads and run loops, observers, and what actually runs in a custom mode