From 9fa13508b83c5764db2a1987ce3ffacb3905ea8a Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 15 May 2025 16:26:16 +0530 Subject: [PATCH] feat: add iOS widgets --- .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 35 ++ .../Assets.xcassets/Contents.json | 6 + .../WidgetBackground.colorset/Contents.json | 11 + .../ios/EnteAlbumWidget/EnteAlbumWidget.swift | 86 ++++ .../EnteAlbumWidgetBundle.swift | 17 + mobile/ios/EnteAlbumWidget/Info.plist | 11 + .../ios/EnteAlbumWidgetExtension.entitlements | 10 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 35 ++ .../Assets.xcassets/Contents.json | 6 + .../WidgetBackground.colorset/Contents.json | 11 + .../EntePeopleWidget/EntePeopleWidget.swift | 86 ++++ .../EntePeopleWidgetBundle.swift | 17 + mobile/ios/EntePeopleWidget/Info.plist | 11 + .../EntePeopleWidgetExtension.entitlements | 10 + mobile/ios/Runner.xcodeproj/project.pbxproj | 443 +++++++++++++++++- mobile/ios/Runner/Runner.entitlements | 2 + 18 files changed, 803 insertions(+), 16 deletions(-) create mode 100644 mobile/ios/EnteAlbumWidget/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 mobile/ios/EnteAlbumWidget/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 mobile/ios/EnteAlbumWidget/Assets.xcassets/Contents.json create mode 100644 mobile/ios/EnteAlbumWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json create mode 100644 mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift create mode 100644 mobile/ios/EnteAlbumWidget/EnteAlbumWidgetBundle.swift create mode 100644 mobile/ios/EnteAlbumWidget/Info.plist create mode 100644 mobile/ios/EnteAlbumWidgetExtension.entitlements create mode 100644 mobile/ios/EntePeopleWidget/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 mobile/ios/EntePeopleWidget/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 mobile/ios/EntePeopleWidget/Assets.xcassets/Contents.json create mode 100644 mobile/ios/EntePeopleWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json create mode 100644 mobile/ios/EntePeopleWidget/EntePeopleWidget.swift create mode 100644 mobile/ios/EntePeopleWidget/EntePeopleWidgetBundle.swift create mode 100644 mobile/ios/EntePeopleWidget/Info.plist create mode 100644 mobile/ios/EntePeopleWidgetExtension.entitlements diff --git a/mobile/ios/EnteAlbumWidget/Assets.xcassets/AccentColor.colorset/Contents.json b/mobile/ios/EnteAlbumWidget/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000000..eb87897008 --- /dev/null +++ b/mobile/ios/EnteAlbumWidget/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios/EnteAlbumWidget/Assets.xcassets/AppIcon.appiconset/Contents.json b/mobile/ios/EnteAlbumWidget/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..2305880107 --- /dev/null +++ b/mobile/ios/EnteAlbumWidget/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/mobile/ios/EnteAlbumWidget/Assets.xcassets/Contents.json b/mobile/ios/EnteAlbumWidget/Assets.xcassets/Contents.json new file mode 100644 index 0000000000..73c00596a7 --- /dev/null +++ b/mobile/ios/EnteAlbumWidget/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios/EnteAlbumWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json b/mobile/ios/EnteAlbumWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json new file mode 100644 index 0000000000..eb87897008 --- /dev/null +++ b/mobile/ios/EnteAlbumWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift new file mode 100644 index 0000000000..62ce88f2f4 --- /dev/null +++ b/mobile/ios/EnteAlbumWidget/EnteAlbumWidget.swift @@ -0,0 +1,86 @@ +// +// EnteAlbumWidget.swift +// EnteAlbumWidget +// +// Created by Prateek Sunal on 5/15/25. +// Copyright © 2025 The Chromium Authors. All rights reserved. +// + +import SwiftUI +import WidgetKit + +struct Provider: TimelineProvider { + func placeholder(in context: Context) -> SimpleEntry { + SimpleEntry(date: Date(), emoji: "😀") + } + + func getSnapshot(in context: Context, completion: @escaping (SimpleEntry) -> Void) { + let entry = SimpleEntry(date: Date(), emoji: "😀") + completion(entry) + } + + func getTimeline(in context: Context, completion: @escaping (Timeline) -> Void) { + 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, emoji: "😀") + entries.append(entry) + } + + let timeline = Timeline(entries: entries, policy: .atEnd) + completion(timeline) + } + + // func relevances() async -> WidgetRelevances { + // // Generate a list containing the contexts this widget is relevant in. + // } +} + +struct SimpleEntry: TimelineEntry { + let date: Date + let emoji: String +} + +struct EnteAlbumWidgetEntryView: View { + var entry: Provider.Entry + + var body: some View { + VStack { + Text("Time:") + Text(entry.date, style: .time) + + Text("Emoji:") + Text(entry.emoji) + } + } +} + +struct EnteAlbumWidget: Widget { + let kind: String = "EnteAlbumWidget" + + var body: some WidgetConfiguration { + StaticConfiguration(kind: kind, provider: Provider()) { entry in + if #available(iOS 17.0, *) { + EnteAlbumWidgetEntryView(entry: entry) + .containerBackground(.fill.tertiary, for: .widget) + } else { + EnteAlbumWidgetEntryView(entry: entry) + .padding() + .background() + } + } + .configurationDisplayName("Albums") + .description("See photos from selected albums including your favorites") + } +} + +#Preview(as: .systemSmall) { + EnteAlbumWidget() +} timeline: { + SimpleEntry(date: .now, emoji: "😀") + SimpleEntry(date: .now, emoji: "🤩") +} diff --git a/mobile/ios/EnteAlbumWidget/EnteAlbumWidgetBundle.swift b/mobile/ios/EnteAlbumWidget/EnteAlbumWidgetBundle.swift new file mode 100644 index 0000000000..447511b8ae --- /dev/null +++ b/mobile/ios/EnteAlbumWidget/EnteAlbumWidgetBundle.swift @@ -0,0 +1,17 @@ +// +// EnteAlbumWidgetBundle.swift +// EnteAlbumWidget +// +// Created by Prateek Sunal on 5/15/25. +// Copyright © 2025 The Chromium Authors. All rights reserved. +// + +import WidgetKit +import SwiftUI + +@main +struct EnteAlbumWidgetBundle: WidgetBundle { + var body: some Widget { + EnteAlbumWidget() + } +} diff --git a/mobile/ios/EnteAlbumWidget/Info.plist b/mobile/ios/EnteAlbumWidget/Info.plist new file mode 100644 index 0000000000..0f118fb75e --- /dev/null +++ b/mobile/ios/EnteAlbumWidget/Info.plist @@ -0,0 +1,11 @@ + + + + + NSExtension + + NSExtensionPointIdentifier + com.apple.widgetkit-extension + + + diff --git a/mobile/ios/EnteAlbumWidgetExtension.entitlements b/mobile/ios/EnteAlbumWidgetExtension.entitlements new file mode 100644 index 0000000000..97b82d232c --- /dev/null +++ b/mobile/ios/EnteAlbumWidgetExtension.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.io.ente.frame.EnteAlbumWidget + + + diff --git a/mobile/ios/EntePeopleWidget/Assets.xcassets/AccentColor.colorset/Contents.json b/mobile/ios/EntePeopleWidget/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000000..eb87897008 --- /dev/null +++ b/mobile/ios/EntePeopleWidget/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios/EntePeopleWidget/Assets.xcassets/AppIcon.appiconset/Contents.json b/mobile/ios/EntePeopleWidget/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..2305880107 --- /dev/null +++ b/mobile/ios/EntePeopleWidget/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/mobile/ios/EntePeopleWidget/Assets.xcassets/Contents.json b/mobile/ios/EntePeopleWidget/Assets.xcassets/Contents.json new file mode 100644 index 0000000000..73c00596a7 --- /dev/null +++ b/mobile/ios/EntePeopleWidget/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios/EntePeopleWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json b/mobile/ios/EntePeopleWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json new file mode 100644 index 0000000000..eb87897008 --- /dev/null +++ b/mobile/ios/EntePeopleWidget/Assets.xcassets/WidgetBackground.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift new file mode 100644 index 0000000000..120ba7f1c9 --- /dev/null +++ b/mobile/ios/EntePeopleWidget/EntePeopleWidget.swift @@ -0,0 +1,86 @@ +// +// EntePeopleWidget.swift +// EntePeopleWidget +// +// Created by Prateek Sunal on 5/15/25. +// Copyright © 2025 The Chromium Authors. All rights reserved. +// + +import SwiftUI +import WidgetKit + +struct Provider: TimelineProvider { + func placeholder(in context: Context) -> SimpleEntry { + SimpleEntry(date: Date(), emoji: "😀") + } + + func getSnapshot(in context: Context, completion: @escaping (SimpleEntry) -> Void) { + let entry = SimpleEntry(date: Date(), emoji: "😀") + completion(entry) + } + + func getTimeline(in context: Context, completion: @escaping (Timeline) -> Void) { + 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, emoji: "😀") + entries.append(entry) + } + + let timeline = Timeline(entries: entries, policy: .atEnd) + completion(timeline) + } + + // func relevances() async -> WidgetRelevances { + // // Generate a list containing the contexts this widget is relevant in. + // } +} + +struct SimpleEntry: TimelineEntry { + let date: Date + let emoji: String +} + +struct EntePeopleWidgetEntryView: View { + var entry: Provider.Entry + + var body: some View { + VStack { + Text("Time:") + Text(entry.date, style: .time) + + Text("Emoji:") + Text(entry.emoji) + } + } +} + +struct EntePeopleWidget: Widget { + let kind: String = "EntePeopleWidget" + + var body: some WidgetConfiguration { + StaticConfiguration(kind: kind, provider: Provider()) { entry in + if #available(iOS 17.0, *) { + EntePeopleWidgetEntryView(entry: entry) + .containerBackground(.fill.tertiary, for: .widget) + } else { + EntePeopleWidgetEntryView(entry: entry) + .padding() + .background() + } + } + .configurationDisplayName("People") + .description("See photos of your favorite people") + } +} + +#Preview(as: .systemSmall) { + EntePeopleWidget() +} timeline: { + SimpleEntry(date: .now, emoji: "😀") + SimpleEntry(date: .now, emoji: "🤩") +} diff --git a/mobile/ios/EntePeopleWidget/EntePeopleWidgetBundle.swift b/mobile/ios/EntePeopleWidget/EntePeopleWidgetBundle.swift new file mode 100644 index 0000000000..e68b752d45 --- /dev/null +++ b/mobile/ios/EntePeopleWidget/EntePeopleWidgetBundle.swift @@ -0,0 +1,17 @@ +// +// EntePeopleWidgetBundle.swift +// EntePeopleWidget +// +// Created by Prateek Sunal on 5/15/25. +// Copyright © 2025 The Chromium Authors. All rights reserved. +// + +import WidgetKit +import SwiftUI + +@main +struct EntePeopleWidgetBundle: WidgetBundle { + var body: some Widget { + EntePeopleWidget() + } +} diff --git a/mobile/ios/EntePeopleWidget/Info.plist b/mobile/ios/EntePeopleWidget/Info.plist new file mode 100644 index 0000000000..0f118fb75e --- /dev/null +++ b/mobile/ios/EntePeopleWidget/Info.plist @@ -0,0 +1,11 @@ + + + + + NSExtension + + NSExtensionPointIdentifier + com.apple.widgetkit-extension + + + diff --git a/mobile/ios/EntePeopleWidgetExtension.entitlements b/mobile/ios/EntePeopleWidgetExtension.entitlements new file mode 100644 index 0000000000..2d30987b9a --- /dev/null +++ b/mobile/ios/EntePeopleWidgetExtension.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.application-groups + + group.io.ente.frame.EntePeopleWidget + + + diff --git a/mobile/ios/Runner.xcodeproj/project.pbxproj b/mobile/ios/Runner.xcodeproj/project.pbxproj index 678d1e3446..8be865b8bf 100644 --- a/mobile/ios/Runner.xcodeproj/project.pbxproj +++ b/mobile/ios/Runner.xcodeproj/project.pbxproj @@ -16,13 +16,33 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + CEE166242DD5E7820012CF61 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83C2B755B0600BA9516 /* WidgetKit.framework */; }; + CEE166252DD5E7820012CF61 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83E2B755B0600BA9516 /* SwiftUI.framework */; }; + CEE166302DD5E7830012CF61 /* EnteAlbumWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = CEE166232DD5E7820012CF61 /* EnteAlbumWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + CEE1667C2DD5F6F20012CF61 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83C2B755B0600BA9516 /* WidgetKit.framework */; }; + CEE1667D2DD5F6F20012CF61 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83E2B755B0600BA9516 /* SwiftUI.framework */; }; + CEE166882DD5F6F30012CF61 /* EntePeopleWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = CEE1667B2DD5F6F20012CF61 /* EntePeopleWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; CEE6BE702D7AE7FD00E4048B /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83C2B755B0600BA9516 /* WidgetKit.framework */; }; CEE6BE712D7AE7FD00E4048B /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DACD83E2B755B0600BA9516 /* SwiftUI.framework */; }; CEE6BE7C2D7AE7FE00E4048B /* EnteMemoryWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = CEE6BE6F2D7AE7FD00E4048B /* EnteMemoryWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - DA6BE5E826B3BC8600656280 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; + DA6BE5E826B3BC8600656280 /* (null) in Resources */ = {isa = PBXBuildFile; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + CEE1662E2DD5E7830012CF61 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = CEE166222DD5E7820012CF61; + remoteInfo = EnteAlbumWidgetExtension; + }; + CEE166862DD5F6F30012CF61 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = CEE1667A2DD5F6F20012CF61; + remoteInfo = EntePeopleWidgetExtension; + }; CEE6BE7A2D7AE7FE00E4048B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 97C146E61CF9000F007C117D /* Project object */; @@ -39,7 +59,9 @@ dstPath = ""; dstSubfolderSpec = 13; files = ( + CEE166302DD5E7830012CF61 /* EnteAlbumWidgetExtension.appex in Embed Foundation Extensions */, CEE6BE7C2D7AE7FE00E4048B /* EnteMemoryWidgetExtension.appex in Embed Foundation Extensions */, + CEE166882DD5F6F30012CF61 /* EntePeopleWidgetExtension.appex in Embed Foundation Extensions */, ); name = "Embed Foundation Extensions"; runOnlyForDeploymentPostprocessing = 0; @@ -79,6 +101,10 @@ A78E51A260432466D4C456A9 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; BB097BB5EB0EEB41344338D2 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; CE93A9062D808893005CD942 /* EnteMemoryWidgetExtensionDebug.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = EnteMemoryWidgetExtensionDebug.entitlements; sourceTree = ""; }; + CEE166232DD5E7820012CF61 /* EnteAlbumWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = EnteAlbumWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + CEE166362DD5E7950012CF61 /* EnteAlbumWidgetExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = EnteAlbumWidgetExtension.entitlements; sourceTree = ""; }; + CEE1667B2DD5F6F20012CF61 /* EntePeopleWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = EntePeopleWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + CEE1668E2DD5F70F0012CF61 /* EntePeopleWidgetExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = EntePeopleWidgetExtension.entitlements; sourceTree = ""; }; CEE6BE6F2D7AE7FD00E4048B /* EnteMemoryWidgetExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = EnteMemoryWidgetExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; CEE6BE822D7AE8C700E4048B /* EnteMemoryWidgetExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = EnteMemoryWidgetExtension.entitlements; sourceTree = ""; }; DA8D6672273BBB59007651D4 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; @@ -86,7 +112,21 @@ /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - CEE6BE802D7AE7FE00E4048B /* Exceptions for "EnteMemoryWidget" folder in "EnteMemoryWidgetExtension" target */ = { + CEE166342DD5E7830012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = CEE166222DD5E7820012CF61 /* EnteAlbumWidgetExtension */; + }; + CEE1668C2DD5F6F30012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = CEE1667A2DD5F6F20012CF61 /* EntePeopleWidgetExtension */; + }; + CEE6BE802D7AE7FE00E4048B /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( Info.plist, @@ -96,18 +136,9 @@ /* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ /* Begin PBXFileSystemSynchronizedRootGroup section */ - CEE6BE722D7AE7FD00E4048B /* EnteMemoryWidget */ = { - isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - CEE6BE802D7AE7FE00E4048B /* Exceptions for "EnteMemoryWidget" folder in "EnteMemoryWidgetExtension" target */, - ); - explicitFileTypes = { - }; - explicitFolders = ( - ); - path = EnteMemoryWidget; - sourceTree = ""; - }; + CEE166262DD5E7820012CF61 /* EnteAlbumWidget */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (CEE166342DD5E7830012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = EnteAlbumWidget; sourceTree = ""; }; + CEE1667E2DD5F6F20012CF61 /* EntePeopleWidget */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (CEE1668C2DD5F6F30012CF61 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = EntePeopleWidget; sourceTree = ""; }; + CEE6BE722D7AE7FD00E4048B /* EnteMemoryWidget */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (CEE6BE802D7AE7FE00E4048B /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = EnteMemoryWidget; sourceTree = ""; }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ @@ -120,6 +151,24 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + CEE166202DD5E7820012CF61 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CEE166252DD5E7820012CF61 /* SwiftUI.framework in Frameworks */, + CEE166242DD5E7820012CF61 /* WidgetKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CEE166782DD5F6F20012CF61 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CEE1667D2DD5F6F20012CF61 /* SwiftUI.framework in Frameworks */, + CEE1667C2DD5F6F20012CF61 /* WidgetKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; CEE6BE6C2D7AE7FD00E4048B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -146,12 +195,16 @@ 97C146E51CF9000F007C117D = { isa = PBXGroup; children = ( + CEE1668E2DD5F70F0012CF61 /* EntePeopleWidgetExtension.entitlements */, + CEE166362DD5E7950012CF61 /* EnteAlbumWidgetExtension.entitlements */, CE93A9062D808893005CD942 /* EnteMemoryWidgetExtensionDebug.entitlements */, CEE6BE822D7AE8C700E4048B /* EnteMemoryWidgetExtension.entitlements */, 2772189F270F596900FFE3CC /* GoogleService-Info.plist */, 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, CEE6BE722D7AE7FD00E4048B /* EnteMemoryWidget */, + CEE166262DD5E7820012CF61 /* EnteAlbumWidget */, + CEE1667E2DD5F6F20012CF61 /* EntePeopleWidget */, 97C146EF1CF9000F007C117D /* Products */, AC6CA265BB505D982CB00391 /* Pods */, C6A22658E77FF012720BEDDA /* Frameworks */, @@ -163,6 +216,8 @@ children = ( 97C146EE1CF9000F007C117D /* Runner.app */, CEE6BE6F2D7AE7FD00E4048B /* EnteMemoryWidgetExtension.appex */, + CEE166232DD5E7820012CF61 /* EnteAlbumWidgetExtension.appex */, + CEE1667B2DD5F6F20012CF61 /* EntePeopleWidgetExtension.appex */, ); name = Products; sourceTree = ""; @@ -235,12 +290,58 @@ ); dependencies = ( CEE6BE7B2D7AE7FE00E4048B /* PBXTargetDependency */, + CEE1662F2DD5E7830012CF61 /* PBXTargetDependency */, + CEE166872DD5F6F30012CF61 /* PBXTargetDependency */, ); name = Runner; productName = Runner; productReference = 97C146EE1CF9000F007C117D /* Runner.app */; productType = "com.apple.product-type.application"; }; + CEE166222DD5E7820012CF61 /* EnteAlbumWidgetExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = CEE166352DD5E7830012CF61 /* Build configuration list for PBXNativeTarget "EnteAlbumWidgetExtension" */; + buildPhases = ( + CEE1661F2DD5E7820012CF61 /* Sources */, + CEE166202DD5E7820012CF61 /* Frameworks */, + CEE166212DD5E7820012CF61 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + CEE166262DD5E7820012CF61 /* EnteAlbumWidget */, + ); + name = EnteAlbumWidgetExtension; + packageProductDependencies = ( + ); + productName = EnteAlbumWidgetExtension; + productReference = CEE166232DD5E7820012CF61 /* EnteAlbumWidgetExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; + CEE1667A2DD5F6F20012CF61 /* EntePeopleWidgetExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = CEE1668D2DD5F6F30012CF61 /* Build configuration list for PBXNativeTarget "EntePeopleWidgetExtension" */; + buildPhases = ( + CEE166772DD5F6F20012CF61 /* Sources */, + CEE166782DD5F6F20012CF61 /* Frameworks */, + CEE166792DD5F6F20012CF61 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + CEE1667E2DD5F6F20012CF61 /* EntePeopleWidget */, + ); + name = EntePeopleWidgetExtension; + packageProductDependencies = ( + ); + productName = EntePeopleWidgetExtension; + productReference = CEE1667B2DD5F6F20012CF61 /* EntePeopleWidgetExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; CEE6BE6E2D7AE7FD00E4048B /* EnteMemoryWidgetExtension */ = { isa = PBXNativeTarget; buildConfigurationList = CEE6BE812D7AE7FE00E4048B /* Build configuration list for PBXNativeTarget "EnteMemoryWidgetExtension" */; @@ -267,7 +368,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1620; + LastSwiftUpdateCheck = 1630; LastUpgradeCheck = 1510; ORGANIZATIONNAME = "The Chromium Authors"; TargetAttributes = { @@ -276,6 +377,12 @@ LastSwiftMigration = 1100; ProvisioningStyle = Automatic; }; + CEE166222DD5E7820012CF61 = { + CreatedOnToolsVersion = 16.3; + }; + CEE1667A2DD5F6F20012CF61 = { + CreatedOnToolsVersion = 16.3; + }; CEE6BE6E2D7AE7FD00E4048B = { CreatedOnToolsVersion = 16.2; }; @@ -296,6 +403,8 @@ targets = ( 97C146ED1CF9000F007C117D /* Runner */, CEE6BE6E2D7AE7FD00E4048B /* EnteMemoryWidgetExtension */, + CEE166222DD5E7820012CF61 /* EnteAlbumWidgetExtension */, + CEE1667A2DD5F6F20012CF61 /* EntePeopleWidgetExtension */, ); }; /* End PBXProject section */ @@ -309,11 +418,25 @@ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, - DA6BE5E826B3BC8600656280 /* BuildFile in Resources */, + DA6BE5E826B3BC8600656280 /* (null) in Resources */, 277218A0270F596900FFE3CC /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; + CEE166212DD5E7820012CF61 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CEE166792DD5F6F20012CF61 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; CEE6BE6D2D7AE7FD00E4048B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -607,6 +730,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + CEE1661F2DD5E7820012CF61 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CEE166772DD5F6F20012CF61 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; CEE6BE6B2D7AE7FD00E4048B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -617,6 +754,16 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + CEE1662F2DD5E7830012CF61 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CEE166222DD5E7820012CF61 /* EnteAlbumWidgetExtension */; + targetProxy = CEE1662E2DD5E7830012CF61 /* PBXContainerItemProxy */; + }; + CEE166872DD5F6F30012CF61 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CEE1667A2DD5F6F20012CF61 /* EntePeopleWidgetExtension */; + targetProxy = CEE166862DD5F6F30012CF61 /* PBXContainerItemProxy */; + }; CEE6BE7B2D7AE7FE00E4048B /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = CEE6BE6E2D7AE7FD00E4048B /* EnteMemoryWidgetExtension */; @@ -949,6 +1096,250 @@ }; name = Release; }; + CEE166312DD5E7830012CF61 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = EnteAlbumWidgetExtension.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 6Z68YJY9Q2; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = EnteAlbumWidget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = EnteAlbumWidget; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2025 The Chromium Authors. All rights reserved."; + IPHONEOS_DEPLOYMENT_TARGET = 18.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = io.ente.frame.debug.EnteAlbumWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + CEE166322DD5E7830012CF61 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = EnteAlbumWidgetExtension.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 6Z68YJY9Q2; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = EnteAlbumWidget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = EnteAlbumWidget; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2025 The Chromium Authors. All rights reserved."; + IPHONEOS_DEPLOYMENT_TARGET = 18.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = io.ente.frame.EnteAlbumWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + CEE166332DD5E7830012CF61 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = EnteAlbumWidgetExtension.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 6Z68YJY9Q2; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = EnteAlbumWidget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = EnteAlbumWidget; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2025 The Chromium Authors. All rights reserved."; + IPHONEOS_DEPLOYMENT_TARGET = 18.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = io.ente.frame.EnteAlbumWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Profile; + }; + CEE166892DD5F6F30012CF61 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = EntePeopleWidgetExtension.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 6Z68YJY9Q2; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = EntePeopleWidget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = EntePeopleWidget; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2025 The Chromium Authors. All rights reserved."; + IPHONEOS_DEPLOYMENT_TARGET = 18.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = io.ente.frame.debug.EntePeopleWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + CEE1668A2DD5F6F30012CF61 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = EntePeopleWidgetExtension.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 6Z68YJY9Q2; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = EntePeopleWidget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = EntePeopleWidget; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2025 The Chromium Authors. All rights reserved."; + IPHONEOS_DEPLOYMENT_TARGET = 18.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = io.ente.frame.EntePeopleWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + CEE1668B2DD5F6F30012CF61 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = EntePeopleWidgetExtension.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 6Z68YJY9Q2; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = EntePeopleWidget/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = EntePeopleWidget; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2025 The Chromium Authors. All rights reserved."; + IPHONEOS_DEPLOYMENT_TARGET = 18.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = io.ente.frame.EntePeopleWidget; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Profile; + }; CEE6BE7D2D7AE7FE00E4048B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1094,6 +1485,26 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + CEE166352DD5E7830012CF61 /* Build configuration list for PBXNativeTarget "EnteAlbumWidgetExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CEE166312DD5E7830012CF61 /* Debug */, + CEE166322DD5E7830012CF61 /* Release */, + CEE166332DD5E7830012CF61 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + CEE1668D2DD5F6F30012CF61 /* Build configuration list for PBXNativeTarget "EntePeopleWidgetExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CEE166892DD5F6F30012CF61 /* Debug */, + CEE1668A2DD5F6F30012CF61 /* Release */, + CEE1668B2DD5F6F30012CF61 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; CEE6BE812D7AE7FE00E4048B /* Build configuration list for PBXNativeTarget "EnteMemoryWidgetExtension" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/mobile/ios/Runner/Runner.entitlements b/mobile/ios/Runner/Runner.entitlements index 729e142a0a..16cbc1a46e 100644 --- a/mobile/ios/Runner/Runner.entitlements +++ b/mobile/ios/Runner/Runner.entitlements @@ -11,7 +11,9 @@ com.apple.security.application-groups + group.io.ente.frame.EnteAlbumWidget group.io.ente.frame.EnteMemoryWidget + group.io.ente.frame.EntePeopleWidget