From a50260d8c8942cb8ed7fcfd2d1c7464823fa0e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Bj=C3=B6rkert?= Date: Tue, 28 Nov 2023 14:42:33 +0100 Subject: [PATCH 1/6] Custom Display Name --- Config.xcconfig | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Config.xcconfig b/Config.xcconfig index 7e2a59b0..a3d88e21 100644 --- a/Config.xcconfig +++ b/Config.xcconfig @@ -12,3 +12,14 @@ unique_id = ${DEVELOPMENT_TEAM} //Version (DEFAULT) LOOP_FOLLOW_MARKETING_VERSION = 2.0.02 + +// Custom Display Name for Your LoopFollow App +// --------------------------------------------- +// The 'display_name' field allows you to personalize the name of this LoopFollow app instance. +// This name appears on your device and helps to distinguish between different LoopFollow instances. +// +// How to Set: +// 1. Replace 'LoopFollow' with the desired name of your app. +// 2. Save the file and build the app for the changes to take effect. +// +display_name = LoopFollow From 069bb084f2cfc68d5f3962c5a36c8810be05be7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Bj=C3=B6rkert?= Date: Wed, 29 Nov 2023 09:01:30 +0100 Subject: [PATCH 2/6] LoopFollowInstanceConfig --- Config.xcconfig | 19 +------------------ LoopFollow.xcodeproj/project.pbxproj | 4 ++++ LoopFollowInstanceConfig.xcconfig | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 18 deletions(-) create mode 100644 LoopFollowInstanceConfig.xcconfig diff --git a/Config.xcconfig b/Config.xcconfig index a3d88e21..994a49c2 100644 --- a/Config.xcconfig +++ b/Config.xcconfig @@ -1,25 +1,8 @@ #include? "LoopFollowConfigOverride.xcconfig" #include? "../../LoopFollowConfigOverride.xcconfig" +#include? "LoopFollowInstanceConfig.xcconfig" -// -// Config.xcconfig -// nsapple -// -// Created by Kenneth Stack on 4/12/18. -// Copyright © 2018 Perceptus.org. All rights reserved. -// unique_id = ${DEVELOPMENT_TEAM} //Version (DEFAULT) LOOP_FOLLOW_MARKETING_VERSION = 2.0.02 - -// Custom Display Name for Your LoopFollow App -// --------------------------------------------- -// The 'display_name' field allows you to personalize the name of this LoopFollow app instance. -// This name appears on your device and helps to distinguish between different LoopFollow instances. -// -// How to Set: -// 1. Replace 'LoopFollow' with the desired name of your app. -// 2. Save the file and build the app for the changes to take effect. -// -display_name = LoopFollow diff --git a/LoopFollow.xcodeproj/project.pbxproj b/LoopFollow.xcodeproj/project.pbxproj index 9813aad0..10c4bb6c 100644 --- a/LoopFollow.xcodeproj/project.pbxproj +++ b/LoopFollow.xcodeproj/project.pbxproj @@ -33,6 +33,7 @@ DDCF979A24C14DB4002C9752 /* WatchSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDCF979924C14DB4002C9752 /* WatchSettingsViewController.swift */; }; DDCF979C24C14EFB002C9752 /* AdvancedSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDCF979B24C14EFB002C9752 /* AdvancedSettingsViewController.swift */; }; DDCF979E24C2382A002C9752 /* AppStateController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDCF979D24C2382A002C9752 /* AppStateController.swift */; }; + DDCFCAF22B17273200BE5751 /* LoopFollowInstanceConfig.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = DDCFCAF12B17273200BE5751 /* LoopFollowInstanceConfig.xcconfig */; }; DDF9676E2AD08C6E00C5EB95 /* SiteChange.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDF9676D2AD08C6E00C5EB95 /* SiteChange.swift */; }; FC16A97A24996673003D6245 /* NightScout.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC16A97924996673003D6245 /* NightScout.swift */; }; FC16A97B249966A3003D6245 /* AlarmSound.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC7CE589248ABEA3001F83B8 /* AlarmSound.swift */; }; @@ -217,6 +218,7 @@ DDCF979924C14DB4002C9752 /* WatchSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchSettingsViewController.swift; sourceTree = ""; }; DDCF979B24C14EFB002C9752 /* AdvancedSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdvancedSettingsViewController.swift; sourceTree = ""; }; DDCF979D24C2382A002C9752 /* AppStateController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStateController.swift; sourceTree = ""; }; + DDCFCAF12B17273200BE5751 /* LoopFollowInstanceConfig.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = LoopFollowInstanceConfig.xcconfig; sourceTree = ""; }; DDF9676D2AD08C6E00C5EB95 /* SiteChange.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteChange.swift; sourceTree = ""; }; ECA3EFB4037410B4973BB632 /* Pods-LoopFollow.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LoopFollow.debug.xcconfig"; path = "Target Support Files/Pods-LoopFollow/Pods-LoopFollow.debug.xcconfig"; sourceTree = ""; }; FC16A97924996673003D6245 /* NightScout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NightScout.swift; sourceTree = ""; }; @@ -630,6 +632,7 @@ FC97880B2485969B00A7906C = { isa = PBXGroup; children = ( + DDCFCAF12B17273200BE5751 /* LoopFollowInstanceConfig.xcconfig */, FC3AE7B3249E8E0E00AAE1E0 /* LoopFollow.xcdatamodeld */, FC5A5C3C2497B229009C550E /* Config.xcconfig */, FC8DEEE32485D1680075863F /* LoopFollow */, @@ -833,6 +836,7 @@ FC7CE518248ABE37001F83B8 /* Siri_Alert_Calibration_Needed.caf in Resources */, FC5A5C3D2497B229009C550E /* Config.xcconfig in Resources */, FC7CE550248ABE37001F83B8 /* Siri_Alert_High_Glucose.caf in Resources */, + DDCFCAF22B17273200BE5751 /* LoopFollowInstanceConfig.xcconfig in Resources */, FC7CE525248ABE37001F83B8 /* Sci-Fi_Warning.caf in Resources */, FC7CE556248ABE37001F83B8 /* Sci-Fi_Console_Alarm.caf in Resources */, FC7CE55C248ABE37001F83B8 /* Big_Clock_Ticking.caf in Resources */, diff --git a/LoopFollowInstanceConfig.xcconfig b/LoopFollowInstanceConfig.xcconfig new file mode 100644 index 00000000..0412cffe --- /dev/null +++ b/LoopFollowInstanceConfig.xcconfig @@ -0,0 +1,19 @@ +// +// LoopFollowInstanceConfig.xcconfig +// +// Use this file to configure instance-specific settings for LoopFollow. +// + +// App Suffix: Used to differentiate AppGroupIdentifier between different app instances. +app_suffix = + +// Custom Display Name for Your LoopFollow App +// --------------------------------------------- +// The 'display_name' field allows you to personalize the name of this LoopFollow app instance. +// This name appears on your device and helps to distinguish between different LoopFollow instances. +// +// How to Set: +// 1. Replace 'LoopFollow' with the desired name of your app. +// 2. Save the file and build the app for the changes to take effect. +// +display_name = LoopFollow From f751149c89816808ed5a57fabbe21c1a327491e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Bj=C3=B6rkert?= Date: Wed, 29 Nov 2023 17:01:47 +0100 Subject: [PATCH 3/6] Rename of config file --- Config.xcconfig | 3 ++- LoopFollow.xcodeproj/project.pbxproj | 8 ++++---- ...onfig.xcconfig => LoopFollowDisplayNameConfig.xcconfig | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) rename LoopFollowInstanceConfig.xcconfig => LoopFollowDisplayNameConfig.xcconfig (94%) diff --git a/Config.xcconfig b/Config.xcconfig index 994a49c2..d882c9b0 100644 --- a/Config.xcconfig +++ b/Config.xcconfig @@ -1,6 +1,7 @@ #include? "LoopFollowConfigOverride.xcconfig" #include? "../../LoopFollowConfigOverride.xcconfig" -#include? "LoopFollowInstanceConfig.xcconfig" +#include? "LoopFollowDisplayNameConfig.xcconfig" +#include? "../..LoopFollowDisplayNameConfig.xcconfig" unique_id = ${DEVELOPMENT_TEAM} diff --git a/LoopFollow.xcodeproj/project.pbxproj b/LoopFollow.xcodeproj/project.pbxproj index 10c4bb6c..6cb7e5cf 100644 --- a/LoopFollow.xcodeproj/project.pbxproj +++ b/LoopFollow.xcodeproj/project.pbxproj @@ -33,7 +33,7 @@ DDCF979A24C14DB4002C9752 /* WatchSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDCF979924C14DB4002C9752 /* WatchSettingsViewController.swift */; }; DDCF979C24C14EFB002C9752 /* AdvancedSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDCF979B24C14EFB002C9752 /* AdvancedSettingsViewController.swift */; }; DDCF979E24C2382A002C9752 /* AppStateController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDCF979D24C2382A002C9752 /* AppStateController.swift */; }; - DDCFCAF22B17273200BE5751 /* LoopFollowInstanceConfig.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = DDCFCAF12B17273200BE5751 /* LoopFollowInstanceConfig.xcconfig */; }; + DDCFCAF22B17273200BE5751 /* LoopFollowDisplayNameConfig.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = DDCFCAF12B17273200BE5751 /* LoopFollowDisplayNameConfig.xcconfig */; }; DDF9676E2AD08C6E00C5EB95 /* SiteChange.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDF9676D2AD08C6E00C5EB95 /* SiteChange.swift */; }; FC16A97A24996673003D6245 /* NightScout.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC16A97924996673003D6245 /* NightScout.swift */; }; FC16A97B249966A3003D6245 /* AlarmSound.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC7CE589248ABEA3001F83B8 /* AlarmSound.swift */; }; @@ -218,7 +218,7 @@ DDCF979924C14DB4002C9752 /* WatchSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchSettingsViewController.swift; sourceTree = ""; }; DDCF979B24C14EFB002C9752 /* AdvancedSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdvancedSettingsViewController.swift; sourceTree = ""; }; DDCF979D24C2382A002C9752 /* AppStateController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStateController.swift; sourceTree = ""; }; - DDCFCAF12B17273200BE5751 /* LoopFollowInstanceConfig.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = LoopFollowInstanceConfig.xcconfig; sourceTree = ""; }; + DDCFCAF12B17273200BE5751 /* LoopFollowDisplayNameConfig.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = LoopFollowDisplayNameConfig.xcconfig; sourceTree = ""; }; DDF9676D2AD08C6E00C5EB95 /* SiteChange.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteChange.swift; sourceTree = ""; }; ECA3EFB4037410B4973BB632 /* Pods-LoopFollow.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LoopFollow.debug.xcconfig"; path = "Target Support Files/Pods-LoopFollow/Pods-LoopFollow.debug.xcconfig"; sourceTree = ""; }; FC16A97924996673003D6245 /* NightScout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NightScout.swift; sourceTree = ""; }; @@ -632,7 +632,7 @@ FC97880B2485969B00A7906C = { isa = PBXGroup; children = ( - DDCFCAF12B17273200BE5751 /* LoopFollowInstanceConfig.xcconfig */, + DDCFCAF12B17273200BE5751 /* LoopFollowDisplayNameConfig.xcconfig */, FC3AE7B3249E8E0E00AAE1E0 /* LoopFollow.xcdatamodeld */, FC5A5C3C2497B229009C550E /* Config.xcconfig */, FC8DEEE32485D1680075863F /* LoopFollow */, @@ -836,7 +836,7 @@ FC7CE518248ABE37001F83B8 /* Siri_Alert_Calibration_Needed.caf in Resources */, FC5A5C3D2497B229009C550E /* Config.xcconfig in Resources */, FC7CE550248ABE37001F83B8 /* Siri_Alert_High_Glucose.caf in Resources */, - DDCFCAF22B17273200BE5751 /* LoopFollowInstanceConfig.xcconfig in Resources */, + DDCFCAF22B17273200BE5751 /* LoopFollowDisplayNameConfig.xcconfig in Resources */, FC7CE525248ABE37001F83B8 /* Sci-Fi_Warning.caf in Resources */, FC7CE556248ABE37001F83B8 /* Sci-Fi_Console_Alarm.caf in Resources */, FC7CE55C248ABE37001F83B8 /* Big_Clock_Ticking.caf in Resources */, diff --git a/LoopFollowInstanceConfig.xcconfig b/LoopFollowDisplayNameConfig.xcconfig similarity index 94% rename from LoopFollowInstanceConfig.xcconfig rename to LoopFollowDisplayNameConfig.xcconfig index 0412cffe..9b1a22b1 100644 --- a/LoopFollowInstanceConfig.xcconfig +++ b/LoopFollowDisplayNameConfig.xcconfig @@ -1,5 +1,5 @@ // -// LoopFollowInstanceConfig.xcconfig +// LoopFollowDisplayNameConfig.xcconfig // // Use this file to configure instance-specific settings for LoopFollow. // From f0f538bcb61cb5720e7502182a6601456d4caa7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Bj=C3=B6rkert?= Date: Wed, 29 Nov 2023 21:01:14 +0100 Subject: [PATCH 4/6] Update Config.xcconfig --- Config.xcconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Config.xcconfig b/Config.xcconfig index d882c9b0..81890fa9 100644 --- a/Config.xcconfig +++ b/Config.xcconfig @@ -1,7 +1,7 @@ #include? "LoopFollowConfigOverride.xcconfig" #include? "../../LoopFollowConfigOverride.xcconfig" #include? "LoopFollowDisplayNameConfig.xcconfig" -#include? "../..LoopFollowDisplayNameConfig.xcconfig" +#include? "../../LoopFollowDisplayNameConfig.xcconfig" unique_id = ${DEVELOPMENT_TEAM} From 864bebdb87ba0da06e58b2cff34329215f98ab97 Mon Sep 17 00:00:00 2001 From: marionbarker Date: Sat, 2 Dec 2023 08:51:10 -0500 Subject: [PATCH 5/6] Update version to 2.1.0 --- Config.xcconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Config.xcconfig b/Config.xcconfig index 81890fa9..7834a6cb 100644 --- a/Config.xcconfig +++ b/Config.xcconfig @@ -6,4 +6,4 @@ unique_id = ${DEVELOPMENT_TEAM} //Version (DEFAULT) -LOOP_FOLLOW_MARKETING_VERSION = 2.0.02 +LOOP_FOLLOW_MARKETING_VERSION = 2.1.0 From 582b29afd9b6b97b02ac4a4bbed31d03ac059d64 Mon Sep 17 00:00:00 2001 From: marionbarker Date: Sat, 2 Dec 2023 09:25:28 -0500 Subject: [PATCH 6/6] Update README.md for multiple looper option --- README.md | 50 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 3e633693..6492b957 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,34 @@ low alert for the BG you want to wake up to and close Loop. Please see [Loop and Learn: Loop Follow](https://www.loopandlearn.org/loop-follow/) for all the building options. +With the release of version 2.1.0, there is now an easy option for building up to three instances of the Loop Follow app for multiple Loopers in your family. Each instance can be configured to have the display name you choose with these names being the default: + +* LoopFollow +* LoopFollow_Second +* LoopFollow_Third + +#### Display Name Updates + +The _display_name_ is found in a single file. + +* Suggestion if you customize the name: use LF {unique name} so you can find the apps easily in iOS Settings screen + +Summary instructions by build method: + +* Browser Build: + * Commit the desired _display_name_ in the LoopFollowDisplayNameConfig.xcconfig file of your forked repository for LoopFollow, LoopFollow_Second or LoopFollow_Third +* Mac-Xcode Build + * First build with script, you will be prompted to enter the desired _display_name_ + * This _display_name_ is used each time you select a fresh download for LoopFollow 1, 2 or 3 + * To modify the _display_name_ for subsequent script builds, edit the appropriate file in the ~/Downloads/BuildLoopFollow folder + * LoopFollowDisplayNameConfig.xcconfig + * LoopFollowDisplayNameConfig_Second.xcconfig + * LoopFollowDisplayNameConfig_Third.xcconfig + +#### Updates + +When modifications and versions are updated, there might be a slight delay for getting the second and third forks updated as well, so if you are using this feature, wait until all three repositories are updated. + ### General feature list Please review the list on [Loop and Learn: Loop Follow](https://www.loopandlearn.org/loop-follow/) which may be updated more frequently than this README.md file. @@ -67,7 +95,7 @@ Please review the list on [Loop and Learn: Loop Follow](https://www.loopandlearn ### Versions -We added version numbers that are incremented with each pull request that is merged. +We added version numbers that are incremented with each pull request (or group of pull requests) merged. New PR are directed to the dev branch. If you direct one to main, we will move it to point to dev. So always start with your code aligned with dev. @@ -76,28 +104,26 @@ The versioning is: * major.minor.micro * For example our first version is 2.0.0 -After that we made a decision to make the micro numbering be 2 digits. - -After a PR is merged to dev, the repository maintainers will bump up the micro verion number - please do not modify the version in your branch. +After a PR is merged to dev, the repository maintainers will bump up the verion number before merging to main - please do not modify the version in your branch. For the most part, the deveopers keep main and dev branches at the same level. But sometimes we want modification to remain in dev for additional testing. #### Version Example -Starting with version 2.0.01 +Starting with version 2.1.0 * PR with Feature A gets merged to dev - * Maintainers, bump dev to 2.0.02 + * Maintainers, bump dev to 2.1.0 * Maintainers merge dev into main - * both main and dev are at 2.0.02 + * both main and dev are at 2.1.0 * PR with Feature B gets merged to dev - * Maintainers, bump dev to 2.0.03 - * main is still at 2.0.02 + * Maintainers, bump dev to 2.1.1 + * main is still at 2.1.0 * PR with Feature C gets merged to dev - * Maintainers, bump dev to 2.0.04 - * main is still at 2.0.02 + * Maintainers, bump dev to 2.1.2 + * main is still at 2.1.0 * Maintainers merge dev into main - * both main and dev are at 2.0.04 + * both main and dev are at 2.1.2 #### Version Updates