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.

  1. How do launch arguments and environment variables reach an app, and why does “-key value” override UserDefaults? 6.11.1 · L3
    A process receives arguments (CommandLine.arguments) and an environment (ProcessInfo.processInfo.environment) from whoever starts it. Foundation adds a twist…
  2. In a scene-based app, which callbacks fire at launch and on activation, and which app delegate callbacks go silent? 6.11.2 · L3
    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.

  1. How do you inspect what a binary links, what load commands it has and how it is signed with command-line tools? 6.11.3 · L5
    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…
  2. How do you validate, read and convert an Info.plist or entitlements file from the command line, and what are the two plist formats? 6.11.4 · L2
    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