diff options
| author | ivar <i@oiee.no> | 2025-12-17 00:16:58 +0100 |
|---|---|---|
| committer | ivar <i@oiee.no> | 2025-12-17 00:16:58 +0100 |
| commit | bfd75822b3e9882ff4e85d13a0e3658b60e6329d (patch) | |
| tree | 223462af215c5ee7eef9e6bcbb48dfbe1b97d1e3 | |
| parent | 0e1635b057903434c0f193ad9ead7035150b0773 (diff) | |
| download | solverv-master.tar.xz solverv-master.zip | |
| -rw-r--r-- | Solsnu.Widget/Assets.xcassets/AccentColor.colorset/Contents.json | 11 | ||||
| -rw-r--r-- | Solsnu.Widget/Assets.xcassets/AppIcon.appiconset/Contents.json | 35 | ||||
| -rw-r--r-- | Solsnu.Widget/Assets.xcassets/Contents.json | 6 | ||||
| -rw-r--r-- | Solsnu.Widget/Assets.xcassets/WidgetBackground.colorset/Contents.json | 11 | ||||
| -rw-r--r-- | Solsnu.Widget/Info.plist | 11 | ||||
| -rw-r--r-- | Solsnu.Widget/Solsnu_Widget.swift | 133 | ||||
| -rw-r--r-- | Solsnu.Widget/Solsnu_WidgetBundle.swift | 17 | ||||
| -rw-r--r-- | Solsnu.Widget/Solsnu_WidgetControl.swift | 54 | ||||
| -rw-r--r-- | Solverv.xcodeproj/project.pbxproj | 191 | ||||
| -rw-r--r-- | Solverv.xcodeproj/xcuserdata/ivarlovlie.xcuserdatad/xcschemes/xcschememanagement.plist | 5 |
10 files changed, 474 insertions, 0 deletions
diff --git a/Solsnu.Widget/Assets.xcassets/AccentColor.colorset/Contents.json b/Solsnu.Widget/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/Solsnu.Widget/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Solsnu.Widget/Assets.xcassets/AppIcon.appiconset/Contents.json b/Solsnu.Widget/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..2305880 --- /dev/null +++ b/Solsnu.Widget/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,35 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "tinted" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Solsnu.Widget/Assets.xcassets/Contents.json b/Solsnu.Widget/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Solsnu.Widget/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Solsnu.Widget/Assets.xcassets/WidgetBackground.colorset/Contents.json b/Solsnu.Widget/Assets.xcassets/WidgetBackground.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/Solsnu.Widget/Assets.xcassets/WidgetBackground.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Solsnu.Widget/Info.plist b/Solsnu.Widget/Info.plist new file mode 100644 index 0000000..0f118fb --- /dev/null +++ b/Solsnu.Widget/Info.plist @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>NSExtension</key> + <dict> + <key>NSExtensionPointIdentifier</key> + <string>com.apple.widgetkit-extension</string> + </dict> +</dict> +</plist> diff --git a/Solsnu.Widget/Solsnu_Widget.swift b/Solsnu.Widget/Solsnu_Widget.swift new file mode 100644 index 0000000..bd71672 --- /dev/null +++ b/Solsnu.Widget/Solsnu_Widget.swift @@ -0,0 +1,133 @@ +// +// Solsnu_Widget.swift +// Solsnu.Widget +// +// Created by Ivar Løvlie on 15/12/2025. +// + +import WidgetKit +import SwiftUI + +struct Provider: TimelineProvider { + func placeholder(in context: Context) -> SolvervEntry { + SolvervEntry(def: SolvervDef(date: Date())) + } + + func getSnapshot(in context: Context, completion: @escaping (SolvervEntry) -> ()) { + let entry = SolvervEntry(def: SolvervDef(date: Date())) + completion(entry) + } + + func getTimeline(in context: Context, completion: @escaping (Timeline<Entry>) -> ()) { + var entries: [SolvervEntry] = [] + let currentDate = Date() + for hourOffset in 0 ..< 5 { + let entryDate = Calendar.current.date(byAdding: .hour, value: hourOffset, to: currentDate)! + let entry = SolvervEntry(def: SolvervDef(date: currentDate)) + entries.append(entry) + } + + let timeline = Timeline(entries: entries, policy: .atEnd) + completion(timeline) + } +} + +struct SolvervEntry: TimelineEntry { + let date: Date + let emoji: String + let def: SolvervDef + + init(def: SolvervDef, date: Date? = nil) { + self.date = date ?? def.date + self.emoji = def.emoji() + self.def = def; + } +} + +struct Solsnu_WidgetEntryView : View { + var entry: Provider.Entry + + var body: some View { + VStack { + Text("Time:") + Text(entry.date, style: .time) + + Text("Emoji:") + Text(entry.emoji) + } + } +} + +struct Solsnu_Widget: Widget { + let kind: String = "Solsnu_Widget" + + var body: some WidgetConfiguration { + StaticConfiguration(kind: kind, provider: Provider()) { entry in + if #available(iOS 17.0, *) { + Solsnu_WidgetEntryView(entry: entry) + .containerBackground(.fill.tertiary, for: .widget) + } else { + Solsnu_WidgetEntryView(entry: entry) + .padding() + .background() + } + } + .configurationDisplayName("My Widget") + .description("This is an example widget.") + } +} + +#Preview(as: .systemSmall) { + Solsnu_Widget() +} timeline: { + SolvervEntry(def: SolvervDef(utcString: "2025-09-22 18:20:00")) + SolvervEntry(def: SolvervDef(utcString: "2025-12-21 15:03:00")) + SolvervEntry(def: SolvervDef(utcString: "2026-03-20 14:46:00")) + SolvervEntry(def: SolvervDef(utcString: "2026-06-21 08:25:00")) + SolvervEntry(def: SolvervDef(utcString: "2026-09-23 00:06:00")) + SolvervEntry(def: SolvervDef(utcString: "2026-12-21 20:50:00")) + SolvervEntry(def: SolvervDef(utcString: "2027-03-20 20:25:00")) + SolvervEntry(def: SolvervDef(utcString: "2027-06-21 14:11:00")) + SolvervEntry(def: SolvervDef(utcString: "2027-09-23 06:02:00")) + SolvervEntry(def: SolvervDef(utcString: "2027-12-22 02:43:00")) + SolvervEntry(def: SolvervDef(utcString: "2028-03-20 02:17:00")) + SolvervEntry(def: SolvervDef(utcString: "2028-06-20 20:02:00")) + SolvervEntry(def: SolvervDef(utcString: "2028-09-22 11:45:00")) + SolvervEntry(def: SolvervDef(utcString: "2028-12-21 08:20:00")) + SolvervEntry(def: SolvervDef(utcString: "2029-03-20 08:01:00")) + SolvervEntry(def: SolvervDef(utcString: "2029-06-21 01:48:00")) + SolvervEntry(def: SolvervDef(utcString: "2029-09-22 17:37:00")) + SolvervEntry(def: SolvervDef(utcString: "2029-12-21 14:14:00")) + SolvervEntry(def: SolvervDef(utcString: "2030-03-20 13:51:00")) + SolvervEntry(def: SolvervDef(utcString: "2030-06-21 07:31:00")) + SolvervEntry(def: SolvervDef(utcString: "2030-09-22 23:27:00")) + SolvervEntry(def: SolvervDef(utcString: "2030-12-21 20:09:00")) +} + +struct SolvervDef { + let date: Date; + + init(date:Date) { + self.date = date; + } + + init(utcString:String) { + let formatter = DateFormatter() + formatter.dateFormat = "yyyy-MM-dd HH:mm:ss" + formatter.timeZone = TimeZone(abbreviation: "UTC") + // Should probably guard this, but not now + let date = formatter.date(from: utcString)! + self.date = date + } + + func emoji() -> String { + let components = Calendar.current.dateComponents([.year,.month,.day,.hour,.minute], from: date) + let hour = components.hour! + let minute = components.minute! + if hour == 2 && minute == 43 { + return "😀" + } else { + return "" + } + } +} diff --git a/Solsnu.Widget/Solsnu_WidgetBundle.swift b/Solsnu.Widget/Solsnu_WidgetBundle.swift new file mode 100644 index 0000000..24e5cbe --- /dev/null +++ b/Solsnu.Widget/Solsnu_WidgetBundle.swift @@ -0,0 +1,17 @@ +// +// Solsnu_WidgetBundle.swift +// Solsnu.Widget +// +// Created by Ivar Løvlie on 15/12/2025. +// + +import WidgetKit +import SwiftUI + +@main +struct Solsnu_WidgetBundle: WidgetBundle { + var body: some Widget { + Solsnu_Widget() + Solsnu_WidgetControl() + } +} diff --git a/Solsnu.Widget/Solsnu_WidgetControl.swift b/Solsnu.Widget/Solsnu_WidgetControl.swift new file mode 100644 index 0000000..62cd817 --- /dev/null +++ b/Solsnu.Widget/Solsnu_WidgetControl.swift @@ -0,0 +1,54 @@ +// +// Solsnu_WidgetControl.swift +// Solsnu.Widget +// +// Created by Ivar Løvlie on 15/12/2025. +// + +import AppIntents +import SwiftUI +import WidgetKit + +struct Solsnu_WidgetControl: ControlWidget { + var body: some ControlWidgetConfiguration { + StaticControlConfiguration( + kind: "ivarivarivar.Solverv.Solsnu.Widget", + provider: Provider() + ) { value in + ControlWidgetToggle( + "Start Timer", + isOn: value, + action: StartTimerIntent() + ) { isRunning in + Label(isRunning ? "On" : "Off", systemImage: "timer") + } + } + .displayName("Timer") + .description("A an example control that runs a timer.") + } +} + +extension Solsnu_WidgetControl { + struct Provider: ControlValueProvider { + var previewValue: Bool { + false + } + + func currentValue() async throws -> Bool { + let isRunning = true // Check if the timer is running + return isRunning + } + } +} + +struct StartTimerIntent: SetValueIntent { + static let title: LocalizedStringResource = "Start a timer" + + @Parameter(title: "Timer is running") + var value: Bool + + func perform() async throws -> some IntentResult { + // Start / stop the timer based on `value`. + return .result() + } +} diff --git a/Solverv.xcodeproj/project.pbxproj b/Solverv.xcodeproj/project.pbxproj index 5dd19be..64b581c 100644 --- a/Solverv.xcodeproj/project.pbxproj +++ b/Solverv.xcodeproj/project.pbxproj @@ -6,16 +6,67 @@ objectVersion = 77; objects = { +/* Begin PBXBuildFile section */ + 1B8629D62EF0C656005A1C75 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B8629D52EF0C656005A1C75 /* WidgetKit.framework */; }; + 1B8629D82EF0C656005A1C75 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B8629D72EF0C656005A1C75 /* SwiftUI.framework */; }; + 1B8629E52EF0C657005A1C75 /* Solsnu.WidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1B8629D32EF0C656005A1C75 /* Solsnu.WidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 1B8629E32EF0C657005A1C75 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1B8629B72EF0C636005A1C75 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1B8629D22EF0C656005A1C75; + remoteInfo = Solsnu.WidgetExtension; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 1B8629EA2EF0C657005A1C75 /* Embed Foundation Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 1B8629E52EF0C657005A1C75 /* Solsnu.WidgetExtension.appex in Embed Foundation Extensions */, + ); + name = "Embed Foundation Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 1B8629BF2EF0C636005A1C75 /* Solverv.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Solverv.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1B8629D32EF0C656005A1C75 /* Solsnu.WidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Solsnu.WidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 1B8629D52EF0C656005A1C75 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; + 1B8629D72EF0C656005A1C75 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ +/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ + 1B8629E62EF0C657005A1C75 /* Exceptions for "Solsnu.Widget" folder in "Solsnu.WidgetExtension" target */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = 1B8629D22EF0C656005A1C75 /* Solsnu.WidgetExtension */; + }; +/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ + /* Begin PBXFileSystemSynchronizedRootGroup section */ 1B8629C12EF0C636005A1C75 /* Solverv */ = { isa = PBXFileSystemSynchronizedRootGroup; path = Solverv; sourceTree = "<group>"; }; + 1B8629D92EF0C656005A1C75 /* Solsnu.Widget */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + 1B8629E62EF0C657005A1C75 /* Exceptions for "Solsnu.Widget" folder in "Solsnu.WidgetExtension" target */, + ); + path = Solsnu.Widget; + sourceTree = "<group>"; + }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ @@ -26,6 +77,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 1B8629D02EF0C656005A1C75 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1B8629D82EF0C656005A1C75 /* SwiftUI.framework in Frameworks */, + 1B8629D62EF0C656005A1C75 /* WidgetKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -33,6 +93,8 @@ isa = PBXGroup; children = ( 1B8629C12EF0C636005A1C75 /* Solverv */, + 1B8629D92EF0C656005A1C75 /* Solsnu.Widget */, + 1B8629D42EF0C656005A1C75 /* Frameworks */, 1B8629C02EF0C636005A1C75 /* Products */, ); sourceTree = "<group>"; @@ -41,10 +103,20 @@ isa = PBXGroup; children = ( 1B8629BF2EF0C636005A1C75 /* Solverv.app */, + 1B8629D32EF0C656005A1C75 /* Solsnu.WidgetExtension.appex */, ); name = Products; sourceTree = "<group>"; }; + 1B8629D42EF0C656005A1C75 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1B8629D52EF0C656005A1C75 /* WidgetKit.framework */, + 1B8629D72EF0C656005A1C75 /* SwiftUI.framework */, + ); + name = Frameworks; + sourceTree = "<group>"; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -55,10 +127,12 @@ 1B8629BB2EF0C636005A1C75 /* Sources */, 1B8629BC2EF0C636005A1C75 /* Frameworks */, 1B8629BD2EF0C636005A1C75 /* Resources */, + 1B8629EA2EF0C657005A1C75 /* Embed Foundation Extensions */, ); buildRules = ( ); dependencies = ( + 1B8629E42EF0C657005A1C75 /* PBXTargetDependency */, ); fileSystemSynchronizedGroups = ( 1B8629C12EF0C636005A1C75 /* Solverv */, @@ -70,6 +144,28 @@ productReference = 1B8629BF2EF0C636005A1C75 /* Solverv.app */; productType = "com.apple.product-type.application"; }; + 1B8629D22EF0C656005A1C75 /* Solsnu.WidgetExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1B8629E72EF0C657005A1C75 /* Build configuration list for PBXNativeTarget "Solsnu.WidgetExtension" */; + buildPhases = ( + 1B8629CF2EF0C656005A1C75 /* Sources */, + 1B8629D02EF0C656005A1C75 /* Frameworks */, + 1B8629D12EF0C656005A1C75 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + 1B8629D92EF0C656005A1C75 /* Solsnu.Widget */, + ); + name = Solsnu.WidgetExtension; + packageProductDependencies = ( + ); + productName = Solsnu.WidgetExtension; + productReference = 1B8629D32EF0C656005A1C75 /* Solsnu.WidgetExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -83,6 +179,9 @@ 1B8629BE2EF0C636005A1C75 = { CreatedOnToolsVersion = 26.0.1; }; + 1B8629D22EF0C656005A1C75 = { + CreatedOnToolsVersion = 26.0.1; + }; }; }; buildConfigurationList = 1B8629BA2EF0C636005A1C75 /* Build configuration list for PBXProject "Solverv" */; @@ -100,6 +199,7 @@ projectRoot = ""; targets = ( 1B8629BE2EF0C636005A1C75 /* Solverv */, + 1B8629D22EF0C656005A1C75 /* Solsnu.WidgetExtension */, ); }; /* End PBXProject section */ @@ -112,6 +212,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 1B8629D12EF0C656005A1C75 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -122,8 +229,23 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 1B8629CF2EF0C656005A1C75 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXTargetDependency section */ + 1B8629E42EF0C657005A1C75 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1B8629D22EF0C656005A1C75 /* Solsnu.WidgetExtension */; + targetProxy = 1B8629E32EF0C657005A1C75 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + /* Begin XCBuildConfiguration section */ 1B8629CA2EF0C637005A1C75 /* Debug */ = { isa = XCBuildConfiguration; @@ -310,6 +432,66 @@ }; name = Release; }; + 1B8629E82EF0C657005A1C75 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ZH95BL9NUK; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = Solsnu.Widget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Solsnu.Widget; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "ivarivarivar.Solverv.Solsnu-Widget"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 1B8629E92EF0C657005A1C75 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ZH95BL9NUK; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = Solsnu.Widget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Solsnu.Widget; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "ivarivarivar.Solverv.Solsnu-Widget"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -331,6 +513,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 1B8629E72EF0C657005A1C75 /* Build configuration list for PBXNativeTarget "Solsnu.WidgetExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1B8629E82EF0C657005A1C75 /* Debug */, + 1B8629E92EF0C657005A1C75 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 1B8629B72EF0C636005A1C75 /* Project object */; diff --git a/Solverv.xcodeproj/xcuserdata/ivarlovlie.xcuserdatad/xcschemes/xcschememanagement.plist b/Solverv.xcodeproj/xcuserdata/ivarlovlie.xcuserdatad/xcschemes/xcschememanagement.plist index 40f29b1..d8ecd4f 100644 --- a/Solverv.xcodeproj/xcuserdata/ivarlovlie.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Solverv.xcodeproj/xcuserdata/ivarlovlie.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,6 +4,11 @@ <dict> <key>SchemeUserState</key> <dict> + <key>Solsnu.WidgetExtension.xcscheme_^#shared#^_</key> + <dict> + <key>orderHint</key> + <integer>1</integer> + </dict> <key>Solverv.xcscheme_^#shared#^_</key> <dict> <key>orderHint</key> |
