Recently I started getting emails from AppStoreConnect when I submit new builds. The email states:
ITMS-90863: Macs with Apple silicon support issue - The app links with libraries that aren’t present in macOS:
/usr/lib/swift/libswiftHomeKit.dylib
I can run this app on Apple Silicon from TestFlight or directly from Xcode and it runs just fine including all HomeKit functions. This app has been using HomeKit for several years now.
This issue seems to be the same kind of this other about CloudKit, but with HomeKit libs: https://developer.apple.com/forums/thread/756325
Please, how it can be fixed?
Many thanks.
HomeKit
RSS for tagCommunicate with, configure, and control home automation accessories using HomeKit.
Posts under HomeKit tag
40 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
Hi,
We are using Apple VAS and ECP2 certified NFC readers. What process will we need to follow to issue NFC-based keys so that we can provide an access control use case?
Any help in this regard will be much appreciated.
Thanks,
Aweliv
Hello fellow developers,
I’m developing a smart standing desk under my brand Beflo, which integrates technology with traditional furniture. As part of this, we’re working to make our Tenon smart desk compatible with the Apple HomeKit ecosystem.
While exploring HomeKit profiles, I noticed there isn’t a specific profile for standing desks. However, there are similar profiles, such as curtains, which also use motors for operation and could align with our product's functionality, like height adjustments.
I have a few questions:
What is the process for proposing or applying for a new product profile in HomeKit?
Is it feasible to adapt an existing profile (like curtains) in the interim while awaiting approval for a new profile?
Has anyone had experience navigating this process, and are there any best practices or resources you recommend?
I’d love to hear insights from anyone who has experience with HomeKit development or working on similar product integrations. Thank you for your time and guidance!
I'm trying to browse my Homekit accessories and try to show the different accessories communication protocols, i.e. Wifi, Thread, Zigbee, Z-wave!
Zigbee and Z-wave I can have hard-coded depending on model because I have so few!
But…. I can easily find all accessories which are wifi attached by using:
isBriged == false and
uniqueIdentifiersForBridgedAccessories == nil
However, I can see that some of the accessories are thread enabled (I have read the documentation for the accessory) but still in the list.
So, my questions:
Are there any attributes in the accessory that is unique for a Thread accessory?
for accessory in accessories
{
if(accessory.isBridged == false &&
accessory.uniqueIdentifiersForBridgedAccessories == nil )
{
// Can be a Wifi device but need more controls
// requiresThreadRouter???
if (true)
{
wifiAccessaries.append(accessory)
}
}
}
I'm trying to develop an app to control HomeKit accessories in a way not available so far in macOS. How can I work around the absence of HomeKit Support for macOS in Xcode 16?
Thanks!
target to mac,it seems not to be able to
tried on ios,“import homekit”,but didnt find my device-homepod mini,which is new one with upgraded version
Hello.
I found that my iPhone has encountered same error continuously when I tried to commission my Eve Door & Window device.
Nov 12 11:33:48 iPhone homed(Matter)[181] <Error>: Can't extract public key from certificate: src/crypto/CHIPCryptoPALOpenSSL.cpp:1911: CHIP Error 0x0000002F: Invalid argument
Nov 12 11:33:48 iPhone homed(Matter)[181] <Error>: convertX509Certificate: src/credentials/CHIPCertFromX509.cpp:559: CHIP Error 0x0000002F: Invalid argument
Nov 12 11:33:55 iPhone homed(HomeKitMatter)[181] <Error>: [4264877660/1(3180582119)] Couldn't get device being commissioned for network scanning: (null)
Nov 12 11:33:55 iPhone homed(HomeKitDaemon)[181] <Error>: No unpaired accessory for server HMMTRAccessoryServer fa:e6:88:97:2a:ee
Nov 12 11:33:55 iPhone homed(HomeKitMetrics)[181] <Error>: [4264877660/1(3180582119)] tag="hmmtrAccessoryServerStateChange" desc="Error in progress state" errorDomain="MTRErrorDomain" errorCode="1" state="19"
Nov 12 11:33:55 iPhone homed(HomeKitMatter)[181] <Error>: [4264877660/1(3180582119)] CHIP Accessory pairing failed: Error Domain=MTRErrorDomain Code=1, <HMMTRAccessoryPairingEndContext, Step: HMMTRAccessoryPairingStep_GettingNetworkRequirement, Error: Error Domain=MTRErrorDomain Code=1 "The operation couldn\M-b\M^@\M^Yt be completed. (MTRErrorDomain error 1.)", Sourceerrordomain: MTRErrorDomain>
Is there anyone who has experienced or solved the same error as me?
Thanks.
Hi all.
I'm developing a homekit accessory, and I'm currently doing mfi certification.
The developed product is smart door lock and supports homekey.
Use below tools
iPhone 13 , XR , 11
HomeKit Certification Assistant 6.4.0
HomeKit Accessory Tester 9.3.0
HomeKit Companion 2.4.3
I recently updated my iPhone 11 to iOS 18.1
and if I proceed with TCL0029 of HCA, there is a problem.
Companion has no response to "SELECT step-up AID".
(Unified Access Air Protocol Specification R1.1.pdf)
The companion outputs the following message.
"Step-up Encountered Error"
There is no problem with iOS 17.x.
Products that have already been certified are experiencing the same symptoms.
There is no problem with using homekey in real life, only problem with companion.
I'm developing the firmware update feature for HomeKit accessory, I would like to know how to test HomeKit accessory firmware update in Home App before the accessory certification?
I have some questions about the ADK6.3 Diagnostic function:
If HAP_DIAGNOSTICS_MANUFACTURER is not enabled when compiling ADK, after adding the device through Home, the collecting log function cannot be found in the device settings. What is the reason? How to solve it?
If HAP_DIAGNOSTICS_MANUFACTURER is enabled during compilation, the vendor URL needs to be added when transmitting the diagnostic log. How is this vendor URL defined? How to add it to diagnosticsURLParameters?
How can I use the Home App in iOS device to test diagnostic functions before obtaining certification for HomeKit accessories?
I have tried filing a feedback, FB15509991, for help with this and that didn't go anywhere. Figured I would try the developer forums.
Overview
I am working on a matter device using the Matter SDK and the matter device basically consists of both a matter bridge and matter controller functionality.
The bridge part is currently a none-issue, however trying to have our device be an additional controller for the existing matter fabric.
The overall idea for our device as a matter controller is that it can be commissioned with Apple Home (via Matter BLE commissioning) and then view and control existing matter devices (over Wi-Fi network) on the Homekit matter fabric (convenient user experience), instead of our device having to form a matter fabric of its own and then having the user re-commission all their devices to add them our controller (difficult and possibly frustrating user experience), in order to have a consistent control experience between our device's display and Apple Home app.
The big problem
When we onboard our device via Apple Home app it does not have attribute write permission to other devices on the same fabric as we are seeing Unsupported Access (IM:0x0000057E) responses instead of expected attribute changes. Same for attempts to read valid endpoint/cluster/attributes.
The possible solution
Our operational device needs to be added to the access control list (ACL) with View and Operator permissions and then the ACL update pushed to all the fabric devices in order to give our device controller access to them.
The next problem
My question is what do we have to do in order for our device will be given control access permissions (View + Operator) in an ACL (access control list) update to other devices after our device has been commissioned?
Because the matter specification does not define a "Controller Cluster" that could be used to type a device as a matter controller to make it obvious that the device wishes to have controller permissions post commissioning. So that means its up to each fabric administrator implementer as to how to accomplish what I'm requesting to do.
I'm hoping somebody in the Apple team responsible for the Matter + HomeKit integration could give me some insight as to whether this is even possible at this time.
Test environment
The environment consists of:
iPhone running iOS 17.7
iPad running iPadOS 18.0.1
HomePod Mini with software version 18.0
Realtek WiFi module running Matter Fan+Light firmware (Matter SDK 1.3) for target/controlee
[our device] LCD display unit + Realtek WiFi module (Matter SDK 1.3) for controller.
I have been looking at the new feature in iOS 18 where it is possible to pair Matter accessories without a hub. Using the Home app I can successfully commission and control a Matter Thread Light Bulb directly (without a home hub in the network). I have an iPhone 15 Pro which includes the thread hardware.
I then tried to commission the same device in my own app using the MatterSupport framework. In this case the same user interface is displayed as when using the Home App but an error is displayed - "Thread Border Router Required."
Is it also possible to connect directly to a thread Matter device when using MatterSupport or does this only work when using the Home app?
Suppose I want to create a dummy switch for HomeKit using an app.
I run the app for the first time, the app registers itself as a dummy switch and all accessories see the app as an OFF switch.
The following day, I run the app again and turn the dummy switch ON. All accessories that were monitoring the status of that switch, adjusted themselves accordingly, run their automations and so on.
Can an app do that in iOS, macOS, iPadOS, watchOS, etc.?
If so, can you point me in the right direction?
Apple developer support could not answer my question which is the following:
How are Matter developers supposed to test accessory pairing, accessory communication and accessory discovery if the Console logs provided by Apple (iOS, MacOS, iPadOS) are encrypted, incomplete or straight up non-existent.
Current issue is mDNS-SD discovery, pairing and PAKE requests initialisation. Impossible to figure out why X or Y stopped on the Apple Device.
Chip-tool (provided by PROJECT-CHIP) acts 100% differently than iOS (Home) or iPadOS(Home).
Thank you
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)")
}
Hi, I wanted to start the central heating if the temperature is below a certain level, I am home and the time is in a range. I created an automation but it didn't fire. I think it's because the sensor condition is "Temperature Drops Below" not "Temperature Is Below". In other words because the temperature was already below the level at the time the time window opened, the automation didn't fire.
Does that sound correct? If so is it possible to do what I want which is to turn on the heating in the morning if it is cold?
I am using a Matter Device to do the OTA test with iPhone 8 Plus, HomePod mini, and the Home App. however, there is some abnormal behavior.
The problem is that:
The Matter device in the pop-up message is still the old firmware version after the OTA upgrade successfully. A few minutes later, the firmware version is updated in the device info but Apple Home still pop-up that a new firmware version is available for the Matter device with the same new version.
When I restart the HomePod mini, no more updates are available for my device. is the HomePod cached the firmware version?
The firmware version display format is incorrect? I remember the firmware format is in string e.g. 1.6.138. I could confirm this issue happened on HomePod mini V17.4. example:
The old firmware version of the Matter device should be 251689472 in number and 1.5.122.0 in string.
The new firmware version of the Matter device after OTA should be 1.6.138.0 in string and 268470784 in number
(OTA upgrade with new firmware version)
**Please let me know if more information is needed. **
Environment:
iPhone 8 Plus, IOS 16.7.5
Apple HomePod Mini V17.5
When I start the Homekit Accessory Simulator for Xcode 16.0 beta 2 I do not see the Robot Vacuum as an option.
I am working on an app for a home automation device.
If I were using HomeKit exclusively I could add custom services or custom characteristics on standard services and these things would all be reported to my app via HomeKit. There is sample code from Apple that demonstrates how to do this.
When a Matter device is commissioned using HomeKit you might expect custom clusters and/or custom attributes in a standard cluster would be translated to appropriate HomeKit services and characteristics, but this doesn't appear to be the case.
Is there a way to have HomeKit do this?
If not it seems I would need to use Matter directly rather than via HomeKit to access custom features. But if I commission the device using Matter in my app then I understand a new fabric is created and the device would not show in the Home app. Maybe the user needs to commission the device twice, once with my custom app and once with the Home app? That seems like a poor user experience to me. Perhaps that is the price paid for using a cross-platform standard?
Is there a better way to get the same level of customization using Matter that I am able to get using HomeKit?
Is there any api For Apple AirPods
I have an idea that will boost its usage