We're facing a strange issue where UIImagePickerController opens with a black screen (no camera preview) for some users only. The camera permissions are granted, and the picker is presented without errors. This problem does not reproduce on all devices — it's been reported on:
iPhone 14 – iOS 18.4
iPhone 13 – iOS 18.5
Other unknown devices (users didn’t share details)
We are using UIImagePickerController to open the rear camera, and presenting it from appDelegate.window?.rootViewController. All required permissions are in place (NSCameraUsageDescription is added in Info.plist, runtime permissions checked and approved).
Still, for a subset of users, the screen goes black when trying to capture a photo. We suspect either a system-level issue with iOS 18.4+, a session conflict, or an issue with how we present the picker.
Looking for advice or known issues/workarounds. Would switching to AVCaptureSession help?
What We’ve Verified:
NSCameraUsageDescription is set in Info.plist
Camera permission is requested and granted at runtime
Users tried:
Reinstalling the app
Restarting the phone
Switching between front/rear camera
Still, the camera preview remains black
No crash logs or exceptions
Below is the Code Level Example:-
let imagePicker = UIImagePickerController()
let Capture = UIAlertAction(title: "TAKE_PHOTO".localized, style: .destructive) { _ in
self.imagePicker.sourceType = .camera
self.imagePicker.cameraDevice = .rear
self.imagePicker.showsCameraControls = true
self.imagePicker.allowsEditing = false
appDelegate.window?.rootViewController?.present(self.imagePicker, animated: true, completion: nil)
}
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsupported object <CPActionSheetTemplate: 0x600000883720> <identifier: 154853B1-42C9-4A2E-A2AA-8431664FCDC4, userInfo: (null), tabTitle: (null), tabImage: (null), showsTabBadge: 0> passed to presentTemplate:animated:completion:. Allowed classes: {(
CPGridTemplate,
CPListTemplate,
CPNowPlayingTemplate,
CPTabBarTemplate,
CPAlertTemplate,
CPVoiceControlTemplate
)}
Thanks in advance!
I am facing one issue while trying to Sign in with Apple. error is as below:
"The Operation couldn't be completed (com.apple.AuthenticationServices.AuthorizationError error 1000.)"
I get this error as soon as the button is pressed it doesn't even get into the actual sign-in part.
I have verified that entitlements file is there with the below content:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "">
<plist version="1.0">
<dict>
<key>aps-environment</key>
<string>development</string>
<key>com.apple.developer.applesignin</key>
<array>
<string>Default</string>
</array>
</dict>
</plist>
I transferred the project and certificates from another machine. So deleted all the certificates and provisional profiles and recreated them from the new machine but faced an issue.
Also, It only happens in exported (Archived build). When I directly install it from Xcode it is working fine.
I have followed the official apple document to implement it. below is how I'm requesting the authentication:
currentNonce = randomNonceString()
let request = ASAuthorizationAppleIDProvider().createRequest()
request.requestedScopes = [.fullName, .email]
let controller = ASAuthorizationController(authorizationRequests: [request])
request.nonce = currentNonce?.sha256()
controller.delegate = self
controller.presentationContextProvider = self
controller.performRequests()
Below are delegates:
func authorizationController(controller: ASAuthorizationController, didCompleteWithAuthorization authorization: ASAuthorization) {
switch authorization.credential {
case let appleIDCredential as ASAuthorizationAppleIDCredential:
//Authenticated
break
default:
break
}
}
func presentationAnchor(for controller: ASAuthorizationController) -> ASPresentationAnchor {
return self.view.window!
}
func authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error) {
Utils.showAlert(withMessage: error.localizedDescription)
}
Any help would be appreciated