I'm creating Live Photos programmatically in my app using the Photos and AVFoundation frameworks. While the Live Photos work perfectly in the Photos app (long press shows motion), users cannot set them as motion wallpapers. The system shows "Motion not available" message.
Here's my approach for creating Live Photos:
// 1. Create video with required metadata
let writer = try AVAssetWriter(outputURL: videoURL, fileType: .mov)
let contentIdentifier = AVMutableMetadataItem()
contentIdentifier.identifier = .quickTimeMetadataContentIdentifier
contentIdentifier.value = assetIdentifier as NSString
writer.metadata = [contentIdentifier]
// Video settings: 882x1920, H.264, 30fps, 2 seconds
// Added still-image-time metadata at middle frame
// 2. Create HEIC image with asset identifier
var makerAppleDict: [String: Any] = [:]
makerAppleDict["17"] = assetIdentifier // Required key for Live Photo
metadata[kCGImagePropertyMakerAppleDictionary as String] = makerAppleDict
// 3. Generate Live Photo
PHLivePhoto.request(
withResourceFileURLs: [photoURL, videoURL],
placeholderImage: nil,
targetSize: .zero,
contentMode: .aspectFit
) { livePhoto, info in
// Success - Live Photo created
}
// 4. Save to Photos library
PHAssetCreationRequest.forAsset().addResource(with: .photo, fileURL: photoURL, options: nil)
PHAssetCreationRequest.forAsset().addResource(with: .pairedVideo, fileURL: videoURL, options: nil)
What I've Tried
- Matching exact video specifications from Camera app (882x1920, H.264, 30fps)
- Adding all documented metadata (content identifier, still-image-time)
- Testing various video durations (1.5s, 2s, 3s)
- Different image formats (HEIC, JPEG)
- Comparing with exiftool against working Live Photos
Expected Behavior
Live Photos created programmatically should be eligible for motion wallpapers, just like those from the Camera app.
Actual Behavior
System shows "Motion not available" and only allows setting as static wallpaper.
Any insights or workarounds would be greatly appreciated. This is affecting our users who want to use their created content as wallpapers.
Questions
- Are there additional undocumented requirements for Live Photos to be wallpaper-eligible?
- Is this a deliberate restriction for third-party apps, or a bug?
- Has anyone successfully created Live Photos that work as motion wallpapers?
Environment
- iOS 17.0 - 18.1
- Xcode 16.0
- Tested on iPhone 16 Pro
Hello @jvn4dev,
Are there additional undocumented requirements for Live Photos to be wallpaper-eligible?
Yes, there are undocumented requirements.
Is this a deliberate restriction for third-party apps, or a bug?
This is not a bug, but that also does not mean it is a deliberate restriction.
Has anyone successfully created Live Photos that work as motion wallpapers?
I suspect the answer to that is yes, but I recommend against attempting to reverse engineer this behavior, as doing so would be very fragile and is not supported. Instead, I recommend that you file an enhancement request using Feedback Assistant, to request API for creating (not capturing) Live Photos that are usable as Live Wallpapers.
-- Greg