Apple Developers

RSS for tag

This is a dedicated space for developers to connect, share ideas, collaborate, and ask questions. Introduce yourself, network with other developers, and foster a supportive community.

Learn More

Posts under Apple Developers subtopic

Post

Replies

Boosts

Views

Activity

App Notifications - Audible Alert Schedule
Hi all, First time poster :) I am interested to understand if it is possible to set a notification alert within an application. I am building an application on internet connectivity health but want users to be able to choose a time when the notification is audible or silent. (appreciate you can set the device to a status where notifications are silenced) Within the application if they choose to be alerted to critical alerts, I would like them to be able to choose a time period when the alerts should be silent or when they should be audible. Who wants alert on your internet at 2am when Maintenace windows open up? Cheers Dan
1
0
101
1w
Can't update to macOS 26 beta 2
I've got the initial WWDC beta of macOS 26 (25A5279m) installed inside a virtual machine (UTM), but can't seem to update to the second beta. Nothing is showing up within Software Update. Is this because it's within a VM, or am I doing something wrong? It'd be a real pain to have to install a new VM afresh with the RestoreImage for every update.
0
1
72
1w
Critical Bug: Photos Turn Completely Black After Editing on macOS Tahoe (25A5295e)
I’ve encountered a critical issue in macOS Tahoe (Beta) that affects the Photos app or any app that leverages Apple’s editing frameworks. After editing certain photos—whether applying filters, cropping, or making basic adjustments—the image suddenly turns completely black upon saving or exiting the edit mode. Details: macOS Version: macOS Tahoe (latest beta) Affected App(s): Photos, Preview, and some third-party editing apps Steps to Reproduce: Open a photo in the Photos app Make any basic edit (e.g., crop, adjust brightness) Click “Done” The edited photo appears entirely black Notes: Happens with both JPEG and HEIC formats Original photo appears fine before editing Exporting the photo also results in a black image Restarting the app/system does not resolve the issue iCloud Photos is enabled This issue seems related to the image rendering pipeline post-editing, possibly tied to Core Image or GPU rendering frameworks. It severely affects photo usability and could result in permanent data loss if backups are not maintained. Please advise if a workaround exists or if this bug has been logged already. Happy to provide system logs or sample images if needed.
1
1
129
1w
Personal Voice fails to complete
I have an iPhone 14 running iOS 26 Beta 2 that I wanted to start using Personal Voice on. It allowed me to complete the recordings and start the process, however even with the phone charging and locked the process hangs. It is connected to WiFi and cellular while attempting to run. It is connected to a 20W apple charger with an offical cable. I have a sneaking feeling it's related to me running the iOS beta on this device. I've provided some info below. iOS 26 Beta 2 iPhone 14 128gb Model MPUF3ZD/A No SIM restrictions
0
0
26
1w
macOS 26 Tahoe beta 1 - Cannot login
A few days ago I installed beta 1 of macOS 26 Tahoe on a spare MacBook Pro 14-inch M4. Everything went well, and it looks okay (well, I don't like it at all, but hey-ho), and I shut it down. I started it up today, and it rejects my login password every time, then locks my account. When I click the link to "Restart and show password reset options" I'm asked for my Apple ID details, so I enter the correct email and password, then the MBP reboots and I'm back on the login screen with no indication that anything has changed. Guess I'm stuck now... FB18364657
1
0
155
1w
;unable to install iOS 26 beta on my iPhone 16 Pro (iPadOS 26 beta installs just fine on my iPad mini 6 however).
The Apple logo and progress bar appear, and the progress bar gets about halfway through when the screen disappears, then reappears with the Apple logo and progress bar, and then eventually the progress bar just disappears, and only the Apple logo appears. After staring at that for an hour, I gave up and restored iOS 18.5. I made three attempts with Beta 1 and one attempt with Beta 2 and had the same results.
0
0
154
1w
iOS 26 Developer Beta 2
I’m running iOS 26 Developer Beta 2 on my iPhone 13 Pro and it’s not letting me call anyone on it you should fi that with the next beta of iOS 26 and every one of the iOS 26 beta updates after that even when you release the up iOS 26 later this fall
0
0
61
1w
Problème ubs app.
When I open ubs app (Switzerland) : Jailbreak: the Mobile Banking app cannot be used Manufacturer usage restrictions have been removed from this device (Jailbreak). To continue using the UBS Mobile Banking app, please restore your device to the original state. 😧😧😧 ???
1
0
14
1w
Brightness slider UI bug when long-pressed in iOS 26
Hi! I found a UI bug in iOS 26.0 (23A5276f). When you swipe down from the top right to open Control Center and adjust brightness using the slider, everything looks normal. However, if you long-press the brightness slider, the brightness knob detaches from the base. The button becomes smaller while the frame remains the same, making the UI asymmetrical and misaligned. This happens consistently and is clearly a layout issue.
3
0
45
1w
ipad won't power after reset
In preparing my ipad 7th gen for resale, I factory reset and now it will not power up. Tried hard reset, new cables, different computer. iTunes does not recognize the ipad yet device manager shows it hooked to usb port. Any advice? Thanks!
0
0
38
1w
Question About CarPlay Certification When Using Custom Wiring Harness
Hello developers, My question isn't directly related to app or software development, but this seems to be the most appropriate channel to possibly find the information I need. Context I work for an automotive company and I'm currently looking for Apple CarPlay certification guidelines. We're in the process of installing a multimedia system in a vehicle. The most viable solution would be to use the multimedia unit and microphone provided by our supplier, but with a custom wiring harness developed by our company to simplify the installation process. The multimedia unit, microphone, and the supplier’s harness are already certified for CarPlay. Question Would using our company’s custom wiring harness affect the existing CarPlay certification of the supplier’s product? Any information, contact, or suggestion on where I could find official guidance on this matter would be greatly appreciated. Thank you in advance!
0
0
19
1w
iOS 26 0% Battery Health
Updated iPhone to 26 beta 2, everything is ok but battery, battery is changed, not original. My phone can't charge higher than 1% and turns off every 5 minutes, even connecting to wireless charger and cable at the same time don't work, restored iPhone thru iTunes.I hope I will be able to install new beta without any problems because loving the new design, hoping for the best. Thanks. My FB-FB18327769
0
1
68
1w
iOS 26 Beta Bug
Updated iPhone to 26 beta 2, everything is ok but battery, battery is changed, not original. My phone can't charge higher than 1% and turns off every 5 minutes, even connecting to wireless charger and cable at the same time don't work, restored iPhone thru iTunes.I hope I will be able to install new beta without any problems because loving the new design,hoping for the best. Thanks.
1
2
58
1w
Apple JS SDK: invalid_client error with new Service IDs in AppleID.auth.signIn()
We’re integrating Sign in with Apple using Apple’s official JavaScript SDK: https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js We’ve successfully used this setup with an older Service ID, but when we try to use any newly created Service ID, we get the following error immediately when calling AppleID.auth.signIn(): invalid_client This happens before any request reaches our backend. The same flow, redirect URI, and frontend code works fine with an old Service ID — but fails with new ones. ✅ What We’ve Verified: The Service ID (e.g., com.projectx.web.login) is created under Apple Developer → Identifiers → Service IDs The redirect URI is correct and matches exactly (HTTPS, no trailing slash) No client_secret is passed in the frontend (by design) We’re using usePopup: true ❌ What Doesn’t Work: Any new Service ID we create — even on the same domain and configuration — fails with invalid_client. 🔁 What We’ve Tried: Creating multiple new Service IDs Waiting 48+ hours in case of propagation delays Validating HTTPS and redirect URI setup Comparing all settings with the working (older) Service ID (which we deleted since we thought that was causing a problem) Testing in different environments and browsers ❓ Questions: Why do newly created Service IDs fail with invalid_client while older ones work? Are there undocumented requirements, propagation delays, or steps for new Service IDs to become active? Is this a known limitation or bug in the SDK? 💻 Our Code: import { useEffect } from "react"; import { Button, Box } from "@mui/material"; import api from "../utils/api"; // Axios wrapper import AppleIcon from "@mui/icons-material/Apple"; import MainAuthStyles from "../pages/MainAuthStyles"; import { useUser } from "../../../user-module/src/contexts/UserContext"; import { useNavigate } from "react-router-dom"; // Apple global type declare global { interface Window { AppleID: any; } } type AppleSignInButtonProps = { setApiError: (msg: string) => void; }; const AppleLogInButton = ({ setApiError }: AppleSignInButtonProps) => { const { user, setUser } = useUser(); const navigate = useNavigate(); useEffect(() => { if (!window.AppleID) return; window.AppleID.auth.init({ clientId: import.meta.env.VITE_APPLE_CLIENT_ID, scope: "name email", redirectURI: import.meta.env.VITE_APPLE_REDIRECT_URI, usePopup: true, }); }, []); const handleAppleLogin = async () => { try { const response = await window.AppleID.auth.signIn(); const { id_token, code, user } = response.authorization; const res = await api.post("/auth/apple-login", { idToken: id_token, code, user, rememberMe: true, }); if (res.data.success == true && res.data.user.userDataInitialised == true ) { setUser({ id: res.data.user.id ? res.data.user.id : '', fullName: res.data.user.fullName ? res.data.user.fullName : '', email: res.data.user.email ? res.data.user.email : '', role: res.data.user.role ? res.data.user.role : '', signUpType: res.data.user.signUpType ? res.data.user.signUpType : '', userDataInitialised: res.data.user.userDataInitialised ? res.data.user.userDataInitialised : false, }); localStorage.setItem("accessToken", res.data.accessToken); localStorage.setItem("refreshToken", res.data.refreshToken); navigate("/app") } else { setApiError("Unrecognized login method") return; } } catch (err) { console.error("Apple Sign-In failed", err); setApiError("AppleSignInFailed"); } }; return ( <Box mt={2}> <Button variant="outlined" fullWidth onClick={handleAppleLogin} className="AuthAppleButton" startIcon={<AppleIcon />} > Log in with Apple </Button> </Box> ); }; export default AppleLogInButton; Any help from the Apple team or anyone who's resolved this issue would be appreciated — we’re currently blocked on deploying new environments due to this error. Thanks!
0
0
46
1w
Screen Sharing failures after installing MacOS 26 Beta 2
Upgraded my M1 Mac mini from MacOS Tahoe 26 Beta to Beta 2. Prior to the update I had no problem connecting to the Max mini from my MacBook Pro M2 running Now, attempting to connect to the Mac mini from a MacBook Pro M2 running Sequoia 15.5. After the update, I can enter my password, but then I am disconnected with the error "This Mac was unable to start a High Performance connection to the Mac mini" and to "change the screen sharing type to standard and try again" Connecting via a "Standard" connection showed that the Window Server failed.
0
0
9
1w
Summary of issues encountered with the Screen Time interface
I have developed three apps using the Screen Time API. The following are common problems I encountered in the three apps: DeviceActivityMonitorExtension is automatically killed after running for a few days (frequently) The same DeviceActivityEvent in DeviceActivityMonitorExtension is triggered twice during eventDidReachThreshold (especially obvious in iOS18.5) Screen Time authorization is automatically canceled for no reason (occasionally) I hope to get help
5
2
112
1w
Displaying limited contacts list in UIKit
I have an app that was written in UIKit. It's too large, and it would be much too time consuming at this point to convert it to SwiftUI. I want to incorporate the new limited contacts into this app. The way it's currently written everything works fine except for showing the limited contacts in the contact picker. I have downloaded and gone though the Apple tutorial app but I'm having trouble thinking it through into UIKit. After a couple of hours I decided I need help. I understand I need to pull the contact IDs of the contacts that are in the limited contacts list. Not sure how to do that or how to get it to display in the picker. Any help would be greatly appreciated. func requestAccess(completionHandler: @escaping (_ accessGranted: Bool) -> Void) { switch CNContactStore.authorizationStatus(for: .contacts) { case .authorized: completionHandler(true) case .denied: showSettingsAlert(completionHandler) case .restricted, .notDetermined: CNContactStore().requestAccess(for: .contacts) { granted, error in if granted { completionHandler(true) } else { DispatchQueue.main.async { [weak self] in self?.showSettingsAlert(completionHandler) } } } // iOS 18 only case .limited: completionHandler(true) @unknown default: break } } // A text field that displays the name of the chosen contact @IBAction func contact_Fld_Tapped(_ sender: TextField_Designable) { sender.resignFirstResponder() // The contact ID that is saved to the Db getTheCurrentContactID() let theAlert = UIAlertController(title: K.Titles.chooseAContact, message: nil, preferredStyle: .actionSheet) // Create a new contact let addContact = UIAlertAction(title: K.Titles.newContact, style: .default) { [weak self] _ in self?.requestAccess { _ in let openContact = CNContact() let vc = CNContactViewController(forNewContact: openContact) vc.delegate = self // this delegate CNContactViewControllerDelegate DispatchQueue.main.async { self?.present(UINavigationController(rootViewController: vc), animated: true) } } } let getContact = UIAlertAction(title: K.Titles.fromContacts, style: .default) { [weak self] _ in self?.requestAccess { _ in self?.contactPicker.delegate = self DispatchQueue.main.async { self?.present(self!.contactPicker, animated: true) } } } let editBtn = UIAlertAction(title: K.Titles.editContact, style: .default) { [weak self] _ in self?.requestAccess { _ in let store = CNContactStore() var vc = CNContactViewController() do { let descriptor = CNContactViewController.descriptorForRequiredKeys() let editContact = try store.unifiedContact(withIdentifier: self!.oldContactID, keysToFetch: [descriptor]) vc = CNContactViewController(for: editContact) } catch { print("Getting contact to edit failed: \(self!.VC_String) \(error)") } vc.delegate = self // delegate for CNContactViewControllerDelegate self?.navigationController?.isNavigationBarHidden = false self?.navigationController?.navigationItem.hidesBackButton = false self?.navigationController?.pushViewController(vc, animated: true) } } let cancel = UIAlertAction(title: K.Titles.cancel, style: .cancel) { _ in } if oldContactID.isEmpty { editBtn.isEnabled = false } theAlert.addAction(getContact) // Select from contacts theAlert.addAction(addContact) // Create new contact theAlert.addAction(editBtn) // Edit this contact theAlert.addAction(cancel) let popOver = theAlert.popoverPresentationController popOver?.sourceView = sender popOver?.sourceRect = sender.bounds popOver?.permittedArrowDirections = .any present(theAlert,animated: true) } func requestAccess(completionHandler: @escaping (_ accessGranted: Bool) -> Void) { switch CNContactStore.authorizationStatus(for: .contacts) { case .authorized: completionHandler(true) case .denied: showSettingsAlert(completionHandler) case .restricted, .notDetermined: CNContactStore().requestAccess(for: .contacts) { granted, error in if granted { completionHandler(true) } else { DispatchQueue.main.async { [weak self] in self?.showSettingsAlert(completionHandler) } } } // iOS 18 only case .limited: completionHandler(true) @unknown default: break } } // MARK: - Contact Picker Delegate extension AddEdit_Quote_VC: CNContactPickerDelegate { func contactPicker(_ picker: CNContactPickerViewController, didSelect contact: CNContact) { selectedContactID = contact.identifier let company: String = contact.organizationName let companyText = company == "" ? K.Titles.noCompanyName : contact.organizationName contactNameFld_Outlet.text = CNContactFormatter.string(from: contact, style: .fullName)! companyFld_Outlet.text = companyText save_Array[0] = K.AppFacing.true_App setSaveBtn_AEQuote() } } extension AddEdit_Quote_VC: CNContactViewControllerDelegate { func contactViewController(_ viewController: CNContactViewController, shouldPerformDefaultActionFor property: CNContactProperty) -> Bool { return false } func contactViewController(_ viewController: CNContactViewController, didCompleteWith contact: CNContact?) { selectedContactID = contact?.identifier ?? "" if selectedContactID != "" { let company: String = contact?.organizationName ?? "" let companyText = company == "" ? K.Titles.noCompanyName : contact!.organizationName contactNameFld_Outlet.text = CNContactFormatter.string(from: contact!, style: .fullName) companyFld_Outlet.text = companyText getTheCurrentContactID() if selectedContactID != oldContactID { save_Array[0] = K.AppFacing.true_App setSaveBtn_AEQuote() } } dismiss(animated: true, completion: nil) } }
2
0
711
1w