Your app still compiles against an older SDK, and a beta TestFlight build reaches the image feature. The call now ends in a runtime error. Rebuilding against the public macOS 27 SDK closes the remaining escape hatch because ImageCreator no longer compiles.
Apple offers two directions: present the system Image Playground sheet or integrate another service. Those paths differ in UI ownership, network use, data handling, accessibility, cost, and failure recovery.
Confirm the macOS 27 ImageCreator migration boundary
Apple’s deprecation notice says beta OS builds still compile with warnings, but ImageCreator fails in TestFlight at runtime. Public version 27 SDK builds do not compile, and the feature stops working for users on the new platforms.
Search source, generated interfaces, feature flags, tests, examples, and analytics names for the class and its output types. Record the screen, initiating user action, prompt source, expected result, fallback, and whether any code assumes silent background generation.
One inventory row per call site
- User job and entry point.
- Prompt or concept source.
- Foreground or background expectation.
- Output insertion and persistence.
- Cancel, retry, and error behavior.
- Privacy, attribution, and deletion policy.
Choose the system sheet when the user owns the moment
The Image Playground framework presents a system interface for choosing concepts, styles, and results. Apple’s WWDC migration session shows how that foreground interaction replaces the removed path.
The sheet changes the sequence. Your app supplies descriptive concepts and presentation context, while the system manages creation interaction. Design the feature around present, wait, accept or cancel, insert, and save.
Choose another service only with a new disclosure
The migration begins with a product decision: hand the interaction to Apple’s sheet or own a separate generation service. A third-party or owned service can preserve automation or offer styles the system sheet does not expose, but it also introduces network transport, authentication, retention, moderation, rate limits, cost, latency, and jurisdiction questions.
Write the data-flow disclosure before integrating the endpoint. State which content leaves the device, why, how long it remains, how the user deletes it, and what happens when the service is unavailable.
Two replacement paths
System sheet: foreground, user-reviewed, system-managed interaction, simpler on-device privacy story.
External service: app-managed workflow, broader automation potential, explicit network and retention contract.
A cancelled sheet must be a clean outcome
A cancelled sheet must leave the document unchanged, while an accepted image needs a clear insertion point and provenance record. Treat cancellation as a normal branch rather than an error alert.

Test keyboard focus, VoiceOver labels, reduced motion, window resizing, sheet dismissal, app backgrounding, document close, repeated presentation, and an accepted output that arrives after the original selection changed.
Keep generated output separate from source content
Store the final asset, generation route, user approval time, prompt or concept reference, and any required provenance label. Do not overwrite a source image or mark the document saved until the accepted output has reached durable storage.
If the user can regenerate, decide whether each result creates a new version or replaces an uncommitted candidate. Make undo restore the prior document state without calling the generator again.
Build a failure table before replacing code
Cover unavailable capability, user cancellation, generation failure, out-of-storage, app termination, malformed response, content refusal, network timeout, and a returned asset that cannot decode. Each row needs a user message, cleanup action, retry policy, and telemetry event.
Do not auto-switch from the system sheet to a network service. That fallback changes privacy and cost, so it needs an explicit user choice and product policy.
Test the public SDK and installed app
A compile pass on an old branch does not prove the migration. Build with Xcode 27, install on macOS 27, trigger every former call site, cancel once, accept once, relaunch, reopen the document, and inspect the stored output.
Capture the serving source revision, app build, OS build, selected route, input state, accepted asset hash, and reopened document result. Keep an older supported macOS check if the app still ships there.
Stage the migration without splitting behavior
Put the replacement behind one product-owned route that every former entry point calls. Keep the decision about system sheet versus network service there, while each caller supplies document context, presentation anchor, and completion handling.
Release instrumentation before removal so the team can see which entry points still invoke ImageCreator and which replacement outcomes users reach. Do not ship both generators as silent fallbacks; parallel behavior makes privacy disclosure, support, and document recovery ambiguous.
Remove the old framework only after source search, runtime telemetry, and installed-path tests agree that no call site remains. Preserve that evidence so a later maintainer knows why a background workflow became a foreground approval step.
Archive the final call-site inventory with the public build record.
Our Core AI adoption guide covers model boundaries. The background inference guide covers resumable work, while the Rosetta migration covers another version 27 removal. Visit the Desktop hub for adjacent changes.