We have identified an issue on iOS 18 and iOS 18.1 (developer beta) where App Clips invoked via NFC or QR codes without a pre-configured Advanced App Clip experience (aka they should be using the Default App Clip Experience) are not functioning as expected. This issue is specific to iOS 18, as the behavior works correctly on iOS devices running 17.x.
Steps to Reproduce:
Set up two scenarios:
One scenario where an App Clip has a pre-configured advanced app clip experience (with metadata such as title, subtitle, image).
Another scenario where the App Clip is invoked without any pre-configured experience (should use the default App Clip experience).
On an iOS 18 or iOS 18.1 device:
For the default App Clip experience (no pre-configured advanced app clip experence):
Scan the NFC tag when the phone is locked.
Scan the NFC tag when the phone is unlocked.
Scan the QR code.
For the pre-configured App Clip experience:
Perform the same tests (NFC and QR code scans).
Test the same scenarios on an iOS 17 device for comparison.
Expected Behavior:
For default App Clip experience invocations (NFC or QR):
Scanning NFC or QR should still trigger the App Clip card, even without metadata or a pre-configured advanced experience, on both locked and unlocked devices.
For pre-configured Advanced App Clip Experence invocations:
The App Clip card should display correctly with the configured metadata and behave as expected on both locked and unlocked devices.
Observed Behavior on iOS 18 and iOS 18.1:
For default App Clip experience invocations:
When scanning the NFC tag on a locked device, an error message is shown - e.g., "App Clip Unavailable" or "The operation couldn't be completed. (CPSErrorDomain error 2.)" .
When scanning the NFC tag on an unlocked device, the system redirects straight to the web browser instead of displaying the App Clip card (or even the normal NFC top of screen push notification style thing)
Scanning the QR code also prompts the user to open the web browser similar to the experience of scanning a non app clip QR code, skipping the expected App Clip experience.
For pre-configured Advanced App Clip Experence invocations:
The App Clip behaves as expected, showing the correct card with metadata and functioning properly on both locked and unlocked devices.
Notes:
The issue is only observed on iOS 18 and iOS 18.1, while the expected behavior is working fine on iOS 17.
This may indicate a regression or change in behavior introduced with iOS 18 that affects App Clip invocations that do not have a pre-configured experience.
Live Text
RSS for tagEnable text interactions, translation, data detection, and QR code scanning within any image view on iOS, iPadOS, or macOS.
Posts under Live Text tag
10 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
I’m developing a visionOS app using EnterpriseKit, and I need access to the main camera for QR code detection. I’m using the ARKit CameraFrameProvider and ARKitSession to capture frames, but I’m encountering this error when trying to start the camera stream:
ar_camera_frame_provider_t: Failed to start camera stream with error: <ar_error_t Error Domain=com.apple.arkit Code=100 "App not authorized.">
Context:
VisionOS using EnterpriseKit for camera access and QR code scanning.
My Info.plist includes necessary permissions like NSCameraUsageDescription and NSWorldSensingUsageDescription.
I’ve added the com.apple.developer.arkit.main-camera-access.allow entitlement as per the official documentation here.
My app is allowed camera access as shown in the logs (Authorization status: [cameraAccess: allowed]), but the camera stream still fails to start with the “App not authorized” error.
I followed Apple’s WWDC 2024 sample code for accessing the main camera in visionOS from this session.
Sample of My Code:
import ARKit
import Vision
class QRCodeScanner: ObservableObject {
private var arKitSession = ARKitSession()
private var cameraFrameProvider = CameraFrameProvider()
private var pixelBuffer: CVPixelBuffer?
init() {
Task {
await requestCameraAccess()
}
}
private func requestCameraAccess() async {
await arKitSession.queryAuthorization(for: [.cameraAccess])
do {
try await arKitSession.run([cameraFrameProvider])
} catch {
print("Failed to start ARKit session: \(error)")
return
}
let formats = CameraVideoFormat.supportedVideoFormats(for: .main, cameraPositions: [.left])
guard let cameraFrameUpdates = cameraFrameProvider.cameraFrameUpdates(for: formats[0]) else { return }
Task {
for await cameraFrame in cameraFrameUpdates {
guard let mainCameraSample = cameraFrame.sample(for: .left) else { continue }
self.pixelBuffer = mainCameraSample.pixelBuffer
// QR Code detection code here
}
}
}
}
Things I’ve Tried:
Verified entitlements in both Info.plist and .entitlements files. I have added the com.apple.developer.arkit.main-camera-access.allow entitlement.
Confirmed camera permissions in the privacy settings.
Followed the official documentation and WWDC 2024 sample code.
Checked my provisioning profile to ensure it supports ARKit camera access.
Request:
Has anyone encountered this “App not authorized” error when accessing the main camera via ARKit in visionOS using EnterpriseKit? Are there additional entitlements or provisioning profile configurations I might be missing? Any help would be greatly appreciated! I haven't seen any official examples using new API for main camera access and no open source examples either.
I'm trying to cast the error thrown by TranslationSession.translations(from:) as Translation.TranslationError. However, the app crashes at runtime whenever Translation.TranslationError is used in the project.
Environment:
iOS Version: 18.1 beta
Xcode Version: 16 beta
yld[14615]: Symbol not found: _$s11Translation0A5ErrorVMa
Referenced from: <3426152D-A738-30C1-8F06-47D2C6A1B75B> /private/var/containers/Bundle/Application/043A25BC-E53E-4B28-B71A-C21F77C0D76D/TranslationAPI.app/TranslationAPI.debug.dylib
Expected in: /System/Library/Frameworks/Translation.framework/Translation
"On the latest iOS 18 beta 2, the OCR API,the Translate App and Live Text performs very poorly in recognizing Japanese."
Looking for a spare phone anyone may have that they aren using that I can use with no strings attached. Thanks in advance for being a blessing f:)
I faced a problem during development that I could not scan Code39 barcode with iPad using Vision. A sample label I used for test has multiple Code39 barcode on it and I could scan almost all barcodes except for specific one.
And when I use conventional barcode scanner and free apps to scan barcode, I could scan the barcode with no problem. I failed to scan the barcode only when I use Vision function.
Has anyone faced similar situation?
Do you know the cause why specific barcode could not be scanned with iPad with Vision?
Hi,
I face a problem that I could not scan a specific Code 39 barcode with Vision framework. We have multiple barcode in a label and almost all Code 39 can be scanned, but not for specific one.
One more information, regardless the one that is not recognized with Vision can be read by a general barcode scanner.
Have anyone faced similar situation?
Is there unique condition to make it hard to scan the barcode when using Vision?(size, intensity, etc)
Regards,
Our app needs to scan QR codes (or a similar mechanism) to populate it with content the user wants to see.
Is there any update on QR code scanning availability on this platform? I asked this before, but never got any feedback.
I know that there is no way to access the camera (which is an issue in itself), but at least the system could provide an API to scan codes.
(It would be also cool if we were able to use the same codes Vision Pro uses for detecting the Zeiss glasses, as long as we could create these via server-side JavaScript code.)
Hi everyone, do you know when real-time subtitles for Italian language calls will be implemented in iPhone?
Hello everyone,
first let me say a few words about myself. I am an IT student and I want to learn and develop some applications in Swift. Now I am working on one application and I need a barcode scanner to complete it. So I need help from someone who can help me with a simple barcode scanner. My idea is that the barcode will be on one screen and they have to read the code and write it to a variable. That's my idea. I will appreciate the full code or help. thank you for answer