Skip to content

Commit

Permalink
Split Matter stack init apart from commissioner init in the Darwin fr…
Browse files Browse the repository at this point in the history
…amework (#17307)

* Split Matter stack init apart from commissioner init in the Darwin framework.

* Rename MatterStack to MatterControllerFactory.

* Change kvsPath to be an NSString.

* Add validation that our fabric state matches caller expectations.

* For now, allow starting a controller without a provided keypair.

* Implement a CHIPPeristentStorageDelegate to use for Darwin tests.

Now we can require a non-nil storage delegate for MatterControllerFactory init.

* Remove NSUserDefaults fallback for storage, since consumers always provide it now.
  • Loading branch information
bzbarsky-apple authored and pull[bot] committed Dec 12, 2023
1 parent f5d1774 commit 2628722
Show file tree
Hide file tree
Showing 27 changed files with 1,353 additions and 360 deletions.
39 changes: 28 additions & 11 deletions examples/chip-tool-darwin/commands/common/CHIPCommandBridge.mm
Original file line number Diff line number Diff line change
Expand Up @@ -34,20 +34,39 @@
CHIPToolKeypair * nocSigner = [[CHIPToolKeypair alloc] init];
storage = [[CHIPToolPersistentStorageDelegate alloc] init];

mController = [CHIPDeviceController sharedController];
if (mController == nil) {
ChipLogError(chipTool, "Controller is nil");
auto factory = [MatterControllerFactory sharedInstance];
if (factory == nil) {
ChipLogError(chipTool, "Controller factory is nil");
return CHIP_ERROR_INTERNAL;
}

[mController setListenPort:kListenPort];
[mController setKeyValueStoreManagerPath:"/tmp/chip_kvs_darwin"];
auto params = [[MatterControllerFactoryParams alloc] initWithStorage:storage];
params.port = @(kListenPort);
params.startServer = YES;
params.kvsPath = @("/tmp/chip_kvs_darwin");

if ([factory startup:params] == NO) {
ChipLogError(chipTool, "Controller factory startup failed");
return CHIP_ERROR_INTERNAL;
}

ReturnLogErrorOnFailure([nocSigner createOrLoadKeys:storage]);

ipk = [nocSigner getIPK];

if (![mController startup:storage vendorId:chip::VendorId::TestVendor1 nocSigner:nocSigner ipk:ipk paaCerts:nil]) {
auto controllerParams = [[CHIPDeviceControllerStartupParams alloc] initWithKeypair:nocSigner];
controllerParams.vendorId = chip::VendorId::TestVendor1;
controllerParams.fabricId = 1;
controllerParams.ipk = ipk;

// We're not sure whether we're creating a new fabric or using an
// existing one, so just try both.
mController = [factory startControllerOnExistingFabric:controllerParams];
if (mController == nil) {
// Maybe we didn't have this fabric yet.
mController = [factory startControllerOnNewFabric:controllerParams];
}
if (mController == nil) {
ChipLogError(chipTool, "Controller startup failure.");
return CHIP_ERROR_INTERNAL;
}
Expand All @@ -63,11 +82,9 @@
CHIP_ERROR CHIPCommandBridge::ShutdownCommissioner()
{
ChipLogProgress(chipTool, "Shutting down controller");
BOOL result = [CurrentCommissioner() shutdown];
if (!result) {
ChipLogError(chipTool, "Unable to shut down controller");
return CHIP_ERROR_INTERNAL;
}
[CurrentCommissioner() shutdown];

[[MatterControllerFactory sharedInstance] shutdown];

return CHIP_NO_ERROR;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ class TestCommandBridge : public CHIPCommandBridge, public ValueChecker, public

void WaitForCommissionee(chip::NodeId nodeId)
{
CHIPDeviceController * controller = [CHIPDeviceController sharedController];
CHIPDeviceController * controller = CurrentCommissioner();
VerifyOrReturn(controller != nil, SetCommandExitStatus(CHIP_ERROR_INCORRECT_STATE));

[controller getConnectedDevice:nodeId
Expand Down
2 changes: 1 addition & 1 deletion src/controller/CHIPDeviceControllerSystemState.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ struct DeviceControllerSystemStateParams
#if CONFIG_NETWORK_LAYER_BLE
Ble::BleLayer * bleLayer = nullptr;
#endif
Credentials::GroupDataProvider * groupDataProvider = nullptr;

// Params that will be deallocated via Platform::Delete in
// DeviceControllerSystemState::Shutdown.
Expand All @@ -90,7 +91,6 @@ struct DeviceControllerSystemStateParams
CASESessionManager * caseSessionManager = nullptr;
OperationalDevicePool * operationalDevicePool = nullptr;
CASEClientPool * caseClientPool = nullptr;
Credentials::GroupDataProvider * groupDataProvider = nullptr;
};

// A representation of the internal state maintained by the DeviceControllerFactory
Expand Down
2 changes: 1 addition & 1 deletion src/credentials/CHIPCert.h
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@ using P256ECDSASignatureSpan = FixedByteSpan<Crypto::kP256_ECDSA_Signature_Lengt
/**
* @brief A data structure for holding a P256 Public Key, without the ownership of it.
*/
using P256PublicKeySpan = FixedByteSpan<Crypto::kP256_Point_Length>;
using P256PublicKeySpan = FixedByteSpan<Crypto::kP256_PublicKey_Length>;

/**
* @brief A data structure for holding a P256 Integer, without the ownership of it.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ extern NSString * const kNetworkPasswordDefaultsKey;
extern NSString * const kFabricIdKey;

CHIPDeviceController * InitializeCHIP(void);
void CHIPRestartController(CHIPDeviceController * controller);
CHIPDeviceController * CHIPRestartController(CHIPDeviceController * controller);
id CHIPGetDomainValueForKey(NSString * domain, NSString * key);
void CHIPSetDomainValueForKey(NSString * domain, NSString * key, id value);
void CHIPRemoveDomainValueForKey(NSString * domain, NSString * key);
Expand Down
35 changes: 29 additions & 6 deletions src/darwin/CHIPTool/CHIPTool/Framework Helpers/DefaultsUtils.m
Original file line number Diff line number Diff line change
Expand Up @@ -68,24 +68,47 @@ void CHIPSetNextAvailableDeviceID(uint64_t id)

static uint16_t kTestVendorId = 0xFFF1u;

static CHIPDeviceController * sController = nil;

CHIPDeviceController * InitializeCHIP(void)
{
static dispatch_once_t onceToken;
CHIPDeviceController * controller = [CHIPDeviceController sharedController];
dispatch_once(&onceToken, ^{
storage = [[CHIPToolPersistentStorageDelegate alloc] init];
[controller startup:storage vendorId:kTestVendorId nocSigner:nil];
CHIPToolPersistentStorageDelegate * storage = [[CHIPToolPersistentStorageDelegate alloc] init];
__auto_type * factory = [MatterControllerFactory sharedInstance];
__auto_type * factoryParams = [[MatterControllerFactoryParams alloc] initWithStorage:storage];
if (![factory startup:factoryParams]) {
return;
}

__auto_type * params = [[CHIPDeviceControllerStartupParams alloc] initWithKeypair:nil];
params.vendorId = kTestVendorId;
params.fabricId = 1;

// We're not sure whether we have a fabric configured already; try as if
// we did, and if not fall back to creating a new one.
sController = [factory startControllerOnExistingFabric:params];
if (sController == nil) {
sController = [factory startControllerOnNewFabric:params];
}
});

return controller;
return sController;
}

void CHIPRestartController(CHIPDeviceController * controller)
CHIPDeviceController * CHIPRestartController(CHIPDeviceController * controller)
{
NSLog(@"Shutting down the stack");
[controller shutdown];

NSLog(@"Starting up the stack");
[controller startup:storage vendorId:kTestVendorId nocSigner:nil];
__auto_type * params = [[CHIPDeviceControllerStartupParams alloc] initWithKeypair:nil];
params.vendorId = kTestVendorId;
params.fabricId = 1;

sController = [[MatterControllerFactory sharedInstance] startControllerOnExistingFabric:params];

return sController;
}

uint64_t CHIPGetLastPairedDeviceId(void)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -484,7 +484,7 @@ - (void)onPairingComplete:(NSError * _Nullable)error
if (error != nil) {
NSLog(@"Got pairing error back %@", error);
} else {
CHIPDeviceController * controller = [CHIPDeviceController sharedController];
CHIPDeviceController * controller = InitializeCHIP();
uint64_t deviceId = CHIPGetLastPairedDeviceId();
if ([controller deviceBeingCommissionedOverBLE:deviceId]) {
dispatch_async(dispatch_get_main_queue(), ^{
Expand Down Expand Up @@ -655,7 +655,7 @@ - (void)commissionWithSSID:(NSString *)ssid password:(NSString *)password
{

NSError * error;
CHIPDeviceController * controller = [CHIPDeviceController sharedController];
CHIPDeviceController * controller = InitializeCHIP();
// create commissioning params in ObjC. Pass those in here with network credentials.
// maybe this just becomes the new norm
CHIPCommissioningParameters * params = [[CHIPCommissioningParameters alloc] init];
Expand Down Expand Up @@ -701,7 +701,7 @@ - (void)onConnectNetworkResponse:(NSError *)error
}

uint64_t deviceId = CHIPGetNextAvailableDeviceID() - 1;
CHIPDeviceController * controller = [CHIPDeviceController sharedController];
CHIPDeviceController * controller = InitializeCHIP();
[controller updateDevice:deviceId fabricId:0];
}

Expand Down Expand Up @@ -809,7 +809,9 @@ - (NSString *)getNetworkName:(NSNumber *)discriminator

- (void)_restartMatterStack
{
CHIPRestartController(self.chipController);
self.chipController = CHIPRestartController(self.chipController);
dispatch_queue_t callbackQueue = dispatch_queue_create("com.zigbee.chip.qrcodevc.callback", DISPATCH_QUEUE_SERIAL);
[self.chipController setPairingDelegate:self queue:callbackQueue];
}

- (void)handleRendezVousDefault:(NSString *)payload
Expand Down
20 changes: 20 additions & 0 deletions src/darwin/Framework/CHIP.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@
2CB7163F252F731E0026E2BB /* CHIPDevicePairingDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CB7163E252F731E0026E2BB /* CHIPDevicePairingDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
2FD775552695557E00FF4B12 /* error-mapping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2FD775542695557E00FF4B12 /* error-mapping.cpp */; };
5129BCFD26A9EE3300122DDF /* CHIPError.h in Headers */ = {isa = PBXBuildFile; fileRef = 5129BCFC26A9EE3300122DDF /* CHIPError.h */; settings = {ATTRIBUTES = (Public, ); }; };
5136661328067D550025EDAE /* CHIPDeviceController_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5136660F28067D540025EDAE /* CHIPDeviceController_Internal.h */; };
5136661428067D550025EDAE /* MatterControllerFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5136661028067D540025EDAE /* MatterControllerFactory.mm */; };
5136661528067D550025EDAE /* MatterControllerFactory_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 5136661128067D540025EDAE /* MatterControllerFactory_Internal.h */; };
5136661628067D550025EDAE /* MatterControllerFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 5136661228067D550025EDAE /* MatterControllerFactory.h */; settings = {ATTRIBUTES = (Public, ); }; };
513DDB862761F69300DAA01A /* CHIPAttributeTLVValueDecoder_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 513DDB852761F69300DAA01A /* CHIPAttributeTLVValueDecoder_Internal.h */; };
513DDB8A2761F6F900DAA01A /* CHIPAttributeTLVValueDecoder.mm in Sources */ = {isa = PBXBuildFile; fileRef = 513DDB892761F6F900DAA01A /* CHIPAttributeTLVValueDecoder.mm */; };
51431AF927D2973E008A7943 /* CHIPIMDispatch.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51431AF827D2973E008A7943 /* CHIPIMDispatch.mm */; };
Expand All @@ -43,6 +47,7 @@
51B22C222740CB1D008D5055 /* CHIPCommandPayloadsObjc.h in Headers */ = {isa = PBXBuildFile; fileRef = 51B22C212740CB1D008D5055 /* CHIPCommandPayloadsObjc.h */; settings = {ATTRIBUTES = (Public, ); }; };
51B22C262740CB32008D5055 /* CHIPStructsObjc.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51B22C252740CB32008D5055 /* CHIPStructsObjc.mm */; };
51B22C2A2740CB47008D5055 /* CHIPCommandPayloadsObjc.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51B22C292740CB47008D5055 /* CHIPCommandPayloadsObjc.mm */; };
51D10D2E2808E2CA00E8CA3D /* CHIPTestStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 51D10D2D2808E2CA00E8CA3D /* CHIPTestStorage.m */; };
51E0310027EA20D20083DC9C /* CHIPControllerAccessControl.h in Headers */ = {isa = PBXBuildFile; fileRef = 51E030FE27EA20D20083DC9C /* CHIPControllerAccessControl.h */; };
51E0310127EA20D20083DC9C /* CHIPControllerAccessControl.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51E030FF27EA20D20083DC9C /* CHIPControllerAccessControl.mm */; };
51E24E73274E0DAC007CCF6E /* CHIPErrorTestUtils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 51E24E72274E0DAC007CCF6E /* CHIPErrorTestUtils.mm */; };
Expand Down Expand Up @@ -133,6 +138,10 @@
2CB7163E252F731E0026E2BB /* CHIPDevicePairingDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHIPDevicePairingDelegate.h; sourceTree = "<group>"; };
2FD775542695557E00FF4B12 /* error-mapping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "error-mapping.cpp"; path = "../../../app/util/error-mapping.cpp"; sourceTree = "<group>"; };
5129BCFC26A9EE3300122DDF /* CHIPError.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CHIPError.h; path = CHIP/CHIPError.h; sourceTree = "<group>"; };
5136660F28067D540025EDAE /* CHIPDeviceController_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHIPDeviceController_Internal.h; sourceTree = "<group>"; };
5136661028067D540025EDAE /* MatterControllerFactory.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MatterControllerFactory.mm; sourceTree = "<group>"; };
5136661128067D540025EDAE /* MatterControllerFactory_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MatterControllerFactory_Internal.h; sourceTree = "<group>"; };
5136661228067D550025EDAE /* MatterControllerFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MatterControllerFactory.h; sourceTree = "<group>"; };
513DDB852761F69300DAA01A /* CHIPAttributeTLVValueDecoder_Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHIPAttributeTLVValueDecoder_Internal.h; sourceTree = "<group>"; };
513DDB892761F6F900DAA01A /* CHIPAttributeTLVValueDecoder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = CHIPAttributeTLVValueDecoder.mm; path = "zap-generated/CHIPAttributeTLVValueDecoder.mm"; sourceTree = "<group>"; };
51431AF827D2973E008A7943 /* CHIPIMDispatch.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CHIPIMDispatch.mm; sourceTree = "<group>"; };
Expand All @@ -141,6 +150,7 @@
51B22C212740CB1D008D5055 /* CHIPCommandPayloadsObjc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CHIPCommandPayloadsObjc.h; path = "zap-generated/CHIPCommandPayloadsObjc.h"; sourceTree = "<group>"; };
51B22C252740CB32008D5055 /* CHIPStructsObjc.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = CHIPStructsObjc.mm; path = "zap-generated/CHIPStructsObjc.mm"; sourceTree = "<group>"; };
51B22C292740CB47008D5055 /* CHIPCommandPayloadsObjc.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = CHIPCommandPayloadsObjc.mm; path = "zap-generated/CHIPCommandPayloadsObjc.mm"; sourceTree = "<group>"; };
51D10D2D2808E2CA00E8CA3D /* CHIPTestStorage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHIPTestStorage.m; sourceTree = "<group>"; };
51E030FE27EA20D20083DC9C /* CHIPControllerAccessControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHIPControllerAccessControl.h; sourceTree = "<group>"; };
51E030FF27EA20D20083DC9C /* CHIPControllerAccessControl.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CHIPControllerAccessControl.mm; sourceTree = "<group>"; };
51E24E72274E0DAC007CCF6E /* CHIPErrorTestUtils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CHIPErrorTestUtils.mm; sourceTree = "<group>"; };
Expand Down Expand Up @@ -318,6 +328,10 @@
B2E0D7B0245B0B5C003C5B48 /* CHIPSetupPayload.mm */,
991DC0822475F45400C13860 /* CHIPDeviceController.h */,
991DC0872475F47D00C13860 /* CHIPDeviceController.mm */,
5136660F28067D540025EDAE /* CHIPDeviceController_Internal.h */,
5136661128067D540025EDAE /* MatterControllerFactory_Internal.h */,
5136661228067D550025EDAE /* MatterControllerFactory.h */,
5136661028067D540025EDAE /* MatterControllerFactory.mm */,
5A7947E227C0101200434CF2 /* CHIPDeviceController+XPC.h */,
5A7947E327C0129500434CF2 /* CHIPDeviceController+XPC.m */,
B20252912459E34F00F97062 /* Info.plist */,
Expand All @@ -339,6 +353,7 @@
isa = PBXGroup;
children = (
51E24E72274E0DAC007CCF6E /* CHIPErrorTestUtils.mm */,
51D10D2D2808E2CA00E8CA3D /* CHIPTestStorage.m */,
1EB41B7A263C4CC60048E4C1 /* CHIPClustersTests.m */,
99C65E0F267282F1003402F6 /* CHIPControllerTests.m */,
5AE6D4E327A99041001F2493 /* CHIPDeviceTests.m */,
Expand Down Expand Up @@ -367,6 +382,7 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
5136661628067D550025EDAE /* MatterControllerFactory.h in Headers */,
5A6FEC9927B5C88900F25F42 /* CHIPDeviceOverXPC.h in Headers */,
51B22C222740CB1D008D5055 /* CHIPCommandPayloadsObjc.h in Headers */,
51B22C1E2740CB0A008D5055 /* CHIPStructsObjc.h in Headers */,
Expand All @@ -376,6 +392,7 @@
5A6FEC9227B5669C00F25F42 /* CHIPDeviceControllerOverXPC.h in Headers */,
2C1B027B2641DB4E00780EF1 /* CHIPOperationalCredentialsDelegate.h in Headers */,
99D466E12798936D0089A18F /* CHIPCommissioningParameters.h in Headers */,
5136661528067D550025EDAE /* MatterControllerFactory_Internal.h in Headers */,
B289D4212639C0D300D4E314 /* CHIPOnboardingPayloadParser.h in Headers */,
513DDB862761F69300DAA01A /* CHIPAttributeTLVValueDecoder_Internal.h in Headers */,
2CB7163F252F731E0026E2BB /* CHIPDevicePairingDelegate.h in Headers */,
Expand All @@ -392,6 +409,7 @@
88EBF8D027FABDD500686BC1 /* CHIPDeviceAttestationDelegateBridge.h in Headers */,
5A60370827EA1FF60020DB79 /* CHIPAttributeCacheContainer+XPC.h in Headers */,
5ACDDD7E27CD3F3A00EFD68A /* CHIPAttributeCacheContainer_Internal.h in Headers */,
5136661328067D550025EDAE /* CHIPDeviceController_Internal.h in Headers */,
998F286D26D55E10001846C6 /* CHIPKeypair.h in Headers */,
1ED276E426C5832500547A89 /* CHIPCluster.h in Headers */,
5A6FEC9A27B5C89300F25F42 /* CHIPDeviceControllerXPCConnection.h in Headers */,
Expand Down Expand Up @@ -537,6 +555,7 @@
27A53C1827FBC6920053F131 /* CHIPAttestationTrustStoreBridge.mm in Sources */,
998F287126D56940001846C6 /* CHIPP256KeypairBridge.mm in Sources */,
1E16A90226B98AB700683C53 /* CHIPTestClustersObjc.mm in Sources */,
5136661428067D550025EDAE /* MatterControllerFactory.mm in Sources */,
51B22C2A2740CB47008D5055 /* CHIPCommandPayloadsObjc.mm in Sources */,
2C5EEEF7268A85C400CAE3D3 /* CHIPDeviceConnectionBridge.mm in Sources */,
51B22C262740CB32008D5055 /* CHIPStructsObjc.mm in Sources */,
Expand Down Expand Up @@ -571,6 +590,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
51D10D2E2808E2CA00E8CA3D /* CHIPTestStorage.m in Sources */,
1EB41B7B263C4CC60048E4C1 /* CHIPClustersTests.m in Sources */,
997DED1A26955D0200975E97 /* CHIPThreadOperationalDatasetTests.mm in Sources */,
99C65E10267282F1003402F6 /* CHIPControllerTests.m in Sources */,
Expand Down
4 changes: 4 additions & 0 deletions src/darwin/Framework/CHIP/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ static_library("framework") {
"CHIPDeviceConnectionBridge.mm",
"CHIPDeviceController.h",
"CHIPDeviceController.mm",
"CHIPDeviceController_Internal.h",
"CHIPDevicePairingDelegate.h",
"CHIPDevicePairingDelegateBridge.h",
"CHIPDevicePairingDelegateBridge.mm",
Expand All @@ -62,6 +63,9 @@ static_library("framework") {
"CHIPQRCodeSetupPayloadParser.mm",
"CHIPSetupPayload.h",
"CHIPSetupPayload.mm",
"MatterControllerFactory.h",
"MatterControllerFactory.mm",
"MatterControllerFactory_Internal.h",
"zap-generated/CHIPAttributeTLVValueDecoder.mm",
"zap-generated/CHIPCallbackBridge.mm",
"zap-generated/CHIPClustersObjc.h",
Expand Down
1 change: 1 addition & 0 deletions src/darwin/Framework/CHIP/CHIP.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
#import <CHIP/CHIPSetupPayload.h>
#import <CHIP/CHIPStructsObjc.h>
#import <CHIP/CHIPThreadOperationalDataset.h>
#import <CHIP/MatterControllerFactory.h>

#import <Foundation/Foundation.h>
//! Project version number for CHIP.
Expand Down
Loading

0 comments on commit 2628722

Please sign in to comment.