I have an iOS/iPadOS app and 'm trying to communicate with usb smart card reader using CryptoTokenKit on all platforms (ios/ipados/macos).
Minimal Repro Code
import CryptoTokenKit
import SwiftUI
struct ContentView: View {
@State var status = ""
var body: some View {
VStack {
Text("Status: \(status)")
}
.padding()
.onAppear {
let manager = TKSmartCardSlotManager.default
if manager != nil {
status = "Initialized"
} else {
status = "Unsupported"
}
}
}
}
And my entitlement file has only one key:
com.apple.security.smartcard = YES
Behavior
• iPadOS (on device): status = "Initialized" ✅
• macOS (native macOS app, with the required CryptoTokenKit entitlement): status = "Initialized" ✅
• macOS (Designed for iPad, regardless of CryptoTokenKit entitlement): status = "Unsupported" → TKSmartCardSlotManager.default is nil ❌
Expectation
Given that the same iPadOS build initializes TKSmartCardSlotManager, I expected the iPad app running in Designed for iPad mode on Apple silicon Mac to behave the same (or to have a documented limitation).
Questions
Is CryptoTokenKit (and specifically TKSmartCardSlotManager) supported for iPad apps running on Mac in Designed for iPad mode?
If support exists, what entitlements / capabilities are required for USB smart-card access in this configuration?
If not supported, is Mac Catalyst the correct/only path on macOS to access USB smart-card readers via CryptoTokenKit?
Are there recommended alternatives for iPad apps on Mac (Designed for iPad) to communicate with USB smart-card readers (e.g., ExternalAccessory, DriverKit, etc.), or is this scenario intentionally unsupported?
Thanks!
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,
We are facing the issue of commissioning our Matter device to google home through iOS device will be 100% failed.
Here is our test summary regarding the issue:
TestCase1 [OK]: Commissioning our Matter 1.4.0 device to Google Nest Hub 2 by Android device (see log
DoorWindow_2.0.1_Google_Success.txt
)
TestCase2 [NG]: Commissioning Matter 1.4.0 device to Google Nest Hub 2 by iPhone13 or iPhone16 (see log
DoorWindow_2.0.1_Google_by_iOS_NG.txt
)
TestCase3 [OK]: Commissioning our Matter 1.3.0 device to Google Nest Hub 2 by iPhone13
In TestCase2, we noticed that device was first commissioned to iOS(Apple keychain) then iOS opened a commissioning window again to commission it in Google’s ecosystem, and the device was failed at above step 2, so we also tried:
Commissioning the device to Apple Home works as expected, next share the device to Google Home app on iOS, this also fails.
Commissioning the device to Apple Home works as expected, next share the device to Google Home app on Android, this works as expected and device pops up in Google home of iOS as well.
Could you help check what's the issue of TestCase2?
Append the environment of our testing:
NestHub 2 version
Google Home app version
Hello.
I am attempting to wrap the C library libnfc as a Swift library. This is not for use on macOS - it's mainly for use on Linux (Raspberry Pi).
I have a USB reader and my code appears to work so far, however the code/test/debug cycle is suboptimal if I'm running the code on the Pi.
As I use a Mac for day-to-day coding, I'd prefer to use Xcode and my Mac for development. MacOS appears to capture the NFC hardware for its own frameworks and attempting to open a connection to the USB device gives a Unable to claim USB interface (Permission denied) error.
ioreg shows that the hardware is claimed by an Apple framework:
"UsbExclusiveOwner" = "pid 10946, com.apple.ifdbun"
Is there a way to temporarily over-ride that system and use the hardware myself? I've tried Googling but most of the replies are out of date and Claude's advice launchctl unload /System/Library/LaunchDaemons/com.apple.ifdreader.plist doesn't appear to work...
I'm wary of disabling SIP - is there a simple way to have access to the hardware myself?
Thanks.
Which HomeKit API serves for the Home application scene (HMActionSet)-related functionality “Remove from Home View” and “Add to Home View”?
There must be a public API for that, for at the very least one 3rd party application shows/hides scenes appropriately as they are set up in Home; nevertheless, whatever I try, I can't find the API.
Thanks!
With the same firmware, OTA testing on the DCL test network was successful in September 2025, and the Home app was able to deliver software update notifications. Since the beginning of 2026, however, the Home app no longer delivers software update notifications.
This is bug number:
FB21922369
I have a BLE device which my app connects to and can detect button presses. On a button press, I want my app to start recording using the AudioRecordingIntent. But my app doesn't work and throws a background error. Is there any reliable way I can get the app to start recording audio in the background?
Topic:
App & System Services
SubTopic:
Hardware
Tags:
AVAudioEngine
Core Bluetooth
Intents
App Intents
I am creating a barcode reader using the AVfoundation framework for iOS and IPadOS. The read result goes into payloadstringvalue, but I want to check the control characters contained in the symbol, so I am using the raw data of the description, which is a property of NSObjectProtocol inherited by VNBarcodeObservation. However, I noticed that if the length set in the raw data exceeds 26, some of the raw data in the description is omitted. So my question is, is it possible to set it so that all the raw data in the description is written out without omitting any raw data? If so, could you please tell me how to set this up? Also, if you know of any other way to extract the raw barcode data, I would appreciate it if you could let me know.
Thank you.
I am using NFC when the phone is near the NFC reader times below the error:
2024-07-15 15:43:03.608427+0800 TestNFC[16022:1038141] [xpc.exceptions] <NSXPCConnection: 0x282ba90e0> connection to service with pid 58 named com.apple.nfcd.service.corenfc: Exception caught during decoding of received selector didDetectExternalReaderWithNotification:, dropping incoming message.
Exception: Exception while decoding argument 0 (#2 of invocation):
Exception: decodeObjectForKey: class "NFFieldNotification" not loaded or does not exist
my code:
#import <CoreNFC/CoreNFC.h>
@interface ViewController ()<NFCTagReaderSessionDelegate>
@property (strong, nonatomic) NFCTagReaderSession *session;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor whiteColor];
if (@available(iOS 13.0, *)) {
// 初始化 NFC 设置代理 NFCTagReaderSessionDelegate
if (NFCNDEFReaderSession.readingAvailable)
{
self.session = [[NFCTagReaderSession alloc]
initWithPollingOption:NFCPollingISO14443 delegate:self queue:nil];
// NFC 显示提示信息
self.session.alertMessage = @"准备扫描,请将卡片贴近手机";
// 开启 NFC
[self.session beginSession];
}
} else {
}
}
#pragma mark - NFCNDEFReaderSessionDelegate
//读取失败回调-读取成功后还是会回调这个方法
- (void)tagReaderSessionDidBecomeActive:(NFCTagReaderSession *)session API_AVAILABLE(ios(13.0)){
NSLog(@"tagReaderSessionDidBecomeActive");
}
- (void)tagReaderSession:(NFCTagReaderSession *)session didInvalidateWithError:(NSError *)error API_AVAILABLE(ios(13.0)){
NSLog(@"readerSession:didInvalidateWithError: (%@)", [error localizedDescription]);
}
- (void)tagReaderSession:(NFCTagReaderSession *)session didDetectTags:(NSArray<__kindof id<NFCTag>> *)tags API_AVAILABLE(ios(13.0)){
}
I have a 4-input, 4-output hardware device and an 8-input, 8-output virtual device, which I combine into an aggregate device. I am using the SimplyCoreAudio library to get the channel count. The code is as follows:
aggregationDevice!.channels(scope: .input) =>> 12 aggregationDevice!.channels(scope: .output) =>> 12
When the program's MicrophoneMode is set to standard, the channel count is correct. However, when I set the MicrophoneMode to voiceIsolation, the channel count is incorrect:
aggregationDevice!.channels(scope: .input) =>> 4 aggregationDevice!.channels(scope: .output) =>> 12
Below is the code for creating the aggregate device:
func createAggregateDevice(mainDevice: AudioDevice,
secondDevice: AudioDevice?,
named name: String,
uid: String) -> AudioDevice?
{
guard let mainDeviceUID = mainDevice.uid else { return nil }
var deviceList: [[String: Any]] = [
[
kAudioSubDeviceUIDKey: mainDeviceUID,
kAudioSubDeviceDriftCompensationKey:1
]
]
// make sure same device isn't added twice
if let secondDeviceUID = secondDevice?.uid, secondDeviceUID != mainDeviceUID {
deviceList.append([
kAudioSubDeviceUIDKey: secondDeviceUID,
kAudioSubDeviceDriftCompensationKey:1,
kAudioSubDeviceInputChannelsKey:8
])
}
let desc: [String: Any] = [
kAudioAggregateDeviceNameKey: name,
kAudioAggregateDeviceUIDKey: uid,
kAudioAggregateDeviceSubDeviceListKey: deviceList,
kAudioAggregateDeviceMainSubDeviceKey: mainDeviceUID,
kAudioAggregateDeviceIsPrivateKey:false,
]
var deviceID: AudioDeviceID = 0
let error = AudioHardwareCreateAggregateDevice(desc as CFDictionary, &deviceID)
guard error == noErr else {
return nil
}
return AudioDevice.lookup(by: deviceID)
}
I hope someone can tell me the reason Thank you!
We just updated our ATS to the latest 8.3.0 version and tried to run the iAP2 Session Test via BPA100 Bluetooth Analyzer and we are experiencing this EXC_BAD_INSTRUCTION. This same test still seems to work on ATS version 6. Please advise.
Process: ATS [1782]
Path: /private/var/folders/*/ATS.app/Contents/MacOS/ATS
Identifier: com.apple.ATSMacApp
Version: 8.3.0 (1826)
Build Info: ATSMacApp-1826000000000000~2 (1A613)
Code Type: X86-64 (Native)
Parent Process: launchd [1]
User ID: 501
Date/Time: 2025-01-27 11:05:21.1334 -0800
OS Version: macOS 15.2 (24C101)
Report Version: 12
Bridge OS Version: 9.2 (22P2093)
Anonymous UUID: 098E2BB5-CB98-CA1C-CEFE-188AF6EFE8CF
Time Awake Since Boot: 9700 seconds
System Integrity Protection: enabled
Crashed Thread: 2 com.apple.ATSMacApp.FrontlineFrameworkInterface
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Termination Reason: Namespace SIGNAL, Code 4 Illegal instruction: 4
Terminating Process: exc handler [1782]
Topic:
App & System Services
SubTopic:
Hardware
Tags:
Developer Tools
External Accessory
Testing
Core Bluetooth
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?
After updating to ios18.4, 3d scanning function, including AR function in apple clips, cannot be used. Does anyone else have the same problem?
Topic:
App & System Services
SubTopic:
Hardware
**
Every time after I downloaded an app this window opens and never closes how to close it?**
Topic:
App & System Services
SubTopic:
Hardware
My audio and MIDI sequencer application consumes about 600 % of CPU power with 10 different instruments during playback. While idle approximately 100%.
What is the maximum of CPU power that an application can consume? Are there any limits and could they be modified?
I am asking because if I add more instruments the real-time behaviour gets bad at 700 % of CPU power.
I have got following HW:
MacBook Pro
14-inch, Nov 2024
Apple M4 Pro
24 GB
Hello,
Since updating to iOS 18.3.1, the rear camera on my iPhone 13 Pro Max has not been functioning properly. The Camera app displays a black screen and becomes unresponsive.
I analyzed the crash logs and found that the issue is related to the cameracaptured process, which handles image and video capture on iOS. Here are the key details from the crash log:
📌 Memory Error: "Address size fault"
📌 Impacted Thread: com.apple.coremedia.capturesession.workerQueue
The "Address size fault" error suggests a memory access issue, likely causing the cameracaptured process to crash. This could be due to a bug in the video capture thread management introduced in the update.
What do you think?
name":"cameracaptured","timestamp":"2025-03-12 10:37:31.00 +0100","app_version":"1.0","slice_uuid":"cc45251e-92fc-329d-a3e9-d1c8c019e59e","build_version":"587.82.13","platform":2,"share_with_app_devs":0,"is_first_party":1,"bug_type":"309","os_version":"iPhone OS 18.3.2 (22D82)","roots_installed":0,"incident_id":"E97F5B3A-345F-42A6-97E8-28D175C8C5A9","name":"cameracaptured"}
{
"uptime" : 820,
"procRole" : "Unspecified",
"version" : 2,
"userID" : 501,
"deployVersion" : 210,
"modelCode" : "iPhone14,3",
"coalitionID" : 75,
"osVersion" : {
"isEmbedded" : true,
"train" : "iPhone OS 18.3.2",
"releaseType" : "User",
"build" : "22D82"
},
"captureTime" : "2025-03-12 10:37:30.1093 +0100",
"codeSigningMonitor" : 2,
"incident" : "E97F5B3A-345F-42A6-97E8-28D175C8C5A9",
"pid" : 68,
"translated" : false,
"cpuType" : "ARM-64",
"roots_installed" : 0,
"bug_type" : "309",
"procLaunch" : "2025-03-12 10:04:03.7137 +0100",
"procStartAbsTime" : 225890551,
"procExitAbsTime" : 19918403953,
"procName" : "cameracaptured",
"procPath" : "/usr/libexec/cameracaptured",
"bundleInfo" : {"CFBundleVersion":"587.82.13","CFBundleShortVersionString":"1.0"},
"parentProc" : "launchd",
"parentPid" : 1,
"coalitionName" : "com.apple.cameracaptured",
"crashReporterKey" : "137125638e43c62173057ae3dc983089b1f083cf",
"appleIntelligenceStatus" : {"state":"unavailable","reasons":["siriAssetIsNotReady","selectedLanguageIneligible","selectedLanguageDoesNotMatchSelectedSiriLanguage","notOptedIn","deviceNotCapable","selectedSiriLanguageIneligible","countryLocationIneligible","unableToFetchAvailability","assetIsNotReady"]},
"wasUnlockedSinceBoot" : 1,
"isLocked" : 0,
"throttleTimeout" : 5,
"codeSigningID" : "com.apple.cameracaptured",
"codeSigningTeamID" : "",
"codeSigningFlags" : 570434305,
"codeSigningValidationCategory" : 1,
"codeSigningTrustLevel" : 7,
"instructionByteStream" : {"beforePC":"BgCA0hUnFpTgAxOqIaSGUiFLu3KJJBaU4AMTqqfYDZTozSGQAFEC+Q==","atPC":"IAAg1KiDW/jJkB+QKd1B+SkBQPk/AQjrAQEAVP17Uqn0T1Gp9ldQqQ=="},
"bootSessionUUID" : "33672FC1-99EC-48FC-8BCD-2B96DF170CC3",
"basebandVersion" : "4.20.03",
"exception" : {"codes":"0x0000000000000001, 0x00000001a93909f0","rawCodes":[1,7134054896],"type":"EXC_BREAKPOINT","signal":"SIGTRAP"},
"termination" : {"flags":0,"code":5,"namespace":"SIGNAL","indicator":"Trace/BPT trap: 5","byProc":"exc handler","byPid":68},
"os_fault" : {"process":"cameracaptured"},
"faultingThread" : 4,
"threads" : [{"id":1699,"threadState":{"x":[{"value":268451845},{"value":21592279046},{"value":8589934592},{"value":28600187224064},{"value":0},{"value":28600187224064},{"value":2},{"value":4294967295},{"value":18446744073709550527},{"value":2},{"value":0},{"value":0},{"value":0},{"value":6659},{"value":0},{"value":0},{"value":18446744073709551569},{"value":6677212688,"symbolLocation":56,"symbol":"clock_gettime"},{"value":0},{"value":4294967295},{"value":2},{"value":28600187224064},{"value":0},{"value":28600187224064},{"value":6126594600},{"value":8589934592},{"value":21592279046},{"value":21592279046},{"value":4412409862}],"flavor":"ARM_THREAD_STATE64","lr":{"value":7911718552},"cpsr":{"value":4096},"fp":{"value":6126594448},"sp":{"value":6126594368},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":7911704456},pc":{"value":7911704456},"far":{"value":0}},"queue":"com.apple.main-thread","frames":[{"imageOffset":6024,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":10},{"imageOffset":20120,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":10},{"imageOffset":19888,"symbol":"mach_msg_overwrite","symbolLocation":424,"imageIndex":10},{"imageOffset":19452,"symbol":"mach_msg","symbolL
Topic:
App & System Services
SubTopic:
Hardware
Ever since the last update i have issues with my camera app. Sometimes when I open the app the forward facing cameras don’t work and it’s just a Black screen. I also get a warning that I may not have genuine iPhone parts installed. I have to reboot the phone every time just to have it app function again. It’s annoying. Please fix this. I never had any issues with the camera or its app up until after the update.
I'm developing a ticket app with Host card emulation. The session starts correctly the first time, but when trying to emulate a second ticket, after the first one has been read by the reader, or after the emulation has been canceled by the user, it doesn't work correctly for a while.
This is my CardSessionManager:
import CoreNFC
@available(iOS 17.4, *)
class CardSessionManager {
private static var cardSession: CardSession? = nil
private static var presentmentIntent: NFCPresentmentIntentAssertion? = nil
static func initCardSession(_ accessCode: String) {
cardSession?.invalidate()
cardSession = nil
let ProcessAPDU: (_: Data) -> Data = { capdu in
var response = Data(accessCode.utf8)
response.append(0x90)
response.append(0x00)
return response
}
Task {
guard NFCReaderSession.readingAvailable,
CardSession.isSupported,
await CardSession.isEligible else {
return
}
do {
presentmentIntent = try await NFCPresentmentIntentAssertion.acquire()
cardSession = try await CardSession()
} catch {
return
}
if let cardSession {
for try await event in cardSession.eventStream {
switch event {
case .sessionStarted:
cardSession.alertMessage = String(localized: "Searching reader...")
try await cardSession.startEmulation()
case .readerDetected:
cardSession.alertMessage = String(localized: "Reading...")
case .readerDeselected:
cardSession.alertMessage = String(localized: "Successful reading!")
await cardSession.stopEmulation(status: .success)
case .received(let cardAPDU):
cardSession.alertMessage = String(localized: "Communicating with reader.")
do {
try await cardAPDU.respond(response: ProcessAPDU(cardAPDU.payload))
} catch {
cardSession.alertMessage = error.localizedDescription
}
case .sessionInvalidated(reason: _):
cardSession.alertMessage = String(localized: "Ending communication with reader.")
presentmentIntent = nil
@unknown default:
break
}
}
}
}
}
}
Topic:
App & System Services
SubTopic:
Hardware
你好,有个问题想请教一下:
我们的app是一款与CGM实时血糖相关的app,app支持在后台通过蓝牙跟CGM血糖设备保持连接。
现在遇到一个问题:
首先,app在后台运行期间,蓝牙是开启状态的,跟CGM设备也是连接的状态。
某个时刻,监听到蓝牙的状态突然从 poweredOn 变为了 resetting ,然后蓝牙又恢复了,状态变为了 poweredOn
这时候,问题出现了:之前连接的那个CGM血糖设备一直无法扫描到了!!
我想问一下:
什么情况下,蓝牙状态会变为resetting
蓝牙状态恢复为poweredOn后,之前连接的那个CGM血糖设备一直无法扫描到了,为什么?我要怎么做才能恢复,重新扫描到之前连接的这个设备?
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
Today, I submitted the following proposal to Apple through the Feedback Assistant app. I'm not confident in how I phrased it—I'd appreciate any thoughts or feedback from fellow developers.
Proposal: "Apple Silicon.app" for macOS with Apple Silicon – Enhancing Performance and Swap Memory Control
This suggestion has been machine translated into English, so there may be some discrepancies.
If you need the actual text, please feel free to reply to this or ask at the email address below.
<mail address>
If the author of this proposal is to be credited, I would appreciate being listed under the nickname “DiamondGotCat,” where possible.
Summary:
- Currently, Apple Silicon-equipped Macs have many system-level features locked down or restricted.
- This proposal suggests a new application that enables certain advanced controls for power users.
- Tentatively named "Apple Silicon.app", the name may be subject to change if a more suitable alternative arises.
- I propose this application be added as a pre-installed utility on compatible systems:
macOS (M-series), iPadOS (A-series and M-series), and iOS (iPhones with Apple-designed A5 and newer chips, provided the latest OS is available for them).
Overview:
This proposal introduces "Apple Silicon.app", a new system-level utility designed to offer power users greater flexibility and control over Apple Silicon behavior, as part of a broader feature update for Apple devices.
I propose that Apple Silicon.app be automatically installed as a pre-installed application on Apple Silicon devices (Mac, iPad, iPhone, and select Vision devices) that support upcoming major system updates.
Suggested Features of Apple Silicon.app:
1. Performance Core Control
To describe this functionality, the following terminology will be used:
- P-cores: Performance cores
- E-cores: Efficiency cores
I understand that Apple Silicon emphasizes energy efficiency, but I believe there are users—myself included—who prioritize maximum performance regardless of power usage. Therefore, I propose that the app offer a drop-down menu with the following six modes for performance core usage:
A. Automatic (Recommended) – Default macOS behavior; automatically switches between P/E cores based on workload.
B. Performance Priority – Prioritizes P-cores for high-demand tasks, restricts E-cores. Ideal for developers, video editors.
C. Power Saving – Uses E-cores only whenever possible; limits P-core usage. Great for battery saving.
D. P-Core Exclusive Mode – User-defined processes always run on P-cores. Suitable for benchmarks or low-latency tasks.
E. E-Core Exclusive Mode – Prioritizes background tasks and thermal efficiency.
F. Manual Assignment (Advanced) – Users can manually assign P/E cores per application in a dedicated settings screen.
Additionally, I propose the following optional checkbox settings:
- Thermal Safety Mode: Automatically switches from P- to E-cores when system heat exceeds a threshold.
- Restore Core Settings on Wake: Remembers P/E settings after sleep/wake.
- Power Source Adaptive Mode: Switches to power-saving on battery, and performance mode when plugged in.
2. Swap Memory Configuration
The app should also enable user-level control over swap memory (i.e., using part of the SSD as virtual memory).
Currently, macOS manages swap space automatically with no user customization available. I propose the ability to manually configure the swap system with the following options:
- Enable Manual Configuration: Checkbox to switch from automatic to manual control.
- Swap Size: Adjustable in GB units, allowing users to allocate desired swap capacity.
3. Other Settings
At this point, these are the core features I propose. If additional useful features exist that align with this concept, I welcome further suggestions or expansion.
As users—at least speaking for myself—we look forward to such customization options becoming available.