From 5d2db6d6427ce076653efb8a87442ea8b7488246 Mon Sep 17 00:00:00 2001 From: chahinebrini Date: Tue, 12 May 2026 17:50:48 +0200 Subject: [PATCH] fix(ios): register RebreakURLFilter extension with EAS for credential generation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The TestFlight build kept failing with: error: No profiles for 'org.rebreak.app.RebreakURLFilter' were found ... Automatic signing is disabled and unable to generate a profile. (in target 'RebreakURLFilter' from project 'ReBreak') EAS managed credentials only provision the main app bundle ID. App extensions must be declared up-front via extra.eas.build.experimental.ios.appExtensions so the CLI knows to register the extension's App ID (+ app-group + network-extension capabilities) and generate a distribution provisioning profile for it. Next step (interactive, needs Apple login): `eas credentials` → iOS → preview to actually create the extension credentials, then re-run the build. (FamilyControls entitlement stays commented out in with-rebreak-protection-ios.js until Apple grants the Distribution entitlement — this build ships without App-Lock.) Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/rebreak-native/app.config.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/apps/rebreak-native/app.config.ts b/apps/rebreak-native/app.config.ts index 3d76a6b..e05edbe 100644 --- a/apps/rebreak-native/app.config.ts +++ b/apps/rebreak-native/app.config.ts @@ -95,6 +95,31 @@ export default ({ config }: ConfigContext): ExpoConfig => ({ extra: { eas: { projectId: "a4f2186e-8ca5-4d38-921d-82ae96c9c086", + // EAS muss VOR dem Build wissen, dass es eine App-Extension gibt — sonst + // generiert es nur Credentials für die Haupt-App und der Xcode-Build kippt + // mit "No profiles for 'org.rebreak.app.RebreakURLFilter' were found". + // Bundle-ID + Entitlements müssen exakt zu plugins/with-rebreak-protection-ios.js + // und modules/rebreak-protection/ios/RebreakURLFilter/RebreakURLFilter.entitlements passen. + build: { + experimental: { + ios: { + appExtensions: [ + { + targetName: "RebreakURLFilter", + bundleIdentifier: "org.rebreak.app.RebreakURLFilter", + entitlements: { + "com.apple.developer.networking.networkextension": [ + "content-filter-provider", + ], + "com.apple.security.application-groups": [ + "group.org.rebreak.app", + ], + }, + }, + ], + }, + }, + }, }, apiUrl: process.env.EXPO_PUBLIC_API_URL ||