diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml
index 1d99cc48..47edb0f1 100644
--- a/.gitea/workflows/release.yml
+++ b/.gitea/workflows/release.yml
@@ -316,6 +316,10 @@ jobs:
osascript -e 'tell application "Xcode" to quit' >/dev/null 2>&1 || true
pkill -x Xcode 2>/dev/null || true
PROFILE="Punktfunk iOS App Store Distribution"
+ # The embedded PunktfunkWidgetsExtension (bundle io.unom.punktfunk.widgets) is a second
+ # distribution artifact in the .ipa, so manual signing must map its App ID to its own
+ # App Store profile too — else exportArchive fails ("no profile for io.unom.punktfunk.widgets").
+ WIDGET_PROFILE="Punktfunk iOS Widgets App Store Distribution"
DEVELOPER_DIR="$XCODE_DEV_DIR" xcodebuild archive \
-project "$PROJECT" -scheme Punktfunk-iOS \
-destination 'generic/platform=iOS' \
@@ -335,7 +339,10 @@ jobs:
signingStylemanual
signingCertificateApple Distribution
provisioningProfiles
- io.unom.punktfunk$PROFILE
+
+ io.unom.punktfunk$PROFILE
+ io.unom.punktfunk.widgets$WIDGET_PROFILE
+
EOF
diff --git a/clients/apple/Punktfunk.xcodeproj/xcshareddata/xcschemes/PunktfunkWidgetsExtension.xcscheme b/clients/apple/Punktfunk.xcodeproj/xcshareddata/xcschemes/PunktfunkWidgetsExtension.xcscheme
new file mode 100644
index 00000000..2c038bb5
--- /dev/null
+++ b/clients/apple/Punktfunk.xcodeproj/xcshareddata/xcschemes/PunktfunkWidgetsExtension.xcscheme
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+