I'm implementing PHBackgroundResourceUploadExtension to back up photos and videos to our cloud storage service.
During testing, I observed that iCloud-optimized photos (where the full-resolution original is stored in iCloud, not on device) do not upload. The upload job appears to silently skip these assets.
Questions:
- Is this behavior intentional/documented? I couldn't find explicit mention of this limitation.
- If the device only has the optimized/thumbnail version locally, does the system:
- Automatically download the full-resolution asset from iCloud before uploading?
- Skip the asset entirely?
- Return an error via PHAssetResourceUploadJobChangeRequest?
- For a complete backup solution, should we:
- Pre-fetch full-resolution assets using PHAssetResourceManager.requestData(for:options:) before creating upload jobs?
- Use a hybrid approach (this extension for local assets + separate logic for iCloud-only assets)?
Environment: iOS 26, Xcode 18