Get access
1
Sign in to the developer dashboard
Go to tryrollup.com/developers and sign in with your email. Rollup sends you a sign-in link. Your first sign-in creates a developer account that waits for Rollup to approve it. While it waits, the dashboard shows “Your access is being reviewed”.
2
Create an app
Once your account is approved, create an app with a name, your Apple Team ID (10 characters) and your app’s bundle ID. The app gets a publishable key that starts with
rk_live_.3
Wait for the app to be approved
A new app also waits for approval. Until Rollup approves it, the server answers every request with the error
app_pending. Rollup emails you when your account or app is approved, or if it is not.Add the SDK
The SDK ships as a binary framework,Rollup.xcframework, that you add with Swift Package Manager or CocoaPods. It requires iOS 26.
- Swift Package Manager
- CocoaPods
In Xcode, choose File, then Add Package Dependencies, and enter the package URL. Add the Or add it to
Rollup library to your app target.Package.swift:Package.swift
IndexingState and RollupError.Code, can gain cases in later versions. When you switch over one, include a default or @unknown default case.
Configure your app target
The SDK checks these entries when you callconfigure, and throws an error that names any that are missing.
1
Photos usage description
Add
NSPhotoLibraryUsageDescription to your Info.plist with text that tells the person why your app reads their photos.2
Background task identifiers
Add both identifiers below to
BGTaskSchedulerPermittedIdentifiers. The first lets indexing continue in the background after the person starts it; the second keeps the index up to date later.3
Background processing mode
Add
processing to UIBackgroundModes. In Xcode, this is the Background processing option of the Background Modes capability.4
App Attest
Add the App Attest capability to your target.
configure cannot check for it; without it, the device cannot register, and the first call that needs Rollup’s server throws appAttestFailed, naming the missing capability.Info.plist
Configure the SDK
Register the background tasks and configure the SDK when your app starts.registerBackgroundTasks must run before your app finishes launching.
MyApp.swift
IndexOptions. See Index options.
Ask for Photos access
CallrequestPhotoAccess from a screen where the person has just chosen to turn the feature on. iOS shows its Photos prompt once.
Watch indexing
indexing.states reports the current state and every change after it.
state.isSearchable is true: the index answers from the photos it holds so far, newest first, while older ones fill in.
Search, ask and fill a profile
search runs on the iPhone. query and profile need a network connection, and each takes a few seconds to about 20 seconds.
Next steps
Index options
Choose the time window, media and places.
Profile schemas
What a schema can ask for and what comes back.
Keys and revocation
Rotate keys and understand what happens when access stops.
Troubleshooting
Common errors and what they mean.

