diff --git a/clients/apple/Punktfunk.xcodeproj/project.pbxproj b/clients/apple/Punktfunk.xcodeproj/project.pbxproj index 3e2c88c2..61315da8 100644 --- a/clients/apple/Punktfunk.xcodeproj/project.pbxproj +++ b/clients/apple/Punktfunk.xcodeproj/project.pbxproj @@ -11,14 +11,56 @@ BB0000000000000000000005 /* PunktfunkKit in Frameworks */ = {isa = PBXBuildFile; productRef = BB0000000000000000000006 /* PunktfunkKit */; }; CC0000000000000000000005 /* PunktfunkKit in Frameworks */ = {isa = PBXBuildFile; productRef = CC0000000000000000000006 /* PunktfunkKit */; }; DD0000000000000000000003 /* SwiftUINavigationTransitions in Frameworks */ = {isa = PBXBuildFile; productRef = DD0000000000000000000002 /* SwiftUINavigationTransitions */; }; + E295569A300948B9009F939C /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2955699300948B9009F939C /* WidgetKit.framework */; }; + E295569C300948B9009F939C /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E295569B300948B9009F939C /* SwiftUI.framework */; }; + E2CAFE000000000000000001 /* PunktfunkShared in Frameworks */ = {isa = PBXBuildFile; productRef = E2CAFE000000000000000002 /* PunktfunkShared */; }; + E29556A9300948BA009F939C /* PunktfunkWidgetsExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = E2955697300948B9009F939C /* PunktfunkWidgetsExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + E29556A7300948BA009F939C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = AA000000000000000000000D /* Project object */; + proxyType = 1; + remoteGlobalIDString = E2955696300948B9009F939C; + remoteInfo = PunktfunkWidgetsExtension; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + E29556AA300948BA009F939C /* Embed Foundation Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + E29556A9300948BA009F939C /* PunktfunkWidgetsExtension.appex in Embed Foundation Extensions */, + ); + name = "Embed Foundation Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ AA0000000000000000000001 /* Punktfunk.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Punktfunk.app; sourceTree = BUILT_PRODUCTS_DIR; }; BB0000000000000000000001 /* Punktfunk-iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Punktfunk-iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; CC0000000000000000000001 /* Punktfunk-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Punktfunk-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + E2955697300948B9009F939C /* PunktfunkWidgetsExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = PunktfunkWidgetsExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + E2955699300948B9009F939C /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; + E295569B300948B9009F939C /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; + E295577B30094CE5009F939C /* PunktfunkWidgetsExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = PunktfunkWidgetsExtension.entitlements; sourceTree = ""; }; /* End PBXFileReference section */ +/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ + E29556AD300948BA009F939C /* Exceptions for "PunktfunkWidgets" folder in "PunktfunkWidgetsExtension" target */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = E2955696300948B9009F939C /* PunktfunkWidgetsExtension */; + }; +/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ + /* Begin PBXFileSystemSynchronizedRootGroup section */ AA0000000000000000000002 /* App */ = { isa = PBXFileSystemSynchronizedRootGroup; @@ -30,6 +72,14 @@ path = Sources/PunktfunkClient; sourceTree = ""; }; + E295569D300948B9009F939C /* PunktfunkWidgets */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + E29556AD300948BA009F939C /* Exceptions for "PunktfunkWidgets" folder in "PunktfunkWidgetsExtension" target */, + ); + path = PunktfunkWidgets; + sourceTree = ""; + }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ @@ -58,14 +108,27 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + E2955694300948B9009F939C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E2CAFE000000000000000001 /* PunktfunkShared in Frameworks */, + E295569C300948B9009F939C /* SwiftUI.framework in Frameworks */, + E295569A300948B9009F939C /* WidgetKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ AA0000000000000000000007 = { isa = PBXGroup; children = ( + E295577B30094CE5009F939C /* PunktfunkWidgetsExtension.entitlements */, AA0000000000000000000002 /* App */, AA0000000000000000000003 /* Sources/PunktfunkClient */, + E295569D300948B9009F939C /* PunktfunkWidgets */, + E2955698300948B9009F939C /* Frameworks */, AA0000000000000000000008 /* Products */, ); sourceTree = ""; @@ -76,10 +139,20 @@ AA0000000000000000000001 /* Punktfunk.app */, BB0000000000000000000001 /* Punktfunk-iOS.app */, CC0000000000000000000001 /* Punktfunk-tvOS.app */, + E2955697300948B9009F939C /* PunktfunkWidgetsExtension.appex */, ); name = Products; sourceTree = ""; }; + E2955698300948B9009F939C /* Frameworks */ = { + isa = PBXGroup; + children = ( + E2955699300948B9009F939C /* WidgetKit.framework */, + E295569B300948B9009F939C /* SwiftUI.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -114,10 +187,12 @@ BB000000000000000000000B /* Sources */, BB0000000000000000000004 /* Frameworks */, BB000000000000000000000C /* Resources */, + E29556AA300948BA009F939C /* Embed Foundation Extensions */, ); buildRules = ( ); dependencies = ( + E29556A8300948BA009F939C /* PBXTargetDependency */, ); fileSystemSynchronizedGroups = ( AA0000000000000000000002 /* App */, @@ -156,6 +231,29 @@ productReference = CC0000000000000000000001 /* Punktfunk-tvOS.app */; productType = "com.apple.product-type.application"; }; + E2955696300948B9009F939C /* PunktfunkWidgetsExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = E29556AE300948BA009F939C /* Build configuration list for PBXNativeTarget "PunktfunkWidgetsExtension" */; + buildPhases = ( + E2955693300948B9009F939C /* Sources */, + E2955694300948B9009F939C /* Frameworks */, + E2955695300948B9009F939C /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + E295569D300948B9009F939C /* PunktfunkWidgets */, + ); + name = PunktfunkWidgetsExtension; + packageProductDependencies = ( + E2CAFE000000000000000002 /* PunktfunkShared */, + ); + productName = PunktfunkWidgetsExtension; + productReference = E2955697300948B9009F939C /* PunktfunkWidgetsExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -163,11 +261,15 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 2700; LastUpgradeCheck = 2700; TargetAttributes = { AA0000000000000000000009 = { CreatedOnToolsVersion = 26.0; }; + E2955696300948B9009F939C = { + CreatedOnToolsVersion = 27.0; + }; }; }; buildConfigurationList = AA000000000000000000000E /* Build configuration list for PBXProject "Punktfunk" */; @@ -190,6 +292,7 @@ AA0000000000000000000009 /* Punktfunk */, BB0000000000000000000009 /* Punktfunk-iOS */, CC0000000000000000000009 /* Punktfunk-tvOS */, + E2955696300948B9009F939C /* PunktfunkWidgetsExtension */, ); }; /* End PBXProject section */ @@ -216,6 +319,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + E2955695300948B9009F939C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -240,8 +350,23 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + E2955693300948B9009F939C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXTargetDependency section */ + E29556A8300948BA009F939C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = E2955696300948B9009F939C /* PunktfunkWidgetsExtension */; + targetProxy = E29556A7300948BA009F939C /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + /* Begin XCBuildConfiguration section */ AA0000000000000000000010 /* Debug */ = { isa = XCBuildConfiguration; @@ -564,6 +689,97 @@ }; name = Release; }; + E29556AB300948BA009F939C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + 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_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = PunktfunkWidgetsExtension.entitlements; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = F4H37KF6WC; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = PunktfunkWidgets/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = PunktfunkWidgets; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 27.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = io.unom.punktfunk.widgets; + PRODUCT_NAME = "$(TARGET_NAME)"; + REGISTER_APP_GROUPS = YES; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + E29556AC300948BA009F939C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + 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_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = PunktfunkWidgetsExtension.entitlements; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = F4H37KF6WC; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = PunktfunkWidgets/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = PunktfunkWidgets; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + IPHONEOS_DEPLOYMENT_TARGET = 27.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = io.unom.punktfunk.widgets; + PRODUCT_NAME = "$(TARGET_NAME)"; + REGISTER_APP_GROUPS = YES; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -603,6 +819,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + E29556AE300948BA009F939C /* Build configuration list for PBXNativeTarget "PunktfunkWidgetsExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E29556AB300948BA009F939C /* Debug */, + E29556AC300948BA009F939C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ /* Begin XCLocalSwiftPackageReference section */ @@ -636,6 +861,10 @@ isa = XCSwiftPackageProductDependency; productName = PunktfunkKit; }; + E2CAFE000000000000000002 /* PunktfunkShared */ = { + isa = XCSwiftPackageProductDependency; + productName = PunktfunkShared; + }; DD0000000000000000000002 /* SwiftUINavigationTransitions */ = { isa = XCSwiftPackageProductDependency; package = DD0000000000000000000001 /* XCRemoteSwiftPackageReference "swiftui-navigation-transitions" */; diff --git a/clients/apple/PunktfunkWidgetsExtension.entitlements b/clients/apple/PunktfunkWidgetsExtension.entitlements index 0c67376e..46062035 100644 --- a/clients/apple/PunktfunkWidgetsExtension.entitlements +++ b/clients/apple/PunktfunkWidgetsExtension.entitlements @@ -1,5 +1,10 @@ - + + com.apple.security.application-groups + + group.io.unom.punktfunk + +