Background Information
In the macOS operating system environment, Program A uses libusb to access USB devices that comply with the USB Mass Storage protocol. To enable Program A to start automatically after macOS boots, its corresponding plist file has been placed in the /Library/LaunchDaemons directory.
Problem and Phenomenon Description
Program A works well on macOS versions prior to 15.3, and it can access USB devices normally. However, on macOS 15.3, the following abnormal situations have occurred:
A. Program A launched by launchd cannot access the USB device. Checking the logs reveals that the IOCreatePlugInInterfaceForService call in the darwin_claim_interface function returns the error code e00002be.
B. Program A launched from the terminal command line with sudo privileges can access the USB device normally, and the return value of the IOCreatePlugInInterfaceForService call is 0.
Hardware
RSS for tagDelve into the physical components of Apple devices, including processors, memory, storage, and their interaction with the software.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hi, as other threads have already discussed, I'd like to record audio from a keyboard extension.
The keyboard has been granted both full access and microphone access. Nonetheless whenever I attempt to start a recording from my keyboard, it fails to start with the following error:
Recording failed to start: Error Domain=com.apple.coreaudio.avfaudio Code=561145187 "(null)" UserInfo={failed call=err = PerformCommand(*ioNode, kAUStartIO, NULL, 0)}
This is the code I am using:
import Foundation
import AVFoundation
protocol AudioRecordingServiceDelegate: AnyObject {
func audioRecordingDidStart()
func audioRecordingDidStop(withAudioData: Data?)
func audioRecordingPermissionDenied()
}
class AudioRecordingService {
weak var delegate: AudioRecordingServiceDelegate?
private var audioEngine: AVAudioEngine?
private var audioSession: AVAudioSession?
private var isRecording = false
private var audioData = Data()
private let targetFormat = AVAudioFormat(commonFormat: .pcmFormatInt16,
sampleRate: 16000,
channels: 1,
interleaved: false)!
private func setupAudioSession() throws {
let session = AVAudioSession.sharedInstance()
try session.setCategory(.playAndRecord, mode: .spokenAudio,
options: [.mixWithOthers, .allowBluetooth, .defaultToSpeaker])
try session.setPreferredIOBufferDuration(0.005)
try session.setActive(true, options: .notifyOthersOnDeactivation)
audioSession = session
}
func checkMicrophonePermission(completion: @escaping (Bool) -> Void) {
switch AVAudioApplication.shared.recordPermission {
case .granted:
completion(true)
case .denied:
delegate?.audioRecordingPermissionDenied()
completion(false)
case .undetermined:
AVAudioApplication.requestRecordPermission { [weak self] granted in
if !granted {
self?.delegate?.audioRecordingPermissionDenied()
}
completion(granted)
}
@unknown default:
delegate?.audioRecordingPermissionDenied()
completion(false)
}
}
func toggleRecording() {
if isRecording {
stopRecording()
} else {
checkMicrophonePermission { [weak self] granted in
if granted {
self?.startRecording()
}
}
}
}
private func startRecording() {
guard !isRecording else { return }
do {
try setupAudioSession()
audioEngine = AVAudioEngine()
guard let engine = audioEngine else { return }
let inputNode = engine.inputNode
let inputFormat = inputNode.inputFormat(forBus: 0)
audioData.removeAll()
guard let converter = AVAudioConverter(from: inputFormat, to: targetFormat) else {
print("Failed to create audio converter")
return
}
inputNode.installTap(onBus: 0, bufferSize: 1024, format: inputFormat) { [weak self] buffer, _ in
guard let self = self else { return }
let frameCount = AVAudioFrameCount(Double(buffer.frameLength) * 16000.0 / buffer.format.sampleRate)
guard let outputBuffer = AVAudioPCMBuffer(pcmFormat: self.targetFormat,
frameCapacity: frameCount) else { return }
outputBuffer.frameLength = frameCount
var error: NSError?
converter.convert(to: outputBuffer, error: &error) { _, outStatus in
outStatus.pointee = .haveData
return buffer
}
if error == nil, let channelData = outputBuffer.int16ChannelData {
let dataLength = Int(outputBuffer.frameLength) * 2
let data = Data(bytes: channelData.pointee, count: dataLength)
self.audioData.append(data)
}
}
engine.prepare()
try engine.start()
isRecording = true
delegate?.audioRecordingDidStart()
} catch {
print("Recording failed to start: \(error)")
stopRecording()
}
}
private func stopRecording() {
audioEngine?.inputNode.removeTap(onBus: 0)
audioEngine?.stop()
isRecording = false
let finalData = audioData
audioData.removeAll()
delegate?.audioRecordingDidStop(withAudioData: finalData)
try? audioSession?.setActive(false, options: .notifyOthersOnDeactivation)
}
deinit {
if isRecording {
stopRecording()
}
}
}
Granting the deprecated "Inter-App Audio" capability did not solve the problem either.
Is recording audio from a keyboard extension even possible in general? If so, how do I fix it?
Related threads:
https://developer.apple.com/forums/thread/108055
https://developer.apple.com/forums/thread/742601
Our company is developing an MFi headset with a button that we would like to use for initiating PTT.
We can detect the button press and initiate PTT successfully, even when the app is not in the foreground, using the ExternalAccessory framework.
But I wonder if this is a coincidence, or a scenario that should reliably work with Push to Talk?
My iPhone 16 pro max when on the magnetic charger at home or in my car. My phone just powers down and reboots on its own. This has happened several times a day since updating to iOS 18.4. Anyone else having this problem ?
Topic:
App & System Services
SubTopic:
Hardware
Hi,
We are developing a Matter switch product. The switch contains 4 buttons, and each button supports click, double click, and held actions. Currently, the device can be successfully commissioned with a HomePod mini, and in the Apple Home app, it is displayed as 4 buttons with options for click, double click, and held for each.
The only issue is that the order of the 4 buttons in the Home app does not correspond to the endpoint order (endpoint 1–4). For example, the following mapping might occur:
endpoint 1 → button 2
endpoint 2 → button 3
...
We found a related issue on the Apple Developer Forums that matches what we're experiencing:
https://developer.apple.com/forums/thread/772367?utm_source=chatgpt.com
According to the official response, the problem seems to be caused by insufficient metadata being reported by the device. Could you please provide more specific guidance on what exact information needs to be reported from the device side?
We have already tried adding the Fixed Label and User Label clusters to the device, but they don't seem to have any effect.
Ideally, we would like the button labels in the Home app add our custom names in the correct order, as below:
button 1 (right_button)
button 2 (up_button)
button 3 (down_button)
button 4 (left_button)
This would provide a much better user experience.
Thank you in advance!
HomePod Mini running 18.6 build 22M5054/b - will not update to HomePod OS26
have tried un-enrollment, reset, removal, etc - no dice - anyone else seeing this ? Any known work arounds ?
iPad is running iPadOS 26 Relase 2 - 23A5276f
I am writing to report an issue I’m facing after updating my iPhone 11 Pro Max to iOS 26.
I have been using the Hollyland Lark M2 external microphone via the Lightning port, and it was working perfectly before the update. However, after upgrading to iOS 26, the iPhone no longer detects it correctly. The device now recognizes the mic as a pair of wired earphones, and it fails to capture any audio input.
The microphone itself works flawlessly on other devices, so this appears to be an iOS-specific issue.
Could you please confirm:
• Whether this is a known issue in iOS 26?
• If there are any settings or steps I can take to resolve this?
• Whether a fix is planned in an upcoming iOS patch?
I would appreciate any guidance or solution you can provide.
Thank you for your support.
Topic:
App & System Services
SubTopic:
Hardware
Macbook pro M4 - will not accept any power adapter after beta update
iPhone 16 pro - same exact problem
Devices are dead
Tried multiple chargers - Watch and IPad appear to be taking a charge for now..
Hello Apple team and community,
I’m reporting a critical issue affecting iPhone 13 (128 GB) on iOS 26 Public Beta 3.
Problem Summary:
• Device stays stuck at 1% battery, even while charging
• Battery Health shows 0% in Settings
• Phone reboots every 5 minutes while unplugged
• Only works when connected to power
• Cannot update, charge properly, or maintain uptime
Additional Context:
• The issue appeared immediately after installing iOS 26 beta 3
• Affected devices often have a replaced battery (even official or high-quality replacements)
• Seems to be a software validation bug related to battery firmware
• Reported by many users across Reddit, Apple Forums, and Twitter — but not listed in Known Issues
What Has Been Tried:
• Recovery Mode / Safe charging / Clean install (same version) – no effect
• Third-party repair tools (ReiBoot, 3uTools) — partial workaround
• Jailbreak with Nugget or iCleaner to disable crash daemons – temporarily helps
• Apple Support suggested full device replacement (!)
⸻
Request:
Please investigate and acknowledge this issue. This bug renders devices unusable for users with legitimate battery replacements — we need a fix in an upcoming beta.
Hi everyone,
while testing HKWorkoutSession with HKLiveWorkoutBuilder on iOS 26 Beta (cycling workout), I noticed the following behavior:
– Starting a cycling HKWorkoutSession automatically connects to my Bluetooth heart rate monitor and records HR into HealthKit ✅
– However, my Bluetooth cycling power meter and cadence sensor (standard BLE Cycling Power & CSC services) are not connected automatically, and no data is recorded into HealthKit ❌
On Apple Watch, when starting a cycling workout, these sensors do connect automatically and their data is written to HealthKit — which is exactly what I would expect on iOS as well.
Question:
Is this by design, or is support for power and cadence sensors planned for iOS in the same way as on watchOS?
Or do we, as developers, need to implement the BLE Cycling Power and CSC profiles ourselves (via CoreBluetooth) if we want these metrics?
Environment:
– iOS 26 Beta
– HKWorkoutSession & HKLiveWorkoutBuilder (cycling)
– Bluetooth HRM connects automatically
– BLE power & cadence sensors do not
This feature would make it much easier to develop cycling apps with full HealthKit integration, and also create a more consistent user experience compared to watchOS.
Thanks for any insights!
Topic:
App & System Services
SubTopic:
Hardware
Tags:
Health and Fitness
HealthKit
Core Bluetooth
WorkoutKit
I am working on an app that requires the usage of CoreBluetooth – using both its CBPeripheralManager and CBCentralManager classes. Our app works with other phones and hardware peripherals to exchange data – so we wanted to explore adding AccessorySetupKit to streamline the hardware connection process.
AccessorySetupKit has been integrated (while CBPeripheralManager is turned off) and works great, but even with ASK added to our app's plist file and not in use, CBPeripheralManager fails with error: Cannot create a CBPeripheralManager while using AccessorySetupKit framework.
Is there any workaround or suggested path forward here? We'd still really like to use ASK while keeping our existing functionality, but are not seeing a clear way to do so.
Hello,
We are testing Wallet passes with iBeacons in iOS 26 Beta.
In earlier iOS releases, when a device was in proximity to a registered beacon, the corresponding pass would surface automatically.
In iOS 26 Beta, this behavior no longer occurs, even if the pass is already present in Wallet. I have not found documentation of this change in the iOS 26 release notes.
Could you please confirm whether this is expected in iOS 26, or if it may be a Beta-specific issue? Any pointers to updated documentation would be appreciated.
Thank you.
Hello,
I am a developer planning to build an application using Apple's new SpeechTranscriber technology.
I am facing an issue where SpeechTranscriber is not available on my iPad Pro (11-inch, 2nd generation, model number: MXDC2J/A), even though I have updated it to iPadOS 26. I was under the impression that SpeechTranscriber would be available on any device running iPadOS 26. Could you please clarify if this is incorrect?
Furthermore, I am planning to purchase a new iPad with an A16 chip for the development and deployment of this application. Can you confirm if SpeechTranscriber will be fully functional on an iPad equipped with the A16 chip?
Thank you for your assistance.
Since 17.4 Dev Beta 2, I have been having Bluetooth issues.
I had hoped it would have cleared up but even in 17.4.1 it continues.
Airpod and Echo Auto are the only 2 audio devices I have.
The audio will become chopping, rubber band or sound robotic and sometime completely disconnect.
While driving it will occur on both audio devices.
Sometimes I'm stopped at red light and the issue occurs.
The phone is less than 3 feet from the device at all times.
I have read forums and removed and readded the devices but that did not help.
I really do not want to have to reset my phone since my 2FA apps do not recover in a restore.
Anyone have any suggestions?
I am working on an app for a Home automation device built on Matter. There are both standard and custom features/services/clusters on this device. HomeKit seems to pick up the standard ones except for one (leak detector) that is part of the Matter 1.3 spec. Of course HomeKit doesn't know what to do with the custom ones so they aren't shown in the Home app. I am trying to access those directly via calls to the Matter APIs so I can present them in a custom app. To access Matter APIs I am using a process suggested by DTS in a forum post that can be found here.
The MTRBaseDevice I obtain in the suggested way responds appropriately to read and write commands, but subscribe doesn't work as expected. It returns an error code 48 which is described as "The operation couldn’t be completed." and the source that contains the error calls it "operationNotSupported". This is the subscribe call referenced in the DTS response to earlier post, however there are three more "subscribe" methods and I have tried them all. Two also return an error 48, and the last one never calls any of the callback handlers providing no data or errors.
Since a subscription is supposed to return data periodically even when there have been no changes it doesn't seem that different than polling so I have written code for that and it works. However I don't expect iOS will let me poll in the background for alarm conditions and I am hoping subscription updates will be sent to a background app so it can notify users of these conditions. Is that a reasonable assumption?
Here is the code I am using to test subscribe, perhaps I am doing something wrong? Originally I had shorter intervals but changing them made no difference. Do they need to be longer?
let subscribeParams = MTRSubscribeParams(minInterval: 15, maxInterval: 900)
if #available(iOS 17.6, *) {
subscribeParams.shouldAssumeUnknownAttributesReportable = true
}
subscribeParams.shouldFilterByFabric = false
subscribeParams.shouldReplaceExistingSubscriptions = true
subscribeParams.shouldReportEventsUrgently = true
subscribeParams.shouldResubscribeAutomatically = false
print("Attempting subscribe:with")
let localClusterStateCache = MTRClusterStateCacheContainer()
matterBaseDevice.subscribe(with: OS_dispatch_queue_global.global(), params: subscribeParams, clusterStateCacheContainer: localClusterStateCache) { (attributes: [Any]) in
print("subscribe:with attributeHandler: \(attributes)")
} eventReportHandler: { (events: [Any]) in
print("subscribe:with eventHandler: \(events)")
} errorHandler: { (error: any Error) in
let reportingError = error as NSError
if reportingError.domain == "HMErrorDomain" {
let hkError = HMError(HMError.Code(rawValue: reportingError.code)!)
print("subscribe:with errorHandler: \(hkError.localizedDescription); UserInfo: \(hkError.userInfo); ErrorUserInfo: \(hkError.errorUserInfo)")
} else {
print("subscribe:with errorHandler: \(reportingError)")
}
} subscriptionEstablished: {
print("subscribe:with Subscription established!!!")
} resubscriptionScheduled: { (error: any Error, numericParam: NSNumber) in
print("subscribe:with Resubscription scheduled; error: \(error); numericParam: \(numericParam)")
}
Is it mandatory to use classic Bluetooth (Bluetooth Classic) to connect game controllers that support Apple’s MFi games and Arcade games, or can game controllers be developed using only Bluetooth Low Energy (BLE) for such accessories?
I have the our device connected , with Assistive Touch enabled and the application running in the foreground. At this point, I place the screen on standby and leave the device unattended for 10 minutes. After this period, I return, unlock the screen, and observe that our app is still running, and the connection with the device is re-initiated. However, something occurs at this stage that causes the application to briefly switch to the background and then immediately return to the foreground.
This behavior leads to system instability. Ideally, once the application is running in the foreground, it should not transition to the background automatically. However, it seems to be doing so for a short duration—momentarily switching from the foreground to the background, then back to the foreground—which is causing the observed instability.
OK, the iPad screen is unlocked AND App Appears.
2024-10-01 13:15:55 LOG: APP > Scene did become active
2024-10-01 13:15:55 LOG: APP > Init device
Suddenly the application goes to background by itself?!?!?!
2024-10-01 13:15:55 LOG: APP > Scene will change from Foreground to Background
2024-10-01 13:15:55 LOG: APP > Scene changed to Background
2024-10-01 13:15:56 LOG: APP > Scene Will Enter to Foreground
2024-10-01 13:15:56 LOG: APP > Nib Name previous load : Home
Other example
OK, the iPad screen is unlocked AND App Appears.
2024-10-01 11:23:55 LOG: APP > Scene Will Enter to Foreground
2024-10-01 11:23:56 LOG: APP > Scene did become active
2024-10-01 11:23:56 LOG: APP > Init connection
Suddenly the application goes to background by itself?!?!?!
2024-10-01 11:23:56 LOG: APP > Scene will change from Foreground to Background
2024-10-01 11:23:56 LOG: APP > Scene changed to Background
2024-10-01 11:23:56 LOG: APP > Scene Will Enter to Foreground
2024-10-01 11:23:56 LOG: APP > Scene did become active
2024-10-01 11:23:56 LOG: APP > Scene will change from Foreground to Background
2024-10-01 11:23:56 LOG: APP > Scene changed to Background
2024-10-01 11:23:56 LOG: APP > Scene Will Enter to Foreground
2024-10-01 11:23:56 LOG: APP > Nib Name previous load : Home
FA FB15345245
this is happening under iPadOS18.1 beta5 and iPad12.9" 6th gen.
Would you mind taking a look at this issue ?
Hi l've updated to ios 18.1 beta and l'm experiencing my iPhone 14 Pro restart and having issues using Safari when on my home WiFi but I'm the only person in my household with this issue
Topic:
App & System Services
SubTopic:
Hardware
There are CarPlay resources from Apple (https://developer.apple.com/documentation/carplay/) but it seems entirely geared towards iOS app development.
Are there any resources or documentation that help with CarPlay integration on the vehicle/head unit side of things? I believe you need to download the CarPlay Communication Plug-In and integrate that with the head unit platform and applications, but there isn't much documentation that comes along with the Plug-In .zip download.
Is there a different place where resources for head unit developers is located?
Hi,
The company produces MFI-certified devices.
A lot of users are affected. it happens when users are in the background.
The crash happens in NSArray; it looks like the array is out of bounds to which EAAccessoryManager tries to access.
The only assumption I have is that something is wrong with Threads. Maybe we are blocking a Thread somewhere, or EAAccessory should always work on the Main Thread but we switch streams to another thread.
It is hard to believe that Apple could have such a simple bug. If it were Apple's bug, other companies who produce MFI devices could also experience the identical bug, but I don't see anyone raising the identical issue.
The issues don't have a relation to iOS versions; it happens for us from iOS 13 till iOS 18.
Thanks in advance,
Eugene.