From 6bf2787e83ddd8e68686127c90a6a964ca29437c Mon Sep 17 00:00:00 2001 From: LoopKit Developer Date: Wed, 25 Mar 2026 13:58:23 -0500 Subject: [PATCH 1/3] Bump deployment target to iOS 17.0 --- MixpanelService.xcodeproj/project.pbxproj | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/MixpanelService.xcodeproj/project.pbxproj b/MixpanelService.xcodeproj/project.pbxproj index ea2239c..364faeb 100644 --- a/MixpanelService.xcodeproj/project.pbxproj +++ b/MixpanelService.xcodeproj/project.pbxproj @@ -493,7 +493,7 @@ INFOPLIST_KEY_LSApplicationCategoryType = ""; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 16.4; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -578,7 +578,7 @@ INFOPLIST_KEY_LSApplicationCategoryType = ""; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 16.4; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -681,7 +681,7 @@ GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 16.4; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -762,7 +762,7 @@ GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 16.4; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -849,7 +849,7 @@ GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 16.4; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -930,7 +930,7 @@ GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 16.4; + IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", From 36c0b767b5e56be3b38ad86ba60a50f232f55138 Mon Sep 17 00:00:00 2001 From: LoopKit Developer Date: Wed, 25 Mar 2026 14:05:32 -0500 Subject: [PATCH 2/3] Add instance pluginIdentifier to satisfy updated Pluggable protocol --- MixpanelServiceKit/MixpanelService.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MixpanelServiceKit/MixpanelService.swift b/MixpanelServiceKit/MixpanelService.swift index a1bbb58..adc5a9b 100644 --- a/MixpanelServiceKit/MixpanelService.swift +++ b/MixpanelServiceKit/MixpanelService.swift @@ -12,6 +12,8 @@ public final class MixpanelService: Service { public static let pluginIdentifier = "MixpanelService" + public var pluginIdentifier: String { MixpanelService.pluginIdentifier } + public static let localizedTitle = LocalizedString("Mixpanel", comment: "The title of the Mixpanel service") public weak var serviceDelegate: ServiceDelegate? From 4a4b433c7181fd8d6fa7d22840fd8466a3f6101e Mon Sep 17 00:00:00 2001 From: LoopKit Developer Date: Wed, 25 Mar 2026 14:35:27 -0500 Subject: [PATCH 3/3] Update ServiceUI conformance: add allowDebugFeatures params, @retroactive --- MixpanelServiceKitUI/MixpanelService+UI.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/MixpanelServiceKitUI/MixpanelService+UI.swift b/MixpanelServiceKitUI/MixpanelService+UI.swift index d099140..e1bec1d 100644 --- a/MixpanelServiceKitUI/MixpanelService+UI.swift +++ b/MixpanelServiceKitUI/MixpanelService+UI.swift @@ -11,18 +11,18 @@ import LoopKitUI import MixpanelServiceKit import HealthKit -extension MixpanelService: ServiceUI { +extension MixpanelService: @retroactive ServiceUI { public static var image: UIImage? { UIImage(named: "mixpanel_logo", in: Bundle(for: MixpanelServiceTableViewController.self), compatibleWith: nil)! } - public static func setupViewController(colorPalette: LoopUIColorPalette, pluginHost: PluginHost) -> SetupUIResult + public static func setupViewController(colorPalette: LoopUIColorPalette, pluginHost: PluginHost, allowDebugFeatures: Bool) -> SetupUIResult { return .userInteractionRequired(ServiceNavigationController(rootViewController: MixpanelServiceTableViewController(service: MixpanelService(), for: .create))) } - public func settingsViewController(colorPalette: LoopUIColorPalette) -> ServiceViewController + public func settingsViewController(colorPalette: LoopUIColorPalette, allowDebugFeatures: Bool) -> ServiceViewController { return ServiceNavigationController(rootViewController: MixpanelServiceTableViewController(service: self, for: .update)) }