Files
L'électron rare f55093d6fe
ESP-IDF CI / Host Tests (Unity) (push) Successful in 1m8s
CI / firmware-native (push) Successful in 2m57s
Rust Protection Tests / Cargo test (host) (push) Failing after 3m21s
ESP-IDF CI / ESP-IDF Build (v5.4) (push) Failing after 6m55s
ESP-IDF CI / Memory Budget Gate (push) Has been skipped
qa-cicd-environments / qa-kxkm-s3-build (push) Successful in 8m53s
qa-cicd-environments / qa-sim-host (push) Successful in 2m2s
qa-cicd-environments / qa-kxkm-s3-memory-budget (push) Successful in 11m17s
chore: import KXKM Batterie Parallelator
Context: the project archive (KXKM_Batterie_Parallelator-main) had
no git history locally; a fresh repository is needed to host it on
git.saillant.cc (electron/KXKM_Batterie_Parallelator).

Approach: initialize a new repo on branch main, stage the archive
content, and harden .gitignore before the first commit.

Changes:
- Import the full project tree: firmware/, firmware-idf/,
  firmware-rs/, iosApp/, kxkm-bmu-app/, kxkm-api/, hardware/,
  docs/, specs/, scripts/, models/, tests/
- Keep project dotfiles tracked despite the trailing '.*' ignore
  rule: .github/, .claude/, .superpowers/, .gitattributes,
  .markdownlint.json
- Extend .gitignore: firmware/src/credentials.h (local secrets,
  template kept), kxkm-bmu-app/**/build/ (66 MB compiled iOS
  framework), .remember/ (session data)

Impact: the project can now be maintained on the self-hosted Gitea
forge with a clean, secret-free initial history.
2026-07-04 12:32:28 +02:00

566 lines
29 KiB
Plaintext

// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 77;
objects = {
/* Begin PBXBuildFile section */
BB22334455667788BLAB0001 /* BatteryLabelsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB22334455667788BLAB0002 /* BatteryLabelsView.swift */; };
060D8D2D855935F1BEE1685A /* VoltageChartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AC4206F6FB0F6D4D71FB7E1 /* VoltageChartView.swift */; };
064B62D281AEAA02729A0F1B /* DeviceSelectorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43ABA90AF8E356A8FB4F4B49 /* DeviceSelectorView.swift */; };
09E4CDA758805B415798A71F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2529217A25EC1127FC4F407B /* Assets.xcassets */; };
0BD37194240F3BB825307DE8 /* AuthViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67569C52BE7C0220A33602F3 /* AuthViewModel.swift */; };
1CB962253F34CB57297753CE /* BleManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE257666F33DBD732F1CC882 /* BleManager.swift */; };
277B3071844DE6613999C275 /* DashboardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 700B9D6B53715C3C3816871C /* DashboardViewModel.swift */; };
2C3413C1C8D39F1E75A2F8FA /* PinEntryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B1BC15FB87AD4B3275CA564 /* PinEntryView.swift */; };
3067F6041FCF8ADEC46CFAFC /* SharedStubs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22D533824F25FC1723431BE6 /* SharedStubs.swift */; };
33DA3880C9A554A9EF30BFBF /* BatteryDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39259945B98E4C39843A779D /* BatteryDetailView.swift */; };
33E3E03DC9EFA027935F9EB3 /* WifiConfigView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F8D1EF2A383025B06735AEA /* WifiConfigView.swift */; };
3FE754DA021E08E2F2B64098 /* SystemViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01ADEEB208B5FB8B56A0D51C /* SystemViewModel.swift */; };
459A5367660722950BB68784 /* BatteryDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 521B6FE6A41F2D6C8BCCF1D7 /* BatteryDetailViewModel.swift */; };
4895B071BD6553FFB4BA1A01 /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23D2D259FB88ED0A784F1068 /* OnboardingView.swift */; };
4E1BAA31C3E5743EE328A5EC /* AuditRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B849421CBBBC91671A8C269 /* AuditRowView.swift */; };
608112BF3C5E234E66F0F7E2 /* KXKMBmuApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EED5AC5492B853A84D40351 /* KXKMBmuApp.swift */; };
6492D2233C6D7A4910B93AF8 /* AuditViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C151C1366A79ABE7EB64BA9C /* AuditViewModel.swift */; };
65B987CFF77D50BAF468DA94 /* SyncConfigView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE22B0AF292CA5AF61FF5904 /* SyncConfigView.swift */; };
6DF48E3B6AE580057C7F930E /* ProtectionConfigView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3B0C9A29C2FB43C95303349 /* ProtectionConfigView.swift */; };
875AE5419BC47B9EE9881F1F /* BiometricAuth.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD60D2AECB93EEEB576B0E55 /* BiometricAuth.swift */; };
8C78A8172F853901003BB624 /* SolarCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C78A8162F853901003BB624 /* SolarCardView.swift */; };
8C78A81A2F853925003BB624 /* SolarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C78A8192F853925003BB624 /* SolarView.swift */; };
8C9E0F542F8652CC00093473 /* WifiKeychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C9E0F532F8652CC00093473 /* WifiKeychain.swift */; };
987036656FACD4C5E8C7E862 /* ConfigViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 705D1CE3DAAFB6DA948AD547 /* ConfigViewModel.swift */; };
A044BED3DE63BDBA887CA753 /* UserManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 599C082FAC1E1E65F6EB2A72 /* UserManagementView.swift */; };
A09612E54B3E699CED12E21F /* BatteryStateIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24799B1AC8B9B2F08B70C6DD /* BatteryStateIcon.swift */; };
A2E1D948A4387B91A970AF6A /* BatteryCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E48424398EFB6CEBE108E575 /* BatteryCellView.swift */; };
A86627D3775D942FC4D5A045 /* ConfigView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F93AF4721A4B3137369EFA1 /* ConfigView.swift */; };
AA11223344556677DNAM0001 /* DeviceNameView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA11223344556677DNAM0002 /* DeviceNameView.swift */; };
AA11223344556677MQTT0001 /* MqttConfigView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA11223344556677MQTT0002 /* MqttConfigView.swift */; };
AFF2B2F63093A65435F329B5 /* AuditView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12AA57315D84A3AB1984D9A /* AuditView.swift */; };
B27483583ED9E0E9683547BC /* TransportConfigView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 252A7B23DB63CC7121CFFB9D /* TransportConfigView.swift */; };
C6A73716ABAFFCE4A06A0B1C /* DashboardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 379A503998B00741DB667641 /* DashboardView.swift */; };
C751A1EAEB69FEE56C8E9A2B /* StatusBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55BC0A1B075A8943482DF38A /* StatusBarView.swift */; };
CE2E3C4C0664D27FBAB321B6 /* SystemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E464456652975B25B35B2979 /* SystemView.swift */; };
D127C965AFF5882BACBE29BA /* ConfirmationDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = D953460FDF153340A26278A8 /* ConfirmationDialog.swift */; };
E2B4DB1B081EBCAE9F39364F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C47F70C65E1C7313E463469 /* ContentView.swift */; };
FD563F16593A09B1E4277A0A /* SharedBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EE67BE788F8256657FFF2EE /* SharedBridge.swift */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
01ADEEB208B5FB8B56A0D51C /* SystemViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemViewModel.swift; sourceTree = "<group>"; };
0B1BC15FB87AD4B3275CA564 /* PinEntryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PinEntryView.swift; sourceTree = "<group>"; };
1F93AF4721A4B3137369EFA1 /* ConfigView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigView.swift; sourceTree = "<group>"; };
22D533824F25FC1723431BE6 /* SharedStubs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharedStubs.swift; sourceTree = "<group>"; };
23D2D259FB88ED0A784F1068 /* OnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = "<group>"; };
24799B1AC8B9B2F08B70C6DD /* BatteryStateIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BatteryStateIcon.swift; sourceTree = "<group>"; };
2529217A25EC1127FC4F407B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
252A7B23DB63CC7121CFFB9D /* TransportConfigView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransportConfigView.swift; sourceTree = "<group>"; };
2C47F70C65E1C7313E463469 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
379A503998B00741DB667641 /* DashboardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashboardView.swift; sourceTree = "<group>"; };
39259945B98E4C39843A779D /* BatteryDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BatteryDetailView.swift; sourceTree = "<group>"; };
3C3B63D9D2AE795AE72E6430 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
43ABA90AF8E356A8FB4F4B49 /* DeviceSelectorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceSelectorView.swift; sourceTree = "<group>"; };
521B6FE6A41F2D6C8BCCF1D7 /* BatteryDetailViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BatteryDetailViewModel.swift; sourceTree = "<group>"; };
55BC0A1B075A8943482DF38A /* StatusBarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusBarView.swift; sourceTree = "<group>"; };
599C082FAC1E1E65F6EB2A72 /* UserManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserManagementView.swift; sourceTree = "<group>"; };
5B849421CBBBC91671A8C269 /* AuditRowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuditRowView.swift; sourceTree = "<group>"; };
67569C52BE7C0220A33602F3 /* AuthViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthViewModel.swift; sourceTree = "<group>"; };
6EED5AC5492B853A84D40351 /* KXKMBmuApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KXKMBmuApp.swift; sourceTree = "<group>"; };
700B9D6B53715C3C3816871C /* DashboardViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashboardViewModel.swift; sourceTree = "<group>"; };
705D1CE3DAAFB6DA948AD547 /* ConfigViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigViewModel.swift; sourceTree = "<group>"; };
7AC4206F6FB0F6D4D71FB7E1 /* VoltageChartView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoltageChartView.swift; sourceTree = "<group>"; };
8C78A8162F853901003BB624 /* SolarCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SolarCardView.swift; sourceTree = "<group>"; };
8C78A8192F853925003BB624 /* SolarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SolarView.swift; sourceTree = "<group>"; };
8C9E0F532F8652CC00093473 /* WifiKeychain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WifiKeychain.swift; sourceTree = "<group>"; };
8CFE37462F864D28007D5519 /* KXKMBmu.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = KXKMBmu.entitlements; sourceTree = "<group>"; };
8EE67BE788F8256657FFF2EE /* SharedBridge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharedBridge.swift; sourceTree = "<group>"; };
8F8D1EF2A383025B06735AEA /* WifiConfigView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WifiConfigView.swift; sourceTree = "<group>"; };
A3B0C9A29C2FB43C95303349 /* ProtectionConfigView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProtectionConfigView.swift; sourceTree = "<group>"; };
AA11223344556677DNAM0002 /* DeviceNameView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceNameView.swift; sourceTree = "<group>"; };
BB22334455667788BLAB0002 /* BatteryLabelsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BatteryLabelsView.swift; sourceTree = "<group>"; };
AA11223344556677MQTT0002 /* MqttConfigView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MqttConfigView.swift; sourceTree = "<group>"; };
C151C1366A79ABE7EB64BA9C /* AuditViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuditViewModel.swift; sourceTree = "<group>"; };
D12AA57315D84A3AB1984D9A /* AuditView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuditView.swift; sourceTree = "<group>"; };
D953460FDF153340A26278A8 /* ConfirmationDialog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfirmationDialog.swift; sourceTree = "<group>"; };
DE257666F33DBD732F1CC882 /* BleManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BleManager.swift; sourceTree = "<group>"; };
E464456652975B25B35B2979 /* SystemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemView.swift; sourceTree = "<group>"; };
E48424398EFB6CEBE108E575 /* BatteryCellView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BatteryCellView.swift; sourceTree = "<group>"; };
EE22B0AF292CA5AF61FF5904 /* SyncConfigView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncConfigView.swift; sourceTree = "<group>"; };
FB932C06F748774FE285C751 /* KXKMBmu.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = KXKMBmu.app; sourceTree = BUILT_PRODUCTS_DIR; };
FD60D2AECB93EEEB576B0E55 /* BiometricAuth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BiometricAuth.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXGroup section */
0722A139DFD452CE8A1100F7 /* Resources */ = {
isa = PBXGroup;
children = (
2529217A25EC1127FC4F407B /* Assets.xcassets */,
3C3B63D9D2AE795AE72E6430 /* Info.plist */,
8CFE37462F864D28007D5519 /* KXKMBmu.entitlements */,
);
path = Resources;
sourceTree = "<group>";
};
2847B7E6C0CD42A5F43EE689 = {
isa = PBXGroup;
children = (
8D217C544207D45A96A278EA /* KXKMBmu */,
56A040ED67977AD74E0C25B0 /* Products */,
);
sourceTree = "<group>";
};
407F3052AA1FB9ADE607757D /* Audit */ = {
isa = PBXGroup;
children = (
5B849421CBBBC91671A8C269 /* AuditRowView.swift */,
D12AA57315D84A3AB1984D9A /* AuditView.swift */,
);
path = Audit;
sourceTree = "<group>";
};
56A040ED67977AD74E0C25B0 /* Products */ = {
isa = PBXGroup;
children = (
FB932C06F748774FE285C751 /* KXKMBmu.app */,
);
name = Products;
sourceTree = "<group>";
};
673811898398C4B945A6B78E /* Components */ = {
isa = PBXGroup;
children = (
24799B1AC8B9B2F08B70C6DD /* BatteryStateIcon.swift */,
D953460FDF153340A26278A8 /* ConfirmationDialog.swift */,
43ABA90AF8E356A8FB4F4B49 /* DeviceSelectorView.swift */,
55BC0A1B075A8943482DF38A /* StatusBarView.swift */,
);
path = Components;
sourceTree = "<group>";
};
7236E3C8D6B97D6FCA6150F6 /* System */ = {
isa = PBXGroup;
children = (
E464456652975B25B35B2979 /* SystemView.swift */,
);
path = System;
sourceTree = "<group>";
};
742963F53E07BB461591D615 /* App */ = {
isa = PBXGroup;
children = (
2C47F70C65E1C7313E463469 /* ContentView.swift */,
6EED5AC5492B853A84D40351 /* KXKMBmuApp.swift */,
);
path = App;
sourceTree = "<group>";
};
8C78A8182F853904003BB624 /* Solar */ = {
isa = PBXGroup;
children = (
8C78A8192F853925003BB624 /* SolarView.swift */,
);
path = Solar;
sourceTree = "<group>";
};
8D217C544207D45A96A278EA /* KXKMBmu */ = {
isa = PBXGroup;
children = (
742963F53E07BB461591D615 /* App */,
D6848667A58AA05BCDA43614 /* Helpers */,
0722A139DFD452CE8A1100F7 /* Resources */,
D4610350977FCED847EAE825 /* Stubs */,
BA35BE4AB1D78F74E413B963 /* ViewModels */,
DCBB7C1C5FFB047460E4C81F /* Views */,
);
path = KXKMBmu;
sourceTree = "<group>";
};
8EB7E8B3B2098DC3E80133BA /* Dashboard */ = {
isa = PBXGroup;
children = (
E48424398EFB6CEBE108E575 /* BatteryCellView.swift */,
379A503998B00741DB667641 /* DashboardView.swift */,
8C78A8162F853901003BB624 /* SolarCardView.swift */,
);
path = Dashboard;
sourceTree = "<group>";
};
9EEE6C1300DFADAA19438966 /* Config */ = {
isa = PBXGroup;
children = (
1F93AF4721A4B3137369EFA1 /* ConfigView.swift */,
A3B0C9A29C2FB43C95303349 /* ProtectionConfigView.swift */,
EE22B0AF292CA5AF61FF5904 /* SyncConfigView.swift */,
252A7B23DB63CC7121CFFB9D /* TransportConfigView.swift */,
599C082FAC1E1E65F6EB2A72 /* UserManagementView.swift */,
8F8D1EF2A383025B06735AEA /* WifiConfigView.swift */,
AA11223344556677MQTT0002 /* MqttConfigView.swift */,
AA11223344556677DNAM0002 /* DeviceNameView.swift */,
BB22334455667788BLAB0002 /* BatteryLabelsView.swift */,
);
path = Config;
sourceTree = "<group>";
};
BA35BE4AB1D78F74E413B963 /* ViewModels */ = {
isa = PBXGroup;
children = (
C151C1366A79ABE7EB64BA9C /* AuditViewModel.swift */,
67569C52BE7C0220A33602F3 /* AuthViewModel.swift */,
521B6FE6A41F2D6C8BCCF1D7 /* BatteryDetailViewModel.swift */,
705D1CE3DAAFB6DA948AD547 /* ConfigViewModel.swift */,
700B9D6B53715C3C3816871C /* DashboardViewModel.swift */,
01ADEEB208B5FB8B56A0D51C /* SystemViewModel.swift */,
);
path = ViewModels;
sourceTree = "<group>";
};
CDF1C2231129450A973D3283 /* Auth */ = {
isa = PBXGroup;
children = (
23D2D259FB88ED0A784F1068 /* OnboardingView.swift */,
0B1BC15FB87AD4B3275CA564 /* PinEntryView.swift */,
);
path = Auth;
sourceTree = "<group>";
};
D4610350977FCED847EAE825 /* Stubs */ = {
isa = PBXGroup;
children = (
DE257666F33DBD732F1CC882 /* BleManager.swift */,
22D533824F25FC1723431BE6 /* SharedStubs.swift */,
);
path = Stubs;
sourceTree = "<group>";
};
D6848667A58AA05BCDA43614 /* Helpers */ = {
isa = PBXGroup;
children = (
FD60D2AECB93EEEB576B0E55 /* BiometricAuth.swift */,
8EE67BE788F8256657FFF2EE /* SharedBridge.swift */,
8C9E0F532F8652CC00093473 /* WifiKeychain.swift */,
);
path = Helpers;
sourceTree = "<group>";
};
DCBB7C1C5FFB047460E4C81F /* Views */ = {
isa = PBXGroup;
children = (
407F3052AA1FB9ADE607757D /* Audit */,
CDF1C2231129450A973D3283 /* Auth */,
673811898398C4B945A6B78E /* Components */,
9EEE6C1300DFADAA19438966 /* Config */,
8EB7E8B3B2098DC3E80133BA /* Dashboard */,
E214873C14A8D75B52351C5B /* Detail */,
7236E3C8D6B97D6FCA6150F6 /* System */,
8C78A8182F853904003BB624 /* Solar */,
);
path = Views;
sourceTree = "<group>";
};
E214873C14A8D75B52351C5B /* Detail */ = {
isa = PBXGroup;
children = (
39259945B98E4C39843A779D /* BatteryDetailView.swift */,
7AC4206F6FB0F6D4D71FB7E1 /* VoltageChartView.swift */,
);
path = Detail;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
85FE263F6B7A5D5015B9D9E9 /* KXKMBmu */ = {
isa = PBXNativeTarget;
buildConfigurationList = CFC08B3E95D23EDA6DED7067 /* Build configuration list for PBXNativeTarget "KXKMBmu" */;
buildPhases = (
749A091295B5B4BF4AEE0218 /* Sources */,
C193C33746B45A0543A7F804 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = KXKMBmu;
packageProductDependencies = (
);
productName = KXKMBmu;
productReference = FB932C06F748774FE285C751 /* KXKMBmu.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
14A079CAB5732ADEA88D52C7 /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
LastUpgradeCheck = 1430;
TargetAttributes = {
85FE263F6B7A5D5015B9D9E9 = {
DevelopmentTeam = JRLQM7V3V5;
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 7D01507647DA5DE5DFD197B8 /* Build configuration list for PBXProject "KXKMBmu" */;
developmentRegion = fr;
hasScannedForEncodings = 0;
knownRegions = (
Base,
fr,
);
mainGroup = 2847B7E6C0CD42A5F43EE689;
minimizedProjectReferenceProxies = 1;
preferredProjectObjectVersion = 77;
productRefGroup = 56A040ED67977AD74E0C25B0 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
85FE263F6B7A5D5015B9D9E9 /* KXKMBmu */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
C193C33746B45A0543A7F804 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
09E4CDA758805B415798A71F /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
749A091295B5B4BF4AEE0218 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
AA11223344556677MQTT0001 /* MqttConfigView.swift in Sources */,
AA11223344556677DNAM0001 /* DeviceNameView.swift in Sources */,
BB22334455667788BLAB0001 /* BatteryLabelsView.swift in Sources */,
4E1BAA31C3E5743EE328A5EC /* AuditRowView.swift in Sources */,
AFF2B2F63093A65435F329B5 /* AuditView.swift in Sources */,
6492D2233C6D7A4910B93AF8 /* AuditViewModel.swift in Sources */,
0BD37194240F3BB825307DE8 /* AuthViewModel.swift in Sources */,
8C78A8172F853901003BB624 /* SolarCardView.swift in Sources */,
A2E1D948A4387B91A970AF6A /* BatteryCellView.swift in Sources */,
33DA3880C9A554A9EF30BFBF /* BatteryDetailView.swift in Sources */,
459A5367660722950BB68784 /* BatteryDetailViewModel.swift in Sources */,
A09612E54B3E699CED12E21F /* BatteryStateIcon.swift in Sources */,
875AE5419BC47B9EE9881F1F /* BiometricAuth.swift in Sources */,
8C9E0F542F8652CC00093473 /* WifiKeychain.swift in Sources */,
1CB962253F34CB57297753CE /* BleManager.swift in Sources */,
A86627D3775D942FC4D5A045 /* ConfigView.swift in Sources */,
987036656FACD4C5E8C7E862 /* ConfigViewModel.swift in Sources */,
D127C965AFF5882BACBE29BA /* ConfirmationDialog.swift in Sources */,
E2B4DB1B081EBCAE9F39364F /* ContentView.swift in Sources */,
C6A73716ABAFFCE4A06A0B1C /* DashboardView.swift in Sources */,
277B3071844DE6613999C275 /* DashboardViewModel.swift in Sources */,
064B62D281AEAA02729A0F1B /* DeviceSelectorView.swift in Sources */,
608112BF3C5E234E66F0F7E2 /* KXKMBmuApp.swift in Sources */,
4895B071BD6553FFB4BA1A01 /* OnboardingView.swift in Sources */,
2C3413C1C8D39F1E75A2F8FA /* PinEntryView.swift in Sources */,
6DF48E3B6AE580057C7F930E /* ProtectionConfigView.swift in Sources */,
8C78A81A2F853925003BB624 /* SolarView.swift in Sources */,
FD563F16593A09B1E4277A0A /* SharedBridge.swift in Sources */,
3067F6041FCF8ADEC46CFAFC /* SharedStubs.swift in Sources */,
C751A1EAEB69FEE56C8E9A2B /* StatusBarView.swift in Sources */,
65B987CFF77D50BAF468DA94 /* SyncConfigView.swift in Sources */,
CE2E3C4C0664D27FBAB321B6 /* SystemView.swift in Sources */,
3FE754DA021E08E2F2B64098 /* SystemViewModel.swift in Sources */,
B27483583ED9E0E9683547BC /* TransportConfigView.swift in Sources */,
A044BED3DE63BDBA887CA753 /* UserManagementView.swift in Sources */,
060D8D2D855935F1BEE1685A /* VoltageChartView.swift in Sources */,
33E3E03DC9EFA027935F9EB3 /* WifiConfigView.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
05C96BF79D0B7438309B80E5 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = JRLQM7V3V5;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"DEBUG=1",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.9;
};
name = Debug;
};
5C906C758497DE7A62753856 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = KXKMBmu/KXKMBmu.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
INFOPLIST_FILE = KXKMBmu/Resources/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = fr.kxkm.bmu.KXKMBmu;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
6691A5EE8231579EE8D731D0 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_ENTITLEMENTS = KXKMBmu/KXKMBmu.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
INFOPLIST_FILE = KXKMBmu/Resources/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = fr.kxkm.bmu.KXKMBmu;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
73DC0B0C9F3EC526F3502378 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = JRLQM7V3V5;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.9;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
7D01507647DA5DE5DFD197B8 /* Build configuration list for PBXProject "KXKMBmu" */ = {
isa = XCConfigurationList;
buildConfigurations = (
05C96BF79D0B7438309B80E5 /* Debug */,
73DC0B0C9F3EC526F3502378 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
CFC08B3E95D23EDA6DED7067 /* Build configuration list for PBXNativeTarget "KXKMBmu" */ = {
isa = XCConfigurationList;
buildConfigurations = (
6691A5EE8231579EE8D731D0 /* Debug */,
5C906C758497DE7A62753856 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 14A079CAB5732ADEA88D52C7 /* Project object */;
}