Die Uhr funkt den Neigungsmesser jetzt selbst an, statt die Werte vom iPhone weiterreichen zu lassen. Bei diesem einen Gerät geht das, und nur bei ihm: Es bewirbt seinen Dienst, ist also ohne Einrichtung auffindbar, und es ist unverschlüsselt – es gibt keinen Schlüssel, der auf der Uhr ein zweites Mal lagern müsste. Damit steht die Nivellierung am Handgelenk ohne geöffnetes iPhone, und genau dafür hebt man beim Rangieren den Arm. Batterie, Solar und Kühlbox bleiben beim Weg über das iPhone: Sie lassen nur eine Verbindung zu, und die Victron-Schlüssel liegen in dessen Keychain. Die Einbaulage des Sensors reist einmal mit dem Datensatz herüber und bleibt auf der Uhr gespeichert – ohne sie stünden längs und quer je nach Einbau vertauscht. LevelSession und VanAlignProtocol wandern nach Shared/Bluetooth; beide sind reines CoreBluetooth und laufen auf watchOS unverändert. Die Fahrzeugansicht gibt es jetzt auch auf der Uhr, umschaltbar zur Libelle; Überhöhung und Farbregeln stehen in Shared/VehicleTilt.swift, damit iPhone und Uhr nicht auseinanderlaufen. Kalibrieren fällt auf der Uhr weg, samt Befehl. Das gehört einmalig ans iPhone mit ebenem Fahrzeug; ein Knopf dafür am Handgelenk wäre vor allem eine Gelegenheit, die Nullage aus Versehen zu verstellen. Zwei Fehler dabei behoben: * Beim Start meldete die Uhr dem iPhone nie, dass jemand hinschaut – onChange(of: scenePhase) feuert beim ersten Erscheinen nicht. Der schnelle Sendetakt blieb aus, bis die App einmal im Hintergrund war. * Ein einmal direkt gemessener Wert hatte für immer Vorrang. Blieb der Sensor stehen, ohne die Verbindung zu trennen, klebte die Anzeige daran. Jetzt gilt er drei Sekunden als frisch, danach übernimmt der Stand des iPhones – mit Alter und Grund daneben. Ausserdem WATCHOS_DEPLOYMENT_TARGET auf 10.0 (Xcode hatte 11.6 gesetzt) und die Bluetooth-Begründung für das Watch-Target. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
452 lines
16 KiB
Plaintext
452 lines
16 KiB
Plaintext
// !$*UTF8*$!
|
|
{
|
|
archiveVersion = 1;
|
|
classes = {
|
|
};
|
|
objectVersion = 77;
|
|
objects = {
|
|
|
|
/* Begin PBXBuildFile section */
|
|
AA0000000000000000000027 /* CamperMonitorWatch.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = AA0000000000000000000016 /* CamperMonitorWatch.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
|
/* End PBXBuildFile section */
|
|
|
|
/* Begin PBXContainerItemProxy section */
|
|
AA0000000000000000000028 /* PBXContainerItemProxy */ = {
|
|
isa = PBXContainerItemProxy;
|
|
containerPortal = AA0000000000000000000009 /* Project object */;
|
|
proxyType = 1;
|
|
remoteGlobalIDString = AA0000000000000000000022;
|
|
remoteInfo = CamperMonitorWatch;
|
|
};
|
|
/* End PBXContainerItemProxy section */
|
|
|
|
/* Begin PBXCopyFilesBuildPhase section */
|
|
AA0000000000000000000026 /* Embed Watch Content */ = {
|
|
isa = PBXCopyFilesBuildPhase;
|
|
buildActionMask = 2147483647;
|
|
dstPath = "$(CONTENTS_FOLDER_PATH)/Watch";
|
|
dstSubfolderSpec = 16;
|
|
files = (
|
|
AA0000000000000000000027 /* CamperMonitorWatch.app in Embed Watch Content */,
|
|
);
|
|
name = "Embed Watch Content";
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
};
|
|
/* End PBXCopyFilesBuildPhase section */
|
|
|
|
/* Begin PBXFileReference section */
|
|
AA0000000000000000000001 /* CamperMonitor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CamperMonitor.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
AA0000000000000000000016 /* CamperMonitorWatch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CamperMonitorWatch.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
AA0000000000000000000030 /* CamperMonitor-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "CamperMonitor-Info.plist"; sourceTree = "<group>"; };
|
|
/* End PBXFileReference section */
|
|
|
|
/* Begin PBXFileSystemSynchronizedRootGroup section */
|
|
AA0000000000000000000002 /* CamperMonitor */ = {
|
|
isa = PBXFileSystemSynchronizedRootGroup;
|
|
path = CamperMonitor;
|
|
sourceTree = "<group>";
|
|
};
|
|
AA0000000000000000000017 /* CamperMonitorWatch */ = {
|
|
isa = PBXFileSystemSynchronizedRootGroup;
|
|
path = CamperMonitorWatch;
|
|
sourceTree = "<group>";
|
|
};
|
|
AA0000000000000000000018 /* Shared */ = {
|
|
isa = PBXFileSystemSynchronizedRootGroup;
|
|
path = Shared;
|
|
sourceTree = "<group>";
|
|
};
|
|
/* End PBXFileSystemSynchronizedRootGroup section */
|
|
|
|
/* Begin PBXFrameworksBuildPhase section */
|
|
AA0000000000000000000003 /* Frameworks */ = {
|
|
isa = PBXFrameworksBuildPhase;
|
|
buildActionMask = 2147483647;
|
|
files = (
|
|
);
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
};
|
|
AA0000000000000000000020 /* Frameworks */ = {
|
|
isa = PBXFrameworksBuildPhase;
|
|
buildActionMask = 2147483647;
|
|
files = (
|
|
);
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
};
|
|
/* End PBXFrameworksBuildPhase section */
|
|
|
|
/* Begin PBXGroup section */
|
|
AA0000000000000000000004 = {
|
|
isa = PBXGroup;
|
|
children = (
|
|
AA0000000000000000000002 /* CamperMonitor */,
|
|
AA0000000000000000000017 /* CamperMonitorWatch */,
|
|
AA0000000000000000000018 /* Shared */,
|
|
AA0000000000000000000031 /* Config */,
|
|
AA0000000000000000000005 /* Products */,
|
|
);
|
|
sourceTree = "<group>";
|
|
};
|
|
AA0000000000000000000005 /* Products */ = {
|
|
isa = PBXGroup;
|
|
children = (
|
|
AA0000000000000000000001 /* CamperMonitor.app */,
|
|
AA0000000000000000000016 /* CamperMonitorWatch.app */,
|
|
);
|
|
name = Products;
|
|
sourceTree = "<group>";
|
|
};
|
|
AA0000000000000000000031 /* Config */ = {
|
|
isa = PBXGroup;
|
|
children = (
|
|
AA0000000000000000000030 /* CamperMonitor-Info.plist */,
|
|
);
|
|
path = Config;
|
|
sourceTree = "<group>";
|
|
};
|
|
/* End PBXGroup section */
|
|
|
|
/* Begin PBXNativeTarget section */
|
|
AA0000000000000000000006 /* CamperMonitor */ = {
|
|
isa = PBXNativeTarget;
|
|
buildConfigurationList = AA0000000000000000000011 /* Build configuration list for PBXNativeTarget "CamperMonitor" */;
|
|
buildPhases = (
|
|
AA0000000000000000000007 /* Sources */,
|
|
AA0000000000000000000003 /* Frameworks */,
|
|
AA0000000000000000000008 /* Resources */,
|
|
AA0000000000000000000026 /* Embed Watch Content */,
|
|
);
|
|
buildRules = (
|
|
);
|
|
dependencies = (
|
|
AA0000000000000000000029 /* PBXTargetDependency */,
|
|
);
|
|
fileSystemSynchronizedGroups = (
|
|
AA0000000000000000000002 /* CamperMonitor */,
|
|
AA0000000000000000000018 /* Shared */,
|
|
);
|
|
name = CamperMonitor;
|
|
productName = CamperMonitor;
|
|
productReference = AA0000000000000000000001 /* CamperMonitor.app */;
|
|
productType = "com.apple.product-type.application";
|
|
};
|
|
AA0000000000000000000022 /* CamperMonitorWatch */ = {
|
|
isa = PBXNativeTarget;
|
|
buildConfigurationList = AA0000000000000000000025 /* Build configuration list for PBXNativeTarget "CamperMonitorWatch" */;
|
|
buildPhases = (
|
|
AA0000000000000000000019 /* Sources */,
|
|
AA0000000000000000000020 /* Frameworks */,
|
|
AA0000000000000000000021 /* Resources */,
|
|
);
|
|
buildRules = (
|
|
);
|
|
dependencies = (
|
|
);
|
|
fileSystemSynchronizedGroups = (
|
|
AA0000000000000000000017 /* CamperMonitorWatch */,
|
|
AA0000000000000000000018 /* Shared */,
|
|
);
|
|
name = CamperMonitorWatch;
|
|
productName = CamperMonitorWatch;
|
|
productReference = AA0000000000000000000016 /* CamperMonitorWatch.app */;
|
|
productType = "com.apple.product-type.application";
|
|
};
|
|
/* End PBXNativeTarget section */
|
|
|
|
/* Begin PBXProject section */
|
|
AA0000000000000000000009 /* Project object */ = {
|
|
isa = PBXProject;
|
|
attributes = {
|
|
BuildIndependentTargetsInParallel = 1;
|
|
LastSwiftUpdateCheck = 2660;
|
|
LastUpgradeCheck = 2660;
|
|
TargetAttributes = {
|
|
AA0000000000000000000006 = {
|
|
CreatedOnToolsVersion = 26.6;
|
|
};
|
|
AA0000000000000000000022 = {
|
|
CreatedOnToolsVersion = 26.6;
|
|
};
|
|
};
|
|
};
|
|
buildConfigurationList = AA0000000000000000000010 /* Build configuration list for PBXProject "CamperMonitor" */;
|
|
developmentRegion = en;
|
|
hasScannedForEncodings = 0;
|
|
knownRegions = (
|
|
en,
|
|
Base,
|
|
de,
|
|
);
|
|
mainGroup = AA0000000000000000000004;
|
|
minimizedProjectReferenceProxies = 1;
|
|
preferredProjectObjectVersion = 77;
|
|
productRefGroup = AA0000000000000000000005 /* Products */;
|
|
projectDirPath = "";
|
|
projectRoot = "";
|
|
targets = (
|
|
AA0000000000000000000006 /* CamperMonitor */,
|
|
AA0000000000000000000022 /* CamperMonitorWatch */,
|
|
);
|
|
};
|
|
/* End PBXProject section */
|
|
|
|
/* Begin PBXResourcesBuildPhase section */
|
|
AA0000000000000000000008 /* Resources */ = {
|
|
isa = PBXResourcesBuildPhase;
|
|
buildActionMask = 2147483647;
|
|
files = (
|
|
);
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
};
|
|
AA0000000000000000000021 /* Resources */ = {
|
|
isa = PBXResourcesBuildPhase;
|
|
buildActionMask = 2147483647;
|
|
files = (
|
|
);
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
};
|
|
/* End PBXResourcesBuildPhase section */
|
|
|
|
/* Begin PBXSourcesBuildPhase section */
|
|
AA0000000000000000000007 /* Sources */ = {
|
|
isa = PBXSourcesBuildPhase;
|
|
buildActionMask = 2147483647;
|
|
files = (
|
|
);
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
};
|
|
AA0000000000000000000019 /* Sources */ = {
|
|
isa = PBXSourcesBuildPhase;
|
|
buildActionMask = 2147483647;
|
|
files = (
|
|
);
|
|
runOnlyForDeploymentPostprocessing = 0;
|
|
};
|
|
/* End PBXSourcesBuildPhase section */
|
|
|
|
/* Begin PBXTargetDependency section */
|
|
AA0000000000000000000029 /* PBXTargetDependency */ = {
|
|
isa = PBXTargetDependency;
|
|
platformFilter = ios;
|
|
target = AA0000000000000000000022 /* CamperMonitorWatch */;
|
|
targetProxy = AA0000000000000000000028 /* PBXContainerItemProxy */;
|
|
};
|
|
/* End PBXTargetDependency section */
|
|
|
|
/* Begin XCBuildConfiguration section */
|
|
AA0000000000000000000012 /* Debug */ = {
|
|
isa = XCBuildConfiguration;
|
|
buildSettings = {
|
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
|
CLANG_ENABLE_MODULES = YES;
|
|
CLANG_ENABLE_OBJC_ARC = YES;
|
|
COPY_PHASE_STRIP = NO;
|
|
DEBUG_INFORMATION_FORMAT = dwarf;
|
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
ENABLE_TESTABILITY = YES;
|
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
|
GCC_C_LANGUAGE_STANDARD = gnu17;
|
|
GCC_DYNAMIC_NO_PIC = NO;
|
|
GCC_NO_COMMON_BLOCKS = YES;
|
|
GCC_OPTIMIZATION_LEVEL = 0;
|
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
|
"DEBUG=1",
|
|
"$(inherited)",
|
|
);
|
|
IPHONEOS_DEPLOYMENT_TARGET = 18.0;
|
|
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
|
MTL_FAST_MATH = YES;
|
|
ONLY_ACTIVE_ARCH = YES;
|
|
SDKROOT = iphoneos;
|
|
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
|
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
|
SWIFT_VERSION = 5.0;
|
|
};
|
|
name = Debug;
|
|
};
|
|
AA0000000000000000000013 /* Release */ = {
|
|
isa = XCBuildConfiguration;
|
|
buildSettings = {
|
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
|
CLANG_ENABLE_MODULES = YES;
|
|
CLANG_ENABLE_OBJC_ARC = YES;
|
|
COPY_PHASE_STRIP = NO;
|
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
|
ENABLE_NS_ASSERTIONS = NO;
|
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
|
GCC_C_LANGUAGE_STANDARD = gnu17;
|
|
GCC_NO_COMMON_BLOCKS = YES;
|
|
IPHONEOS_DEPLOYMENT_TARGET = 18.0;
|
|
MTL_ENABLE_DEBUG_INFO = NO;
|
|
MTL_FAST_MATH = YES;
|
|
SDKROOT = iphoneos;
|
|
SWIFT_COMPILATION_MODE = wholemodule;
|
|
SWIFT_VERSION = 5.0;
|
|
VALIDATE_PRODUCT = YES;
|
|
};
|
|
name = Release;
|
|
};
|
|
AA0000000000000000000014 /* Debug */ = {
|
|
isa = XCBuildConfiguration;
|
|
buildSettings = {
|
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
|
CODE_SIGN_STYLE = Automatic;
|
|
CURRENT_PROJECT_VERSION = 1;
|
|
DEVELOPMENT_ASSET_PATHS = "";
|
|
DEVELOPMENT_TEAM = 6AP73NYV5W;
|
|
ENABLE_PREVIEWS = YES;
|
|
GENERATE_INFOPLIST_FILE = YES;
|
|
INFOPLIST_FILE = "Config/CamperMonitor-Info.plist";
|
|
INFOPLIST_KEY_CFBundleDisplayName = "Camper Monitor";
|
|
INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "Zum Auslesen von Victron-Geraeten und dem Daly BMS per Bluetooth.";
|
|
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
|
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
|
LD_RUNPATH_SEARCH_PATHS = (
|
|
"$(inherited)",
|
|
"@executable_path/Frameworks",
|
|
);
|
|
MARKETING_VERSION = 1.0;
|
|
PRODUCT_BUNDLE_IDENTIFIER = de.fritob.CamperMonitor;
|
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
|
SWIFT_VERSION = 5.0;
|
|
TARGETED_DEVICE_FAMILY = "1,2";
|
|
};
|
|
name = Debug;
|
|
};
|
|
AA0000000000000000000015 /* Release */ = {
|
|
isa = XCBuildConfiguration;
|
|
buildSettings = {
|
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
|
CODE_SIGN_STYLE = Automatic;
|
|
CURRENT_PROJECT_VERSION = 1;
|
|
DEVELOPMENT_ASSET_PATHS = "";
|
|
DEVELOPMENT_TEAM = 6AP73NYV5W;
|
|
ENABLE_PREVIEWS = YES;
|
|
GENERATE_INFOPLIST_FILE = YES;
|
|
INFOPLIST_FILE = "Config/CamperMonitor-Info.plist";
|
|
INFOPLIST_KEY_CFBundleDisplayName = "Camper Monitor";
|
|
INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "Zum Auslesen von Victron-Geraeten und dem Daly BMS per Bluetooth.";
|
|
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
|
|
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
|
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
|
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
|
LD_RUNPATH_SEARCH_PATHS = (
|
|
"$(inherited)",
|
|
"@executable_path/Frameworks",
|
|
);
|
|
MARKETING_VERSION = 1.0;
|
|
PRODUCT_BUNDLE_IDENTIFIER = de.fritob.CamperMonitor;
|
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
|
SWIFT_VERSION = 5.0;
|
|
TARGETED_DEVICE_FAMILY = "1,2";
|
|
};
|
|
name = Release;
|
|
};
|
|
AA0000000000000000000023 /* Debug */ = {
|
|
isa = XCBuildConfiguration;
|
|
buildSettings = {
|
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
|
CODE_SIGN_STYLE = Automatic;
|
|
CURRENT_PROJECT_VERSION = 1;
|
|
DEVELOPMENT_TEAM = 6AP73NYV5W;
|
|
ENABLE_PREVIEWS = YES;
|
|
GENERATE_INFOPLIST_FILE = YES;
|
|
INFOPLIST_KEY_CFBundleDisplayName = "Camper Monitor";
|
|
INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "Zum Auslesen des Neigungsmessers direkt an der Uhr, ohne Umweg ueber das iPhone.";
|
|
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = de.fritob.CamperMonitor;
|
|
LD_RUNPATH_SEARCH_PATHS = (
|
|
"$(inherited)",
|
|
"@executable_path/Frameworks",
|
|
);
|
|
MARKETING_VERSION = 1.0;
|
|
PRODUCT_BUNDLE_IDENTIFIER = de.fritob.CamperMonitor.watchkitapp;
|
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
SDKROOT = watchos;
|
|
SKIP_INSTALL = YES;
|
|
SUPPORTED_PLATFORMS = "watchos watchsimulator";
|
|
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
|
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
|
SWIFT_VERSION = 5.0;
|
|
TARGETED_DEVICE_FAMILY = 4;
|
|
WATCHOS_DEPLOYMENT_TARGET = 10.0;
|
|
};
|
|
name = Debug;
|
|
};
|
|
AA0000000000000000000024 /* Release */ = {
|
|
isa = XCBuildConfiguration;
|
|
buildSettings = {
|
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
|
CODE_SIGN_STYLE = Automatic;
|
|
CURRENT_PROJECT_VERSION = 1;
|
|
DEVELOPMENT_TEAM = 6AP73NYV5W;
|
|
ENABLE_PREVIEWS = YES;
|
|
GENERATE_INFOPLIST_FILE = YES;
|
|
INFOPLIST_KEY_CFBundleDisplayName = "Camper Monitor";
|
|
INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "Zum Auslesen des Neigungsmessers direkt an der Uhr, ohne Umweg ueber das iPhone.";
|
|
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = de.fritob.CamperMonitor;
|
|
LD_RUNPATH_SEARCH_PATHS = (
|
|
"$(inherited)",
|
|
"@executable_path/Frameworks",
|
|
);
|
|
MARKETING_VERSION = 1.0;
|
|
PRODUCT_BUNDLE_IDENTIFIER = de.fritob.CamperMonitor.watchkitapp;
|
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
SDKROOT = watchos;
|
|
SKIP_INSTALL = YES;
|
|
SUPPORTED_PLATFORMS = "watchos watchsimulator";
|
|
SWIFT_COMPILATION_MODE = wholemodule;
|
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
|
SWIFT_VERSION = 5.0;
|
|
TARGETED_DEVICE_FAMILY = 4;
|
|
VALIDATE_PRODUCT = YES;
|
|
WATCHOS_DEPLOYMENT_TARGET = 10.0;
|
|
};
|
|
name = Release;
|
|
};
|
|
/* End XCBuildConfiguration section */
|
|
|
|
/* Begin XCConfigurationList section */
|
|
AA0000000000000000000010 /* Build configuration list for PBXProject "CamperMonitor" */ = {
|
|
isa = XCConfigurationList;
|
|
buildConfigurations = (
|
|
AA0000000000000000000012 /* Debug */,
|
|
AA0000000000000000000013 /* Release */,
|
|
);
|
|
defaultConfigurationIsVisible = 0;
|
|
defaultConfigurationName = Release;
|
|
};
|
|
AA0000000000000000000011 /* Build configuration list for PBXNativeTarget "CamperMonitor" */ = {
|
|
isa = XCConfigurationList;
|
|
buildConfigurations = (
|
|
AA0000000000000000000014 /* Debug */,
|
|
AA0000000000000000000015 /* Release */,
|
|
);
|
|
defaultConfigurationIsVisible = 0;
|
|
defaultConfigurationName = Release;
|
|
};
|
|
AA0000000000000000000025 /* Build configuration list for PBXNativeTarget "CamperMonitorWatch" */ = {
|
|
isa = XCConfigurationList;
|
|
buildConfigurations = (
|
|
AA0000000000000000000023 /* Debug */,
|
|
AA0000000000000000000024 /* Release */,
|
|
);
|
|
defaultConfigurationIsVisible = 0;
|
|
defaultConfigurationName = Release;
|
|
};
|
|
/* End XCConfigurationList section */
|
|
};
|
|
rootObject = AA0000000000000000000009 /* Project object */;
|
|
}
|