Compare commits

...

10 Commits

  1. 0
      AppShared/Assets.xcassets/AccentColor.colorset/Contents.json
  2. 5
      AppShared/Assets.xcassets/AppIcon.appiconset/Contents.json
  3. 11
      AppShared/Assets.xcassets/Brand Assets.brandassets/App Icon - App Store.imagestack/Back.imagestacklayer/Content.imageset/Contents.json
  4. 0
      AppShared/Assets.xcassets/Brand Assets.brandassets/App Icon - App Store.imagestack/Back.imagestacklayer/Contents.json
  5. 17
      AppShared/Assets.xcassets/Brand Assets.brandassets/App Icon - App Store.imagestack/Contents.json
  6. 11
      AppShared/Assets.xcassets/Brand Assets.brandassets/App Icon - App Store.imagestack/Front.imagestacklayer/Content.imageset/Contents.json
  7. 0
      AppShared/Assets.xcassets/Brand Assets.brandassets/App Icon - App Store.imagestack/Front.imagestacklayer/Contents.json
  8. 11
      AppShared/Assets.xcassets/Brand Assets.brandassets/App Icon - App Store.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json
  9. 6
      AppShared/Assets.xcassets/Brand Assets.brandassets/App Icon - App Store.imagestack/Middle.imagestacklayer/Contents.json
  10. 16
      AppShared/Assets.xcassets/Brand Assets.brandassets/App Icon.imagestack/Back.imagestacklayer/Content.imageset/Contents.json
  11. 6
      AppShared/Assets.xcassets/Brand Assets.brandassets/App Icon.imagestack/Back.imagestacklayer/Contents.json
  12. 17
      AppShared/Assets.xcassets/Brand Assets.brandassets/App Icon.imagestack/Contents.json
  13. 16
      AppShared/Assets.xcassets/Brand Assets.brandassets/App Icon.imagestack/Front.imagestacklayer/Content.imageset/Contents.json
  14. 6
      AppShared/Assets.xcassets/Brand Assets.brandassets/App Icon.imagestack/Front.imagestacklayer/Contents.json
  15. 16
      AppShared/Assets.xcassets/Brand Assets.brandassets/App Icon.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json
  16. 6
      AppShared/Assets.xcassets/Brand Assets.brandassets/App Icon.imagestack/Middle.imagestacklayer/Contents.json
  17. 32
      AppShared/Assets.xcassets/Brand Assets.brandassets/Contents.json
  18. 16
      AppShared/Assets.xcassets/Brand Assets.brandassets/Top Shelf Image Wide.imageset/Contents.json
  19. 16
      AppShared/Assets.xcassets/Brand Assets.brandassets/Top Shelf Image.imageset/Contents.json
  20. 6
      AppShared/Assets.xcassets/Contents.json
  21. 47
      AppShared/ContentView.swift
  22. 0
      AppShared/JustOneThingApp.swift
  23. 716
      JustOneThing.xcodeproj/project.pbxproj
  24. 77
      JustOneThing.xcodeproj/xcshareddata/xcschemes/JustOneThing.xcscheme
  25. 91
      JustOneThing.xcodeproj/xcshareddata/xcschemes/JustOneThingWatch.xcscheme
  26. 113
      JustOneThing.xcodeproj/xcshareddata/xcschemes/MacWidgetExtension.xcscheme
  27. 112
      JustOneThing.xcodeproj/xcshareddata/xcschemes/PhoneWidgetExtension.xcscheme
  28. 133
      JustOneThing.xcodeproj/xcshareddata/xcschemes/WatchWidgetExtension.xcscheme
  29. 48
      JustOneThing.xcodeproj/xcuserdata/acf.xcuserdatad/xcschemes/xcschememanagement.plist
  30. 26
      JustOneThing/ContentView.swift
  31. 10
      JustOneThing/JustOneThing.entitlements
  32. 8
      JustOneThingWatch/JustOneThingWatch.entitlements
  33. 8
      MacWidget/MacWidget.entitlements
  34. 8
      PhoneWidget/PhoneWidget.entitlements
  35. 59
      PhoneWidget/PhoneWidget.intentdefinition
  36. 8
      WatchWidget/WatchWidget.entitlements
  37. 11
      WidgetShared/Info.plist
  38. 47
      WidgetShared/JustOneThingProvider.swift
  39. 50
      WidgetShared/JustOneThingWidget.swift
  40. 59
      WidgetShared/Widget.intentdefinition
  41. 11
      WidgetShared/WidgetAssets.xcassets/AccentColor.colorset/Contents.json
  42. 13
      WidgetShared/WidgetAssets.xcassets/AppIcon.appiconset/Contents.json
  43. 6
      WidgetShared/WidgetAssets.xcassets/Contents.json
  44. 11
      WidgetShared/WidgetAssets.xcassets/WidgetBackground.colorset/Contents.json

@ -54,6 +54,11 @@
"idiom" : "mac",
"scale" : "2x",
"size" : "512x512"
},
{
"idiom" : "universal",
"platform" : "watchos",
"size" : "1024x1024"
}
],
"info" : {

@ -0,0 +1,11 @@
{
"images" : [
{
"idiom" : "tv"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,17 @@
{
"info" : {
"author" : "xcode",
"version" : 1
},
"layers" : [
{
"filename" : "Front.imagestacklayer"
},
{
"filename" : "Middle.imagestacklayer"
},
{
"filename" : "Back.imagestacklayer"
}
]
}

@ -0,0 +1,11 @@
{
"images" : [
{
"idiom" : "tv"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,11 @@
{
"images" : [
{
"idiom" : "tv"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,16 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,17 @@
{
"info" : {
"author" : "xcode",
"version" : 1
},
"layers" : [
{
"filename" : "Front.imagestacklayer"
},
{
"filename" : "Middle.imagestacklayer"
},
{
"filename" : "Back.imagestacklayer"
}
]
}

@ -0,0 +1,16 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,16 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,32 @@
{
"assets" : [
{
"filename" : "App Icon - App Store.imagestack",
"idiom" : "tv",
"role" : "primary-app-icon",
"size" : "1280x768"
},
{
"filename" : "App Icon.imagestack",
"idiom" : "tv",
"role" : "primary-app-icon",
"size" : "400x240"
},
{
"filename" : "Top Shelf Image Wide.imageset",
"idiom" : "tv",
"role" : "top-shelf-image-wide",
"size" : "2320x720"
},
{
"filename" : "Top Shelf Image.imageset",
"idiom" : "tv",
"role" : "top-shelf-image",
"size" : "1920x720"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,16 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,16 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,47 @@
//
// ContentView.swift
// JustOneThing
//
// Created by Alan Francis on 02/06/2023.
//
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundColor(.accentColor)
#if os(iOS)
Text("Hello \(UIDevice.isIPad ? "iPadOS" : "iOS")")
#elseif os(macOS)
Text("Hello macOS")
#elseif os(tvOS)
Text("Hello tvOS")
#elseif os(watchOS)
Text("Hello watchOS")
#endif
}
.padding()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
#if os(iOS)
extension UIDevice {
static var isIPad: Bool {
UIDevice.current.userInterfaceIdiom == .pad
}
static var isIPhone: Bool {
UIDevice.current.userInterfaceIdiom == .phone
}
}
#endif

@ -7,22 +7,137 @@
objects = {
/* Begin PBXBuildFile section */
5407E5022A2A8AE200EF00B8 /* JustOneThingApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5483903A2A2A773900BF5624 /* JustOneThingApp.swift */; };
5407E5032A2A8AE700EF00B8 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5483903C2A2A773900BF5624 /* ContentView.swift */; };
5407E5042A2A8AEA00EF00B8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5483903E2A2A773A00BF5624 /* Assets.xcassets */; };
5431ED7A2A2A77CA00515680 /* JustOneThingWatch.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 5431ED6D2A2A77C900515680 /* JustOneThingWatch.app */; platformFilter = ios; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
5472018C2A36563A005B2FCC /* WidgetAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 54928C372A35F8B800095445 /* WidgetAssets.xcassets */; };
5472018E2A36563B005B2FCC /* Widget.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 54928C1C2A35F89900095445 /* Widget.intentdefinition */; };
547201902A36563C005B2FCC /* Widget.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 54928C1C2A35F89900095445 /* Widget.intentdefinition */; };
547201912A36563C005B2FCC /* WidgetAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 54928C372A35F8B800095445 /* WidgetAssets.xcassets */; };
547201932A365868005B2FCC /* Widget.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 54928C1C2A35F89900095445 /* Widget.intentdefinition */; };
547201962A461DBE005B2FCC /* JustOneThingWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54928C4A2A35F8CB00095445 /* JustOneThingWidget.swift */; };
547201972A461DBE005B2FCC /* JustOneThingWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54928C4A2A35F8CB00095445 /* JustOneThingWidget.swift */; };
5483903B2A2A773900BF5624 /* JustOneThingApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5483903A2A2A773900BF5624 /* JustOneThingApp.swift */; };
5483903D2A2A773900BF5624 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5483903C2A2A773900BF5624 /* ContentView.swift */; };
5483903F2A2A773A00BF5624 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5483903E2A2A773A00BF5624 /* Assets.xcassets */; };
548390432A2A773A00BF5624 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 548390422A2A773A00BF5624 /* Preview Assets.xcassets */; };
54928C162A35F89900095445 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54928C152A35F89900095445 /* WidgetKit.framework */; };
54928C182A35F89900095445 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54928C172A35F89900095445 /* SwiftUI.framework */; };
54928C212A35F89A00095445 /* Widget.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 54928C1C2A35F89900095445 /* Widget.intentdefinition */; };
54928C222A35F89A00095445 /* Widget.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 54928C1C2A35F89900095445 /* Widget.intentdefinition */; };
54928C252A35F89A00095445 /* MacWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 54928C132A35F89900095445 /* MacWidgetExtension.appex */; platformFilters = (macos, ); settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
54928C2F2A35F8B800095445 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54928C152A35F89900095445 /* WidgetKit.framework */; };
54928C302A35F8B800095445 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54928C172A35F89900095445 /* SwiftUI.framework */; };
54928C382A35F8B800095445 /* WidgetAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 54928C372A35F8B800095445 /* WidgetAssets.xcassets */; };
54928C3E2A35F8B800095445 /* PhoneWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 54928C2E2A35F8B800095445 /* PhoneWidgetExtension.appex */; platformFilter = ios; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
54928C472A35F8CB00095445 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54928C152A35F89900095445 /* WidgetKit.framework */; };
54928C482A35F8CB00095445 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54928C172A35F89900095445 /* SwiftUI.framework */; };
54928C4B2A35F8CB00095445 /* JustOneThingWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54928C4A2A35F8CB00095445 /* JustOneThingWidget.swift */; };
54928C542A35F8CC00095445 /* WatchWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 54928C462A35F8CB00095445 /* WatchWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
5493A81B2A471E37001EBA08 /* JustOneThingProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5493A81A2A471E36001EBA08 /* JustOneThingProvider.swift */; };
5493A81C2A471E37001EBA08 /* JustOneThingProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5493A81A2A471E36001EBA08 /* JustOneThingProvider.swift */; };
5493A81D2A471E37001EBA08 /* JustOneThingProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5493A81A2A471E36001EBA08 /* JustOneThingProvider.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
5431ED782A2A77CA00515680 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 5483902F2A2A773900BF5624 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 5431ED6C2A2A77C900515680;
remoteInfo = "JustOneThingWatch Watch App";
};
54928C232A35F89A00095445 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 5483902F2A2A773900BF5624 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 54928C122A35F89900095445;
remoteInfo = MacWidgetExtension;
};
54928C3C2A35F8B800095445 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 5483902F2A2A773900BF5624 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 54928C2D2A35F8B800095445;
remoteInfo = PhoneWidgetExtension;
};
54928C522A35F8CC00095445 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 5483902F2A2A773900BF5624 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 54928C452A35F8CB00095445;
remoteInfo = WatchWidgetExtension;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
5431ED7B2A2A77CA00515680 /* Embed Watch Content */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "$(CONTENTS_FOLDER_PATH)/Watch";
dstSubfolderSpec = 16;
files = (
5431ED7A2A2A77CA00515680 /* JustOneThingWatch.app in Embed Watch Content */,
);
name = "Embed Watch Content";
runOnlyForDeploymentPostprocessing = 0;
};
54928C262A35F89A00095445 /* Embed Foundation Extensions */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 13;
files = (
54928C252A35F89A00095445 /* MacWidgetExtension.appex in Embed Foundation Extensions */,
54928C3E2A35F8B800095445 /* PhoneWidgetExtension.appex in Embed Foundation Extensions */,
);
name = "Embed Foundation Extensions";
runOnlyForDeploymentPostprocessing = 0;
};
54928C582A35F8CC00095445 /* Embed Foundation Extensions */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 13;
files = (
54928C542A35F8CC00095445 /* WatchWidgetExtension.appex in Embed Foundation Extensions */,
);
name = "Embed Foundation Extensions";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
5407E5062A35B96E00EF00B8 /* JustOneThingWatch.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = JustOneThingWatch.entitlements; sourceTree = "<group>"; };
5431ED6D2A2A77C900515680 /* JustOneThingWatch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JustOneThingWatch.app; sourceTree = BUILT_PRODUCTS_DIR; };
547201942A461554005B2FCC /* PhoneWidget.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = PhoneWidget.entitlements; sourceTree = "<group>"; };
547201952A461558005B2FCC /* WatchWidget.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = WatchWidget.entitlements; sourceTree = "<group>"; };
548390372A2A773900BF5624 /* JustOneThing.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JustOneThing.app; sourceTree = BUILT_PRODUCTS_DIR; };
5483903A2A2A773900BF5624 /* JustOneThingApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JustOneThingApp.swift; sourceTree = "<group>"; };
5483903C2A2A773900BF5624 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
5483903E2A2A773A00BF5624 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
548390402A2A773A00BF5624 /* JustOneThing.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = JustOneThing.entitlements; sourceTree = "<group>"; };
548390422A2A773A00BF5624 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
54928C132A35F89900095445 /* MacWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = MacWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
54928C152A35F89900095445 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; };
54928C172A35F89900095445 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; };
54928C1C2A35F89900095445 /* Widget.intentdefinition */ = {isa = PBXFileReference; lastKnownFileType = file.intentdefinition; path = Widget.intentdefinition; sourceTree = "<group>"; };
54928C202A35F89A00095445 /* MacWidget.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = MacWidget.entitlements; sourceTree = "<group>"; };
54928C2E2A35F8B800095445 /* PhoneWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = PhoneWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
54928C372A35F8B800095445 /* WidgetAssets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = WidgetAssets.xcassets; sourceTree = "<group>"; };
54928C392A35F8B800095445 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
54928C462A35F8CB00095445 /* WatchWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = WatchWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
54928C4A2A35F8CB00095445 /* JustOneThingWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JustOneThingWidget.swift; sourceTree = "<group>"; };
5493A81A2A471E36001EBA08 /* JustOneThingProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JustOneThingProvider.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
5431ED6A2A2A77C900515680 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
548390342A2A773900BF5624 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@ -30,13 +145,77 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
54928C102A35F89900095445 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
54928C182A35F89900095445 /* SwiftUI.framework in Frameworks */,
54928C162A35F89900095445 /* WidgetKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
54928C2B2A35F8B800095445 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
54928C302A35F8B800095445 /* SwiftUI.framework in Frameworks */,
54928C2F2A35F8B800095445 /* WidgetKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
54928C432A35F8CB00095445 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
54928C482A35F8CB00095445 /* SwiftUI.framework in Frameworks */,
54928C472A35F8CB00095445 /* WidgetKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
5407E5012A2A8A5100EF00B8 /* AppShared */ = {
isa = PBXGroup;
children = (
5483903A2A2A773900BF5624 /* JustOneThingApp.swift */,
5483903C2A2A773900BF5624 /* ContentView.swift */,
5483903E2A2A773A00BF5624 /* Assets.xcassets */,
);
path = AppShared;
sourceTree = "<group>";
};
5431ED6E2A2A77C900515680 /* JustOneThingWatch */ = {
isa = PBXGroup;
children = (
5407E5062A35B96E00EF00B8 /* JustOneThingWatch.entitlements */,
);
path = JustOneThingWatch;
sourceTree = "<group>";
};
5472018B2A3655E4005B2FCC /* WidgetShared */ = {
isa = PBXGroup;
children = (
54928C4A2A35F8CB00095445 /* JustOneThingWidget.swift */,
5493A81A2A471E36001EBA08 /* JustOneThingProvider.swift */,
54928C372A35F8B800095445 /* WidgetAssets.xcassets */,
54928C392A35F8B800095445 /* Info.plist */,
54928C1C2A35F89900095445 /* Widget.intentdefinition */,
);
path = WidgetShared;
sourceTree = "<group>";
};
5483902E2A2A773900BF5624 = {
isa = PBXGroup;
children = (
5407E5012A2A8A5100EF00B8 /* AppShared */,
548390392A2A773900BF5624 /* JustOneThing */,
5431ED6E2A2A77C900515680 /* JustOneThingWatch */,
5472018B2A3655E4005B2FCC /* WidgetShared */,
54928C192A35F89900095445 /* MacWidget */,
54928C312A35F8B800095445 /* PhoneWidget */,
54928C492A35F8CB00095445 /* WatchWidget */,
54928C142A35F89900095445 /* Frameworks */,
548390382A2A773900BF5624 /* Products */,
);
sourceTree = "<group>";
@ -45,6 +224,10 @@
isa = PBXGroup;
children = (
548390372A2A773900BF5624 /* JustOneThing.app */,
5431ED6D2A2A77C900515680 /* JustOneThingWatch.app */,
54928C132A35F89900095445 /* MacWidgetExtension.appex */,
54928C2E2A35F8B800095445 /* PhoneWidgetExtension.appex */,
54928C462A35F8CB00095445 /* WatchWidgetExtension.appex */,
);
name = Products;
sourceTree = "<group>";
@ -52,26 +235,66 @@
548390392A2A773900BF5624 /* JustOneThing */ = {
isa = PBXGroup;
children = (
5483903A2A2A773900BF5624 /* JustOneThingApp.swift */,
5483903C2A2A773900BF5624 /* ContentView.swift */,
5483903E2A2A773A00BF5624 /* Assets.xcassets */,
548390402A2A773A00BF5624 /* JustOneThing.entitlements */,
548390412A2A773A00BF5624 /* Preview Content */,
);
path = JustOneThing;
sourceTree = "<group>";
};
548390412A2A773A00BF5624 /* Preview Content */ = {
54928C142A35F89900095445 /* Frameworks */ = {
isa = PBXGroup;
children = (
548390422A2A773A00BF5624 /* Preview Assets.xcassets */,
54928C152A35F89900095445 /* WidgetKit.framework */,
54928C172A35F89900095445 /* SwiftUI.framework */,
);
path = "Preview Content";
name = Frameworks;
sourceTree = "<group>";
};
54928C192A35F89900095445 /* MacWidget */ = {
isa = PBXGroup;
children = (
54928C202A35F89A00095445 /* MacWidget.entitlements */,
);
path = MacWidget;
sourceTree = "<group>";
};
54928C312A35F8B800095445 /* PhoneWidget */ = {
isa = PBXGroup;
children = (
547201942A461554005B2FCC /* PhoneWidget.entitlements */,
);
path = PhoneWidget;
sourceTree = "<group>";
};
54928C492A35F8CB00095445 /* WatchWidget */ = {
isa = PBXGroup;
children = (
547201952A461558005B2FCC /* WatchWidget.entitlements */,
);
path = WatchWidget;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
5431ED6C2A2A77C900515680 /* JustOneThingWatch */ = {
isa = PBXNativeTarget;
buildConfigurationList = 5431ED7E2A2A77CA00515680 /* Build configuration list for PBXNativeTarget "JustOneThingWatch" */;
buildPhases = (
5431ED692A2A77C900515680 /* Sources */,
5431ED6A2A2A77C900515680 /* Frameworks */,
5431ED6B2A2A77C900515680 /* Resources */,
54928C582A35F8CC00095445 /* Embed Foundation Extensions */,
);
buildRules = (
);
dependencies = (
54928C532A35F8CC00095445 /* PBXTargetDependency */,
);
name = JustOneThingWatch;
productName = "JustOneThingWatch Watch App";
productReference = 5431ED6D2A2A77C900515680 /* JustOneThingWatch.app */;
productType = "com.apple.product-type.application";
};
548390362A2A773900BF5624 /* JustOneThing */ = {
isa = PBXNativeTarget;
buildConfigurationList = 548390462A2A773A00BF5624 /* Build configuration list for PBXNativeTarget "JustOneThing" */;
@ -79,16 +302,72 @@
548390332A2A773900BF5624 /* Sources */,
548390342A2A773900BF5624 /* Frameworks */,
548390352A2A773900BF5624 /* Resources */,
5431ED7B2A2A77CA00515680 /* Embed Watch Content */,
54928C262A35F89A00095445 /* Embed Foundation Extensions */,
);
buildRules = (
);
dependencies = (
5431ED792A2A77CA00515680 /* PBXTargetDependency */,
54928C242A35F89A00095445 /* PBXTargetDependency */,
54928C3D2A35F8B800095445 /* PBXTargetDependency */,
);
name = JustOneThing;
productName = JustOneThing;
productReference = 548390372A2A773900BF5624 /* JustOneThing.app */;
productType = "com.apple.product-type.application";
};
54928C122A35F89900095445 /* MacWidgetExtension */ = {
isa = PBXNativeTarget;
buildConfigurationList = 54928C292A35F89A00095445 /* Build configuration list for PBXNativeTarget "MacWidgetExtension" */;
buildPhases = (
54928C0F2A35F89900095445 /* Sources */,
54928C102A35F89900095445 /* Frameworks */,
54928C112A35F89900095445 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = MacWidgetExtension;
productName = MacWidgetExtension;
productReference = 54928C132A35F89900095445 /* MacWidgetExtension.appex */;
productType = "com.apple.product-type.app-extension";
};
54928C2D2A35F8B800095445 /* PhoneWidgetExtension */ = {
isa = PBXNativeTarget;
buildConfigurationList = 54928C3F2A35F8B800095445 /* Build configuration list for PBXNativeTarget "PhoneWidgetExtension" */;
buildPhases = (
54928C2A2A35F8B800095445 /* Sources */,
54928C2B2A35F8B800095445 /* Frameworks */,
54928C2C2A35F8B800095445 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = PhoneWidgetExtension;
productName = PhoneWidgetExtension;
productReference = 54928C2E2A35F8B800095445 /* PhoneWidgetExtension.appex */;
productType = "com.apple.product-type.app-extension";
};
54928C452A35F8CB00095445 /* WatchWidgetExtension */ = {
isa = PBXNativeTarget;
buildConfigurationList = 54928C552A35F8CC00095445 /* Build configuration list for PBXNativeTarget "WatchWidgetExtension" */;
buildPhases = (
54928C422A35F8CB00095445 /* Sources */,
54928C432A35F8CB00095445 /* Frameworks */,
54928C442A35F8CB00095445 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = WatchWidgetExtension;
productName = WatchWidgetExtension;
productReference = 54928C462A35F8CB00095445 /* WatchWidgetExtension.appex */;
productType = "com.apple.product-type.app-extension";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@ -99,9 +378,21 @@
LastSwiftUpdateCheck = 1430;
LastUpgradeCheck = 1430;
TargetAttributes = {
5431ED6C2A2A77C900515680 = {
CreatedOnToolsVersion = 14.3.1;
};
548390362A2A773900BF5624 = {
CreatedOnToolsVersion = 14.3.1;
};
54928C122A35F89900095445 = {
CreatedOnToolsVersion = 14.3.1;
};
54928C2D2A35F8B800095445 = {
CreatedOnToolsVersion = 14.3.1;
};
54928C452A35F8CB00095445 = {
CreatedOnToolsVersion = 14.3.1;
};
};
};
buildConfigurationList = 548390322A2A773900BF5624 /* Build configuration list for PBXProject "JustOneThing" */;
@ -118,35 +409,204 @@
projectRoot = "";
targets = (
548390362A2A773900BF5624 /* JustOneThing */,
5431ED6C2A2A77C900515680 /* JustOneThingWatch */,
54928C122A35F89900095445 /* MacWidgetExtension */,
54928C2D2A35F8B800095445 /* PhoneWidgetExtension */,
54928C452A35F8CB00095445 /* WatchWidgetExtension */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
5431ED6B2A2A77C900515680 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
5407E5042A2A8AEA00EF00B8 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
548390352A2A773900BF5624 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
548390432A2A773A00BF5624 /* Preview Assets.xcassets in Resources */,
5483903F2A2A773A00BF5624 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
54928C112A35F89900095445 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
5472018C2A36563A005B2FCC /* WidgetAssets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
54928C2C2A35F8B800095445 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
54928C382A35F8B800095445 /* WidgetAssets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
54928C442A35F8CB00095445 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
547201912A36563C005B2FCC /* WidgetAssets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
5431ED692A2A77C900515680 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
5407E5032A2A8AE700EF00B8 /* ContentView.swift in Sources */,
5407E5022A2A8AE200EF00B8 /* JustOneThingApp.swift in Sources */,
547201932A365868005B2FCC /* Widget.intentdefinition in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
548390332A2A773900BF5624 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
5483903D2A2A773900BF5624 /* ContentView.swift in Sources */,
5483903B2A2A773900BF5624 /* JustOneThingApp.swift in Sources */,
54928C222A35F89A00095445 /* Widget.intentdefinition in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
54928C0F2A35F89900095445 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
54928C212A35F89A00095445 /* Widget.intentdefinition in Sources */,
5493A81B2A471E37001EBA08 /* JustOneThingProvider.swift in Sources */,
547201972A461DBE005B2FCC /* JustOneThingWidget.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
54928C2A2A35F8B800095445 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
547201962A461DBE005B2FCC /* JustOneThingWidget.swift in Sources */,
5493A81C2A471E37001EBA08 /* JustOneThingProvider.swift in Sources */,
5472018E2A36563B005B2FCC /* Widget.intentdefinition in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
54928C422A35F8CB00095445 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
547201902A36563C005B2FCC /* Widget.intentdefinition in Sources */,
5493A81D2A471E37001EBA08 /* JustOneThingProvider.swift in Sources */,
54928C4B2A35F8CB00095445 /* JustOneThingWidget.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
5431ED792A2A77CA00515680 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
platformFilter = ios;
target = 5431ED6C2A2A77C900515680 /* JustOneThingWatch */;
targetProxy = 5431ED782A2A77CA00515680 /* PBXContainerItemProxy */;
};
54928C242A35F89A00095445 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
platformFilters = (
macos,
);
target = 54928C122A35F89900095445 /* MacWidgetExtension */;
targetProxy = 54928C232A35F89A00095445 /* PBXContainerItemProxy */;
};
54928C3D2A35F8B800095445 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
platformFilter = ios;
target = 54928C2D2A35F8B800095445 /* PhoneWidgetExtension */;
targetProxy = 54928C3C2A35F8B800095445 /* PBXContainerItemProxy */;
};
54928C532A35F8CC00095445 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 54928C452A35F8CB00095445 /* WatchWidgetExtension */;
targetProxy = 54928C522A35F8CC00095445 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
5431ED7C2A2A77CA00515680 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = JustOneThingWatch/JustOneThingWatch.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = 37UC5MW6PT;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = JustOneThingWatch;
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = com.alancfrancis.apps.JustOneThing;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.alancfrancis.apps.JustOneThing.watchkitapp;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = watchos;
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 4;
WATCHOS_DEPLOYMENT_TARGET = 9.4;
};
name = Debug;
};
5431ED7D2A2A77CA00515680 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = JustOneThingWatch/JustOneThingWatch.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = 37UC5MW6PT;
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_CFBundleDisplayName = JustOneThingWatch;
INFOPLIST_KEY_UISupportedInterfaceOrientations = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown";
INFOPLIST_KEY_WKCompanionAppBundleIdentifier = com.alancfrancis.apps.JustOneThing;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.alancfrancis.apps.JustOneThing.watchkitapp;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = watchos;
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 4;
VALIDATE_PRODUCT = YES;
WATCHOS_DEPLOYMENT_TARGET = 9.4;
};
name = Release;
};
548390442A2A773A00BF5624 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@ -259,12 +719,13 @@
548390472A2A773A00BF5624 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = JustOneThing/JustOneThing.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"JustOneThing/Preview Content\"";
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = 37UC5MW6PT;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
@ -287,22 +748,25 @@
PRODUCT_BUNDLE_IDENTIFIER = com.alancfrancis.apps.JustOneThing;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx";
SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator macosx";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TARGETED_DEVICE_FAMILY = "1,2,3";
};
name = Debug;
};
548390482A2A773A00BF5624 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = JustOneThing/JustOneThing.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"JustOneThing/Preview Content\"";
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = 37UC5MW6PT;
ENABLE_HARDENED_RUNTIME = YES;
ENABLE_PREVIEWS = YES;
@ -325,16 +789,211 @@
PRODUCT_BUNDLE_IDENTIFIER = com.alancfrancis.apps.JustOneThing;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = auto;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx";
SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator macosx";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2,3";
};
name = Release;
};
54928C272A35F89A00095445 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CODE_SIGN_ENTITLEMENTS = MacWidget/MacWidget.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 37UC5MW6PT;
ENABLE_HARDENED_RUNTIME = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = WidgetShared/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = MacWidget;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
"@executable_path/../../../../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 13.3;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.alancfrancis.apps.JustOneThing.MacWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
};
name = Debug;
};
54928C282A35F89A00095445 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CODE_SIGN_ENTITLEMENTS = MacWidget/MacWidget.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 37UC5MW6PT;
ENABLE_HARDENED_RUNTIME = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = WidgetShared/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = MacWidget;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
"@executable_path/../../../../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 13.3;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.alancfrancis.apps.JustOneThing.MacWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
};
name = Release;
};
54928C402A35F8B800095445 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CODE_SIGN_ENTITLEMENTS = PhoneWidget/PhoneWidget.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 37UC5MW6PT;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = WidgetShared/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = PhoneWidget;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 16.4;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.alancfrancis.apps.JustOneThing.PhoneWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
54928C412A35F8B800095445 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CODE_SIGN_ENTITLEMENTS = PhoneWidget/PhoneWidget.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 37UC5MW6PT;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = WidgetShared/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = PhoneWidget;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 16.4;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.alancfrancis.apps.JustOneThing.PhoneWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
54928C562A35F8CC00095445 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CODE_SIGN_ENTITLEMENTS = WatchWidget/WatchWidget.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 37UC5MW6PT;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = WidgetShared/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = WatchWidget;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
"@executable_path/../../../../Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.alancfrancis.apps.JustOneThing.watchkitapp.WatchWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = watchos;
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 4;
WATCHOS_DEPLOYMENT_TARGET = 9.4;
};
name = Debug;
};
54928C572A35F8CC00095445 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CODE_SIGN_ENTITLEMENTS = WatchWidget/WatchWidget.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 37UC5MW6PT;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = WidgetShared/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = WatchWidget;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
"@executable_path/../../../../Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.alancfrancis.apps.JustOneThing.watchkitapp.WatchWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = watchos;
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 4;
VALIDATE_PRODUCT = YES;
WATCHOS_DEPLOYMENT_TARGET = 9.4;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
5431ED7E2A2A77CA00515680 /* Build configuration list for PBXNativeTarget "JustOneThingWatch" */ = {
isa = XCConfigurationList;
buildConfigurations = (
5431ED7C2A2A77CA00515680 /* Debug */,
5431ED7D2A2A77CA00515680 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
548390322A2A773900BF5624 /* Build configuration list for PBXProject "JustOneThing" */ = {
isa = XCConfigurationList;
buildConfigurations = (
@ -353,6 +1012,33 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
54928C292A35F89A00095445 /* Build configuration list for PBXNativeTarget "MacWidgetExtension" */ = {
isa = XCConfigurationList;
buildConfigurations = (
54928C272A35F89A00095445 /* Debug */,
54928C282A35F89A00095445 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
54928C3F2A35F8B800095445 /* Build configuration list for PBXNativeTarget "PhoneWidgetExtension" */ = {
isa = XCConfigurationList;
buildConfigurations = (
54928C402A35F8B800095445 /* Debug */,
54928C412A35F8B800095445 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
54928C552A35F8CC00095445 /* Build configuration list for PBXNativeTarget "WatchWidgetExtension" */ = {
isa = XCConfigurationList;
buildConfigurations = (
54928C562A35F8CC00095445 /* Debug */,
54928C572A35F8CC00095445 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 5483902F2A2A773900BF5624 /* Project object */;

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "548390362A2A773900BF5624"
BuildableName = "JustOneThing.app"
BlueprintName = "JustOneThing"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "548390362A2A773900BF5624"
BuildableName = "JustOneThing.app"
BlueprintName = "JustOneThing"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "548390362A2A773900BF5624"
BuildableName = "JustOneThing.app"
BlueprintName = "JustOneThing"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5431ED6C2A2A77C900515680"
BuildableName = "JustOneThingWatch.app"
BlueprintName = "JustOneThingWatch"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "548390362A2A773900BF5624"
BuildableName = "JustOneThing.app"
BlueprintName = "JustOneThing"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5431ED6C2A2A77C900515680"
BuildableName = "JustOneThingWatch.app"
BlueprintName = "JustOneThingWatch"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5431ED6C2A2A77C900515680"
BuildableName = "JustOneThingWatch.app"
BlueprintName = "JustOneThingWatch"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
wasCreatedForAppExtension = "YES"
version = "2.0">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "54928C122A35F89900095445"
BuildableName = "MacWidgetExtension.appex"
BlueprintName = "MacWidgetExtension"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "548390362A2A773900BF5624"
BuildableName = "JustOneThing.app"
BlueprintName = "JustOneThing"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = ""
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
launchStyle = "0"
askForAppToLaunch = "Yes"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES"
launchAutomaticallySubstyle = "2">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "548390362A2A773900BF5624"
BuildableName = "JustOneThing.app"
BlueprintName = "JustOneThing"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<EnvironmentVariables>
<EnvironmentVariable
key = "_XCWidgetKind"
value = ""
isEnabled = "NO">
</EnvironmentVariable>
<EnvironmentVariable
key = "_XCWidgetDefaultView"
value = "timeline"
isEnabled = "NO">
</EnvironmentVariable>
<EnvironmentVariable
key = "_XCWidgetFamily"
value = "medium"
isEnabled = "NO">
</EnvironmentVariable>
</EnvironmentVariables>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES"
askForAppToLaunch = "Yes"
launchAutomaticallySubstyle = "2">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "548390362A2A773900BF5624"
BuildableName = "JustOneThing.app"
BlueprintName = "JustOneThing"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
version = "2.0">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "54928C2D2A35F8B800095445"
BuildableName = "PhoneWidgetExtension.appex"
BlueprintName = "PhoneWidgetExtension"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "548390362A2A773900BF5624"
BuildableName = "JustOneThing.app"
BlueprintName = "JustOneThing"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = ""
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
launchStyle = "0"
askForAppToLaunch = "Yes"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES"
launchAutomaticallySubstyle = "2">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "548390362A2A773900BF5624"
BuildableName = "JustOneThing.app"
BlueprintName = "JustOneThing"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<EnvironmentVariables>
<EnvironmentVariable
key = "_XCWidgetKind"
value = ""
isEnabled = "NO">
</EnvironmentVariable>
<EnvironmentVariable
key = "_XCWidgetDefaultView"
value = "timeline"
isEnabled = "NO">
</EnvironmentVariable>
<EnvironmentVariable
key = "_XCWidgetFamily"
value = "medium"
isEnabled = "NO">
</EnvironmentVariable>
</EnvironmentVariables>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES"
askForAppToLaunch = "Yes"
launchAutomaticallySubstyle = "2">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "548390362A2A773900BF5624"
BuildableName = "JustOneThing.app"
BlueprintName = "JustOneThing"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

@ -0,0 +1,133 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1430"
version = "2.0">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "54928C452A35F8CB00095445"
BuildableName = "WatchWidgetExtension.appex"
BlueprintName = "WatchWidgetExtension"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "548390362A2A773900BF5624"
BuildableName = "JustOneThing.app"
BlueprintName = "JustOneThing"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5431ED6C2A2A77C900515680"
BuildableName = "JustOneThingWatch.app"
BlueprintName = "JustOneThingWatch"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = ""
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
launchStyle = "0"
askForAppToLaunch = "Yes"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES"
launchAutomaticallySubstyle = "2">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "54928C452A35F8CB00095445"
BuildableName = "WatchWidgetExtension.appex"
BlueprintName = "WatchWidgetExtension"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "548390362A2A773900BF5624"
BuildableName = "JustOneThing.app"
BlueprintName = "JustOneThing"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</MacroExpansion>
<EnvironmentVariables>
<EnvironmentVariable
key = "_XCWidgetKind"
value = ""
isEnabled = "NO">
</EnvironmentVariable>
<EnvironmentVariable
key = "_XCWidgetDefaultView"
value = "timeline"
isEnabled = "NO">
</EnvironmentVariable>
<EnvironmentVariable
key = "_XCWidgetFamily"
value = "medium"
isEnabled = "NO">
</EnvironmentVariable>
</EnvironmentVariables>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "54928C452A35F8CB00095445"
BuildableName = "WatchWidgetExtension.appex"
BlueprintName = "WatchWidgetExtension"
ReferencedContainer = "container:JustOneThing.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

@ -5,10 +5,58 @@
<key>SchemeUserState</key>
<dict>
<key>JustOneThing.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>4</integer>
</dict>
<key>JustOneThingWatch.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
<key>MacWidgetExtension.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
</dict>
<key>PhoneWidgetExtension.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>2</integer>
</dict>
<key>WatchWidgetExtension.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>3</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>5431ED6C2A2A77C900515680</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>548390362A2A773900BF5624</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>54928C122A35F89900095445</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>54928C2D2A35F8B800095445</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>54928C452A35F8CB00095445</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

@ -1,26 +0,0 @@
//
// ContentView.swift
// JustOneThing
//
// Created by Alan Francis on 02/06/2023.
//
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundColor(.accentColor)
Text("Hello, world!")
}
.padding()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}

@ -2,9 +2,11 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.application-groups</key>
<array/>
<key>com.apple.security.files.user-selected.read-only</key>
<true/>
</dict>
</plist>

@ -0,0 +1,8 @@
<?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>com.apple.security.application-groups</key>
<array/>
</dict>
</plist>

@ -0,0 +1,8 @@
<?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>com.apple.security.app-sandbox</key>
<true/>
</dict>
</plist>

@ -0,0 +1,8 @@
<?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>com.apple.security.application-groups</key>
<array/>
</dict>
</plist>

@ -0,0 +1,59 @@
<?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>INEnums</key>
<array/>
<key>INIntentDefinitionModelVersion</key>
<string>1.2</string>
<key>INIntentDefinitionNamespace</key>
<string>88xZPY</string>
<key>INIntentDefinitionSystemVersion</key>
<string>20A294</string>
<key>INIntentDefinitionToolsBuildVersion</key>
<string>12A6144</string>
<key>INIntentDefinitionToolsVersion</key>
<string>12.0</string>
<key>INIntents</key>
<array>
<dict>
<key>INIntentCategory</key>
<string>information</string>
<key>INIntentDescriptionID</key>
<string>tVvJ9c</string>
<key>INIntentEligibleForWidgets</key>
<true/>
<key>INIntentIneligibleForSuggestions</key>
<true/>
<key>INIntentName</key>
<string>Configuration</string>
<key>INIntentResponse</key>
<dict>
<key>INIntentResponseCodes</key>
<array>
<dict>
<key>INIntentResponseCodeName</key>
<string>success</string>
<key>INIntentResponseCodeSuccess</key>
<true/>
</dict>
<dict>
<key>INIntentResponseCodeName</key>
<string>failure</string>
</dict>
</array>
</dict>
<key>INIntentTitle</key>
<string>Configuration</string>
<key>INIntentTitleID</key>
<string>gpCwrM</string>
<key>INIntentType</key>
<string>Custom</string>
<key>INIntentVerb</key>
<string>View</string>
</dict>
</array>
<key>INTypes</key>
<array/>
</dict>
</plist>

@ -0,0 +1,8 @@
<?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>com.apple.security.application-groups</key>
<array/>
</dict>
</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>

@ -0,0 +1,47 @@
//
// JustOneThingProvider.swift
// JustOneThing
//
// Created by Alan Francis on 24/06/2023.
//
import WidgetKit
import SwiftUI
import Intents
struct Provider: IntentTimelineProvider {
func placeholder(in context: Context) -> SimpleEntry {
SimpleEntry(date: Date(), configuration: ConfigurationIntent())
}
func getSnapshot(for configuration: ConfigurationIntent, in context: Context, completion: @escaping (SimpleEntry) -> ()) {
let entry = SimpleEntry(date: Date(), configuration: configuration)
completion(entry)
}
func getTimeline(for configuration: ConfigurationIntent, in context: Context, completion: @escaping (Timeline<SimpleEntry>) -> ()) {
var entries: [SimpleEntry] = []
// Generate a timeline consisting of five entries an hour apart, starting from the current date.
let currentDate = Date()
for hourOffset in 0 ..< 5 {
let entryDate = Calendar.current.date(byAdding: .hour, value: hourOffset, to: currentDate)!
let entry = SimpleEntry(date: entryDate, configuration: configuration)
entries.append(entry)
}
let timeline = Timeline(entries: entries, policy: .atEnd)
completion(timeline)
}
func recommendations() -> [IntentRecommendation<ConfigurationIntent>] {
return [
IntentRecommendation(intent: ConfigurationIntent(), description: "My Intent Widget")
]
}
}
struct SimpleEntry: TimelineEntry {
let date: Date
let configuration: ConfigurationIntent
}

@ -0,0 +1,50 @@
//
// JustOneThingWidget.swift
// JustOneThing
//
// Created by Alan Francis on 11/06/2023.
//
import WidgetKit
import SwiftUI
import Intents
@main
struct JustOneThingWidgetBundle: WidgetBundle {
var body: some Widget {
JustOneThingWidget()
}
}
struct JustOneThingWidgetEntryView : View {
var entry: Provider.Entry
var body: some View {
Text(entry.date, style: .time)
}
}
struct JustOneThingWidget: Widget {
let kind: String = "JustOneThingWidget"
var body: some WidgetConfiguration {
IntentConfiguration(kind: kind, intent: ConfigurationIntent.self, provider: Provider()) { entry in
JustOneThingWidgetEntryView(entry: entry)
}
.configurationDisplayName("My Widget")
.description("This is an example widget.")
}
}
struct Widget_Previews: PreviewProvider {
static var previews: some View {
JustOneThingWidgetEntryView(entry: SimpleEntry(date: Date(), configuration: ConfigurationIntent()))
#if os(watchOS)
.previewContext(WidgetPreviewContext(family: .accessoryRectangular))
#else
.previewContext(WidgetPreviewContext(family: .systemMedium))
#endif
}
}

@ -0,0 +1,59 @@
<?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>INEnums</key>
<array/>
<key>INIntentDefinitionModelVersion</key>
<string>1.2</string>
<key>INIntentDefinitionNamespace</key>
<string>88xZPY</string>
<key>INIntentDefinitionSystemVersion</key>
<string>20A294</string>
<key>INIntentDefinitionToolsBuildVersion</key>
<string>12A6144</string>
<key>INIntentDefinitionToolsVersion</key>
<string>12.0</string>
<key>INIntents</key>
<array>
<dict>
<key>INIntentCategory</key>
<string>information</string>
<key>INIntentDescriptionID</key>
<string>tVvJ9c</string>
<key>INIntentEligibleForWidgets</key>
<true/>
<key>INIntentIneligibleForSuggestions</key>
<true/>
<key>INIntentName</key>
<string>Configuration</string>
<key>INIntentResponse</key>
<dict>
<key>INIntentResponseCodes</key>
<array>
<dict>
<key>INIntentResponseCodeName</key>
<string>success</string>
<key>INIntentResponseCodeSuccess</key>
<true/>
</dict>
<dict>
<key>INIntentResponseCodeName</key>
<string>failure</string>
</dict>
</array>
</dict>
<key>INIntentTitle</key>
<string>Configuration</string>
<key>INIntentTitleID</key>
<string>gpCwrM</string>
<key>INIntentType</key>
<string>Custom</string>
<key>INIntentVerb</key>
<string>View</string>
</dict>
</array>
<key>INTypes</key>
<array/>
</dict>
</plist>

@ -0,0 +1,11 @@
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,13 @@
{
"images" : [
{
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

@ -0,0 +1,11 @@
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading…
Cancel
Save