Choose the model path from your product constraints: assess an on-device model for offline work or device-side processing, Private Cloud Compute for Apple-managed cloud inference, and a compatible provider when you need a model or server-side tools you select. The framework can offer a common integration surface; it does not make privacy, availability, or model behavior equivalent.

This guide is for independent iOS developers choosing a path for text generation or an intelligent feature.
It also helps the person responsible for privacy disclosures map where request data goes.
Small teams maintaining build and release environments can use it to plan macOS validation.

Updated October 25, 2026; framework details checked against Apple's Foundation Models documentation, its framework update notes, and Apple's Xcode system requirements.

01

Start with the job, then choose the model path

Foundation Models framework model selection is an architecture decision, not a toggle between equivalent engines. First write down what the app must do when the network is unavailable, what information the request contains, and which parts of model behavior the product team must control.

The relevant layers are distinct:

  • Foundation Models framework: Apple's framework and API surface for integrating supported model capabilities into an app. Check the current documentation for API status, platform support, and implementation requirements.
  • Apple-provided model capability: The model capability exposed through Apple's system, subject to its availability and the behavior documented for the relevant operating system.
  • Private Cloud Compute (PCC): Apple's cloud-compute route for supported Apple intelligence features. It is not the same as local execution, and its data handling must be evaluated from Apple's security documentation.
  • A provider you select: A model service integrated through the provider path described by Apple. The provider, its service terms, and your app's integration add their own responsibilities.
  • Your app's server: An optional application backend. It may manage authentication, business logic, or tools, but it is a separate system from both PCC and the model provider.

Apple's WWDC26 framework update and Foundation Models updates describe the framework's direction and supported capabilities. The official session on bringing an LLM provider to the framework is the relevant reference for the provider integration path. Recheck the current documentation before committing to an API: a shared interface does not guarantee identical model output, privacy boundaries, or service behavior.

02

Compare the operational boundary, not just the API

Use the comparison below to decide what to prototype first. Treat it as an architecture comparison, not a blanket claim that a path is available on every device or for every task.

Decision factor On-device model path Private Cloud Compute Selected provider
Where inference happens On the supported device when the model capability is available Apple's cloud-compute environment for supported capabilities Provider-operated service, according to that provider's architecture
Network dependency A local route can support a workflow without sending its inference request to your own server, but verify model availability and the full app flow Requires a working route to the relevant Apple service; do not promise operation without connectivity Normally depends on the provider's service and network path
Data responsibility The app still decides what it stores, displays, or sends elsewhere Review Apple's PCC security material and your app's own data flow Review the provider's privacy terms, retention rules, logging, and processing locations
Model control Use the system capability and its documented controls Use the Apple-provided cloud capability and documented controls Potentially more choice over model and service behavior, depending on the provider protocol
Operational work Handle availability, system requirements, and a fallback for unsupported or unavailable states Handle network and service failures, disclose the route, and test failure states Handle provider credentials, service terms, request failures, and integration maintenance

The table cannot determine the answer without the product's actual request flow. A notes assistant that must work in airplane mode has a different primary constraint from a feature that calls a private business tool on a server. A third-party provider may offer controls that a system model does not, but that flexibility brings provider-specific review and operational work.

For system-model readiness, Apple documents availability through SystemLanguageModel. Its availability reference is a concrete place to check whether the system reports the capability as available or unavailable and why. Do not turn a successful build into a claim that every user's device will have the same runtime state.

03

Privacy depends on the actual request route

“AI feature” is not a useful privacy boundary. The relevant question is what leaves the device, where it goes, and which party handles it. A prompt may include more than the text typed into a field: the app might add prior conversation turns, account context, retrieved records, or tool results.

For a device-side path, verify that the specific work is performed by the on-device capability and that the app does not separately transmit the same content to its own backend, analytics, or another service. Local inference alone does not describe the whole data lifecycle. Storage, diagnostics, crash reports, and user-generated content still need review.

For PCC, distinguish Apple's cloud-compute route from a provider that your team chooses. Read Apple's PCC security documentation alongside the integration documentation for adding server-side intelligence with PCC. These materials define Apple's described security and integration model. They do not remove the need to document what your app sends, obtain any required user consent, or review your own logging and storage.

For a selected provider, your team must review that provider's formal privacy and service documentation. Establish whether requests, context, or outputs are retained; whether they are used for service improvement; who can access them; and what happens when the provider or its subprocessors change their terms. Do not promise “absolute privacy” based on the use of a framework API.

Review reminder: Write a data-flow note for each path before the first external test. If the note cannot identify every recipient of prompt context and tool output, the privacy review is not complete.

The user-facing disclosure should match observed behavior, not the architecture diagram alone. If the app can route requests differently by task, tell users what information the app sends for each relevant operation. If a request is intentionally kept on-device, test that an error fallback does not silently route it to a cloud service.

04

Network dependence changes the failure plan

An offline-capable design and a cloud-backed design fail in different ways. A local feature may be unavailable because the system capability is not ready or supported in the current environment. A cloud route may fail because the device is offline, the connection is unstable, or the service returns an error. A fallback is only reliable if the app tells the user what happened and preserves the intended privacy boundary.

Decide the route against these product conditions:

  • The feature must complete without a network: Prototype the on-device path first. Check model availability at runtime, keep the interface usable when inference is unavailable, and avoid claiming that all app functions work offline if account, sync, or retrieval requests still require a server.
  • The task can wait for connectivity: A cloud path can be considered if the app shows a pending state, lets the user cancel, and does not repeatedly submit the same request without clear retry logic.
  • The feature needs service-side data or tools: Confirm which system owns the tool call. If your app server performs it, treat that server as its own data recipient; a model framework does not make the backend's data practices disappear.
  • The app can switch paths: Define which request fields may be sent to the fallback route. If the alternative changes the privacy boundary, make that change visible and obtain any needed user choice rather than silently retrying elsewhere.

Test errors, cancellation, retries, and visible status as product behavior. For each route, exercise an unavailable model state, a lost connection, a server response that cannot be used, and a user who cancels while work is in progress. Record what the app displays and whether it sends another request. Apple's documentation should be used for capabilities it explicitly supports; do not infer continuous service availability from a demo or a successful test.

05

Control and maintenance are a trade-off

A system-provided model can reduce the number of model-service decisions your team must make, but it also means you should work within the controls and behavior Apple documents. PCC is an Apple-managed cloud path, not a switch that gives your team arbitrary control over the cloud model. A selected provider may offer a model choice, service-side tools, or other controls, but those depend on its protocol and terms.

Apple's provider session explains the integration responsibilities for connecting a provider to the framework. Follow that example and the current protocol documentation rather than assuming any model endpoint can be substituted without changes. Your team still needs to own request construction, credentials, error handling, data disclosure, and tests for the provider's behavior.

Product requirement Path to evaluate first What the team must verify
Offline completion is a hard requirement On-device capability Runtime availability, behavior with no connection, and a useful unavailable state
Apple-managed cloud capability is preferred PCC Current support, the exact request route, network failures, and user-facing disclosure
Model choice or provider-operated tools are required Selected provider Protocol compatibility, credentials, privacy terms, tool permissions, and provider outages
Different tasks have different boundaries A deliberate per-task route That routing is visible, documented, and never sends restricted context to an unintended recipient

Use the least complex path that meets the product requirement. A custom provider is not automatically better because it offers more knobs. If the product does not need model choice or provider-side tools, that extra control can become a maintenance obligation without solving a user problem.

06

Release checks must cover quality, safety, and failure states

A successful API call proves only that one request completed. It does not prove that the feature's output is appropriate, that the app handles harmful or irrelevant responses, or that its fallback respects the privacy promise. Keep model quality and service reliability as separate acceptance areas.

Use the following checks before deciding a route is ready:

  • [ ] Select representative inputs from the real product flow, including missing context and ambiguous requests.
  • [ ] Confirm which request fields leave the device for each path, including conversation history and tool results.
  • [ ] Verify the runtime availability state on the system versions and devices the app intends to support.
  • [ ] Test offline, unstable-network, service-error, cancellation, and retry behavior for every cloud-backed route.
  • [ ] Review output quality against the feature's purpose; do not treat a valid response format as a correct answer.
  • [ ] Test unsafe, irrelevant, and incomplete output, then define how the interface limits or explains it.
  • [ ] Inspect logs and diagnostics to ensure they do not retain data that the privacy notice says is not collected.
  • [ ] Re-run the checks after changing the model path, provider, prompt structure, tool permissions, or relevant operating-system support.

Keep the result scoped to the system release, model implementation, and project scenario actually tested. A test on one configuration does not establish identical availability or output for all users. Save the request examples, observed states, and route-specific privacy notes so a later model or provider change can be reviewed against the same product requirements.

07

Verify the macOS toolchain before validating the app

The model may run on an iOS device, but integrating and releasing the app still requires a compatible Apple development toolchain. Check the current Xcode system requirements against the macOS environment used by the project, then verify the installed tools on the machine that performs the build. The Xcode requirements page changes with toolchain releases, so use its current compatibility table rather than relying on an old setup note.

Run these commands in the build environment:

sw_vers -productVersion
xcode-select -p
xcodebuild -version

Compare the output with the project's selected Xcode release and the current Apple requirements. An example output shape is:

ProductVersion: [installed macOS version]
[active developer directory]
Xcode [installed version]
Build version [installed build]

The bracketed values are placeholders, not a recommendation or a tested configuration. If the command output points to an unintended developer directory, correct the selected toolchain before diagnosing framework or project failures. Then build the app, run the route-specific tests, and validate the user-visible behavior on the target device and system release.

For a team without a suitable local Mac, a remote Mac can provide an environment for Xcode work, but it does not replace testing the app's runtime behavior on the intended iOS devices. Check the actual service details before planning around a remote environment. The NodeMini cloud Mac overview and its Silicon Valley option are places to review current service information; confirm that the available environment matches the project's toolchain and access requirements before relying on it.

08

FAQ: choosing a framework model route

Can the framework use a model provider selected by the app team?

Apple's WWDC26 provider session describes bringing an LLM provider to the Foundation Models framework. That is a supported integration direction, not evidence that every provider or model is interchangeable. Check the current protocol and platform requirements, then separately review the provider's data terms, authentication model, tool behavior, and failure responses. Your team remains responsible for explaining the data route to users.

Which route fits an app that needs offline behavior?

Start with the on-device capability if the feature must complete without network access. Then test the actual app flow: account checks, retrieval, sync, and other supporting features may still use a server even when inference is local. Confirm runtime availability and provide a usable state if the capability cannot run. If the task cannot degrade safely, do not promise offline completion until the full path passes an offline test.

What is the practical distinction between PCC and a provider?

PCC is Apple's documented cloud-compute path for supported capabilities. A provider integration connects the app's model workflow to a provider chosen by the team. Those routes differ in operator, data handling, service terms, and operational ownership. Read Apple's PCC security and integration materials, then read the provider's formal privacy terms. Select the route whose data and control boundaries match the product, not merely the one with the shortest integration.

What should be tested before sending requests to a cloud model?

Map the exact request fields and recipients, then verify disclosures, credential handling, retention expectations, and logging. Exercise timeouts, cancellation, retries, and unavailable-service states. Check that a fallback does not send protected context to a different service without the required user choice. Finally, validate output quality and safety on the system and toolchain you actually plan to ship; a successful request alone is not release evidence.

For a temporary build or validation environment, compare the current approach with a remote Mac before buying hardware: a local machine ties up its storage and availability, a shared build service may not expose the development environment your team needs, and a self-managed host adds upkeep. If those constraints matter for a short project cycle, renting a Mac through NodeMini can be a more flexible way to check the Xcode environment before committing; if the workload is continuous or requires physical devices and ports, keep that hardware requirement in the plan. Start by reviewing the current NodeMini Mac environment options and confirm fit against the project's actual toolchain.