Previously working! Now Broken. I developed a test application to establish a connection with a BLE peripheral. The application successfully connected to the peripheral, but it did not establish SMP Pairing procedure.
Previously, I was able to successfully pair with the devices during the Beta phase. However, currently, I am not receiving the OS prompt to grant Bluetooth permissions. I understand that this may be a newly introduced feature in the recent releases.
Could you please provide guidance on whether there is a specific flag that needs to be enabled or added elsewhere, or if this is a bug with the ASK?
PLEASE HELP!!!
Hardware
RSS for tagDelve into the physical components of Apple devices, including processors, memory, storage, and their interaction with the software.
Post
Replies
Boosts
Views
Activity
I'm using AccessorySetupKit to use multiple devices in my app.
The problem I'm facing right now is that each time I want to add a new device with an ASAccessorySession, the CBCentralManager state (which was previously .poweredOn, as I has already connected a device) rapidly changes states from .poweredOn to .poweredOff, and back to .poweredOn again.
The consequence of these state changes is that any connected device is instantly disconnected, and I need to reconnect them one by one.
Is that the normal behavior?
I want to observe/capture logging from my iPhone app when its not running via Xcode.
However when using either the Mac's console app, or the console functionality within Apple Configurator, after about 2 or 3 seconds the logging disappears off the console.
How can it be prevented from doing so?
Development environment: Electron 30.2.0
Run-time configuration: macOS 14.5 (23F79)
DESCRIPTION OF PROBLEM
I have one keyboard which will wake up the Mac OS from sleep when sending command to it at the time system starting to sleep. But this keyboard will not have such problem on Window OS, I don't know why sending command to that keyboard will wake up the Mac OS system from sleep.
Does anyone know from a hardware or software point of view, what kind of usb keyboard operation will cause the macos system to wake up? Or can someone give us guidance, how to debug and solve the usb keyboard caused by the wake up system problem on Mac OS system?
STEPS TO REPRODUCE Sending command to that keyboard when the system start to sleep
I recently got an iPhone 16 Pro Max, and I’m currently running iOS 18.1 Beta 5 (22B5054e). I’ve noticed an issue when charging overnight with MagSafe. My phone stops charging, and last night it stopped at 63%.
I’m also having problems when charging via cable. It shows “slow charger” even though I’m using a 100W charger.
Is this an issue with iOS 18.1 or could it be a defect with the iPhone itself? I didn’t experience this with my iPhone 15 Pro Max.
Thanks
Since updating my iphone 12 to iOS 18, my phone either doesn’t charge unless the wire is in a certain position or if it is charging it’s very slow. I’ve tried multiple wires with multiple plugs and it’s all the same. I had no issues before updating and now wish I hadn’t updated because I can’t afford to go and buy a new phone.
Development environment: Electron 30.2.0
Run-time configuration: macOS 14.5 (23F79)
DESCRIPTION OF PROBLEM
I have one keyboard which will wake up the Mac OS from sleep when sending command to it at the time system starting to sleep. But this keyboard will not have such problem on Window OS, I don't know why sending command to that keyboard will wake up the Mac OS system from sleep.
Does anyone know from a hardware or software point of view, what kind of usb keyboard operation will cause the macos system to wake up? Or can someone give us guidance, how to debug and solve the usb keyboard caused by the wake up system problem on Mac OS system?
STEPS TO REPRODUCE Sending command to that keyboard when the system start to sleep
Hi, we are trying out AccessorySetupKit on our app for pairing with an IoT device via Bluetooth. I can see from this WWDC2024 talk Meet AccessorySetupKit that ASK supports BLE pairing methods with a PIN code.
Is that enabled through this bluetoothPairingLE option on ASAccessory.SupportOptions?
Is it correctly understood that this is referring to the Secure Simple Pairing feature in the BLE specs?
This might be due to my unfamiliarity with Secure Simple Pairing, but does it require the PIN code again after it has been paired but disconnected and then re-connected?
Any help here would be greatly appreciated.
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?
Hello everyone,
I’m experiencing occasional crashes in my app related to the Core Haptics framework, specifically when creating haptic pattern players. The crashes are intermittent and not easily reproducible, so I’m hoping to get some guidance on what might be causing them.
It's seems it's connected to Audio Resource I'm using within AHAP file.
Setup:
I use AVAudioSession and AVAudioEngine to record and play continuous audio. After activating the audio session and setting up the audio engine, I initialize the CHHapticEngine as follows:
let engine = try CHHapticEngine(audioSession: .sharedInstance())
...
try engine?.start()
// Recreate all haptic pattern players you had created.
let pattern = createPatternFromAHAP(Pattern.thinking.rawValue)!
thinkingHapticPlayer = try? engine?.makePlayer(with: pattern)
// Repeat for other players...
AHAP file:
"Pattern":
[
... haptic events
{
"Event":
{
"Time": 0.0,
"EventType": "AudioCustom",
"EventWaveformPath": "voice.chat.thinking.mp3",
"EventParameters":
[
{ "ParameterID": "AudioVolume", "ParameterValue": 0.7 }
]
}
}
]
I’m receiving the following crash report:
Crashed: com.apple.main-thread
EXC_BREAKPOINT 0x00000001ba525c68
0
CoreHaptics
+[CHHapticEngine(CHHapticEngineInternal) doRegisterAudioResource:options:fromPattern:player:error:].cold.1 + 104
1
CoreHaptics
+[CHHapticEngine(CHHapticEngineInternal) doRegisterAudioResource:options:fromPattern:player:error:].cold.1 + 104
2
CoreHaptics
+[CHHapticEngine(CHHapticEngineInternal) doRegisterAudioResource:options:fromPattern:player:error:] + 3784
3
CoreHaptics
-[CHHapticPattern resolveExternalResources:error:] + 388
4
CoreHaptics
-[PatternPlayer initWithPlayable:engine:privileged:error:] + 560
5
CoreHaptics
-[CHHapticEngine createPlayerWithPattern:error:] + 256
6
Mind
VoiceChatHapticEngine.swift - Line 170
VoiceChatHapticEngine.createThinkingHapticPlayer() + 170
Has anyone encountered similar crashes when working with CHHapticEngine and haptic patterns that contains audioCustom event?
Thank you so much for your help.
Ondrej
I am developing a USB UVC product and we are seeing poor performance on VLC. We are streaming 16 bit 1080p60 Uncompressed video but VLC says the codec is 32 bit RV32 Uncompressed with a frame rate of 0.0000033. Something is obviously wrong and I want to view the USB descriptors on my Mac to verify what the Mac is seeing the USB device is capable of. How can I do this?
Looking online I found an IORegistryExplorer application but that doesnt seem to give me the full descriptors of the connected USB device, just some metadata about the connection. Any help finding the descriptor would be appreciated.
Hello,
It was confirmed that notification came when the user connected a specific Bluetooth in the app and the Bluetooth was connected to the mobile phone after the application was forcibly terminated.
I wonder how that is possible.
Is there anyone who knows?
Thank you.
Development environment: Xcode Version 15.1 (15C65), macOS 14.2.1 (23C71)
Run-time configuration: macOS 14.2.1 (23C71)
DESCRIPTION OF PROBLEM
1.The device supports sleep and wake functionality, and sleep/wake can be achieved on both Linux and Windows.
2.Does macOS's USBSerialDriverKit support sleep and wake? If so, how can I implement it?
3.Is it necessary to modify system permissions on macOS to use a USB serial device for sleep and wake functionality?
STEPS TO REPRODUCE
I don't know how macOS performs power management for serial devices. The sleep wake function fails to pass the test on macOS
In my app I need to determine what hardware the app is running on (also forms part of the UI).
iPhone 15 series identifiers are as below, wondering if anyone knows what iPhone 16, Plus, Pro and Pro Max will be?
case "iPhone15,4": return "iPhone 15"
case "iPhone15,5": return "iPhone 15 Plus"
case "iPhone16,1": return "iPhone 15 Pro"
case "iPhone16,2": return "iPhone 15 Pro Max"
I assume since all four 16 models are A18 that it'll be a bump to the base level to 17 for all four phones.
case "iPhone17,1": return "iPhone 16"
case "iPhone17,2": return "iPhone 16 Plus"
case "iPhone17,3": return "iPhone 16 Pro"
case "iPhone17,4": return "iPhone 16 Pro Max"
Anyone else making a different assumption? Trying to avoid the "if unknown just say iPhone 16" option.
Thanks!
I have a camera app that has some intensive processing. Each photo can require between 300-500MB of memory to process all the CIFilters, depth blur etc.
This has been working fine on my older test devices, iPhone 11 & 12, but I had some crash reports from users and I noticed that they were always iPhone 13 / 13 mini users. After purchasing a 13, I can confirm that after taking 2-3 photos sequentially the app crashes due to memory usage.
What I don't understand is that I can take many photos sequentially on the iPhone 11 / 12 and they do not crash. The memory usage is certainly high, but all the images save and the app does not crash. Here's what the memory usage looks like when using the iPhone 11:
All the devices have 4GB of RAM, so why should the iPhone 13 not be able to handle it? One option would be to try and reduce the memory usage of the application, but it's a challenge when processing 12MP images. Here's what the memory debugger looks like, not very useful!
Any pointers greatly appreciated!
Alex
I have created a sample iOS project where I am attempting to discover BLE peripherals using AccessorySetupKit in iOS 18.
I am able to discover the BLE accessory and retrieve the CBPeripheral. However, when I attempt to connect to the CBPeripheral, the connection neither succeeds nor fails. I have noticed that the BLE peripheral I am trying to connect to uses a Resolvable Private Address (RPA). When I repeat the same process for a BLE peripheral with a Static Device Address (SDA), I am able to connect successfully.
Could someone please suggest why I am unable to connect to the BLE peripheral with an RPA when it is discovered using AccessorySetupKit?
Hi all,
I was wondering if anyone knew a way to change the brightness of your MacBook screen in Swift without using an overlay that changes the colours?
I want the effect of just pressing the F1 and F2 brightness controls but done without using system events/ Applescript popping up windows on the screen.
I think the UIScreen.brightness is something similar to what I want but it is not available for NSscreen. I can't figure out a way to do it with IOKit either.
Things like ddccl doesn't work as the screen is not an external monitor.
If there is a solution using Swift or terminal commands any help is much appreciated.
Thanks,
James
Added the MatterExtension for MatterAddDeviceExtensionRequestHandler as new Target. Everything is automatically generated.
But still only the default MatterAddDevice pickerView is displayed instead of MatterAddDeviceExtension?!
func play() {
Task {
let homes = [MatterAddDeviceRequest.Home(displayName: "my Home")]
let topology = MatterAddDeviceRequest.Topology(ecosystemName: "MyEcosystemName", homes: homes)
let request = MatterAddDeviceRequest(topology: topology)
do {
try await request.perform()
print("Successfully set up device!")
} catch {
print("Failed to set up device with error: \(error)")
}
}
}
Entitlements:
Matter Allow Setup Payload = YES
.plist is set up:
NSLocalNetworkUsageDescription
NSBonjourServices:
Greetings!
I've added a Matter accessory via the Apple Home app. In my app, I'm attempting to commission this device and add it to my fabric. However, when I try to open the commissioning window, I receive an error stating, MTRBaseDevice doesn't support openCommissioningWindowWithDiscriminator over XPC.
It appears that opening a commissioning window via an XPC connection is not yet supported. Is there another method to commission the device? Can I retrieve the setup payload from the MTRBaseDevice object or the shared MTRDeviceController?
Here's the simplified version of my code:
var home: HMHome // HMHome received via HMHomeManager
var accessory: HMAccessory = home.accessory[0] // my Matter-supported accessory
let deviceController = MTRDeviceController.sharedController(
withID: home.matterControllerID as NSCopying,
xpcConnect: home.matterControllerXPCConnectBlock
)
let device = MTRBaseDevice(
nodeID: accessory.matterNodeID as NSNumber,
controller: deviceController
)
device.openCommissioningWindow(
withDiscriminator: 0,
duration: 900,
queue: .main) { payload, error in
if let payload {
// payload not received
} else if let error {
// I'm getting here "Error Domain=MTRErrorDomain Code=6 "(null)""
// and "MTRBaseDevice doesn't support openCommissioningWindowWithDiscriminator over XPC" logged in the console
print(error)
}
Hello, we're having problems running the sample code for HCE https://developer.apple.com/documentation/corenfc/cardsession/
We have the necessary HCE Entitlements in place. Everything is configured according to the guidelines in both the entitlements and info.plist files.
Unfortunately, when trying to execute the code, the app crashes and the state is as follows:
NFCReaderSession.readingAvailable = true
CardSession.isSupported = true
And the crash happens after executing CardSession.isEligible
With
CoreNFC/NFCCardSession.swift:451: Fatal error: Missing required entitlement
The app runs on iOS 18.0 (22A5338b). Our account is registered in Bulgaria, which is part of the EEA, and the tests are run in Bulgaria.