fix(protection): Layer 2 — Family Controls default-on + Resource-Bundle-Pfad
- familyControlsEnabled jetzt default-on (Apple-Distribution-Entitlement freigegeben); nur REBREAK_ENABLE_FAMILY_CONTROLS=0 schaltet ab. - gambling-domains.json ins Pod-Verzeichnis verschoben + Podspec resource_bundles auf within-pod-Pfad korrigiert — CocoaPods buendelt keine Dateien ausserhalb des Pod-Roots (Bundle blieb sonst leer → Layer 2 griff nicht). - Layer 2 (webContent-Filter) damit verifiziert funktionierend. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
ad51ce5099
commit
50d3c6a8e1
@ -138,12 +138,12 @@ export default ({ config }: ConfigContext): ExpoConfig => ({
|
|||||||
//
|
//
|
||||||
// Der Wert MUSS mit dem Entitlement-Gating im Plugin übereinstimmen:
|
// Der Wert MUSS mit dem Entitlement-Gating im Plugin übereinstimmen:
|
||||||
// plugins/with-rebreak-protection-ios.js setzt das family-controls-Entitlement
|
// plugins/with-rebreak-protection-ios.js setzt das family-controls-Entitlement
|
||||||
// NUR wenn REBREAK_ENABLE_FAMILY_CONTROLS==='1'. Diese Flag ist nur in
|
// mit derselben Bedingung. Family Controls ist Kern-Funktion und Apples
|
||||||
// development-Builds gesetzt. → familyControlsEnabled IDENTISCH koppeln,
|
// Distribution-Entitlement ist freigegeben (v0.3.4) → DEFAULT AN. Nur ein
|
||||||
// sonst bietet die App ein Feature an das im Build sandbox-blockiert ist.
|
// explizites `REBREAK_ENABLE_FAMILY_CONTROLS=0` schaltet es ab (Escape-Hatch
|
||||||
// Sobald Apple das Distribution-Entitlement freigibt: Flag in eas.json
|
// für FC-lose Test-Builds). Konsequenz: jeder Build braucht ein
|
||||||
// preview/production env setzen — dann zieht beides automatisch.
|
// Provisioning-Profil mit FC-Capability — für den ReBreak-Apple-Account gegeben.
|
||||||
familyControlsEnabled: process.env.REBREAK_ENABLE_FAMILY_CONTROLS === "1",
|
familyControlsEnabled: process.env.REBREAK_ENABLE_FAMILY_CONTROLS !== "0",
|
||||||
// iOS-NEURLFilter / PIR-Server. Der Auth-Token kommt aus der Build-Umgebung
|
// iOS-NEURLFilter / PIR-Server. Der Auth-Token kommt aus der Build-Umgebung
|
||||||
// (Infisical staging/PIR_AUTH_TOKEN) — NIEMALS committen. Lokaler Dev-Build:
|
// (Infisical staging/PIR_AUTH_TOKEN) — NIEMALS committen. Lokaler Dev-Build:
|
||||||
// `PIR_AUTH_TOKEN=… npx expo run:ios --device`.
|
// `PIR_AUTH_TOKEN=… npx expo run:ios --device`.
|
||||||
|
|||||||
@ -27,9 +27,11 @@ Pod::Spec.new do |s|
|
|||||||
# Layer-2 (webContent-Filter): gebündelte Gambling-Domain-Liste pro Land.
|
# Layer-2 (webContent-Filter): gebündelte Gambling-Domain-Liste pro Land.
|
||||||
# Wird als eigenständiges Resource-Bundle (RebreakProtectionResources.bundle)
|
# Wird als eigenständiges Resource-Bundle (RebreakProtectionResources.bundle)
|
||||||
# ins App-Bundle gepackt — RebreakProtectionModule.swift liest es zur Laufzeit
|
# ins App-Bundle gepackt — RebreakProtectionModule.swift liest es zur Laufzeit
|
||||||
# via Bundle(for:)/url(forResource:). Pfad relativ zur Podspec → zeigt auf die
|
# via RebreakProtectionResources.bundle/gambling-domains.json.
|
||||||
# von der Aufgabe vorgegebene Quelle apps/rebreak-native/assets/protection/.
|
# WICHTIG: Die JSON MUSS im Pod-Verzeichnis liegen (neben dieser Podspec).
|
||||||
|
# CocoaPods bündelt resource_bundles-Dateien NICHT, wenn der Pfad aus dem
|
||||||
|
# Pod-Root herauszeigt (`../../../assets/...` → Bundle blieb leer).
|
||||||
s.resource_bundles = {
|
s.resource_bundles = {
|
||||||
'RebreakProtectionResources' => ['../../../assets/protection/gambling-domains.json']
|
'RebreakProtectionResources' => ['gambling-domains.json']
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|||||||
@ -60,9 +60,11 @@ function withMainAppEntitlements(config) {
|
|||||||
cfg.modResults['com.apple.developer.networking.networkextension'] = [
|
cfg.modResults['com.apple.developer.networking.networkextension'] = [
|
||||||
'url-filter-provider',
|
'url-filter-provider',
|
||||||
];
|
];
|
||||||
// Family Controls: Distribution-Entitlement — nur wenn das Env-Flag gesetzt
|
// Family Controls = Kern-Funktion, Apple-Distribution-Entitlement freigegeben
|
||||||
// ist (development-Builds bzw. nach Apple-Freigabe auch preview/production).
|
// (v0.3.4) → DEFAULT AN. Nur ein explizites REBREAK_ENABLE_FAMILY_CONTROLS=0
|
||||||
if (process.env.REBREAK_ENABLE_FAMILY_CONTROLS === '1') {
|
// schaltet es ab (Escape-Hatch). Muss identisch zu app.config.ts
|
||||||
|
// `familyControlsEnabled` bleiben.
|
||||||
|
if (process.env.REBREAK_ENABLE_FAMILY_CONTROLS !== '0') {
|
||||||
cfg.modResults['com.apple.developer.family-controls'] = true;
|
cfg.modResults['com.apple.developer.family-controls'] = true;
|
||||||
}
|
}
|
||||||
const groups = cfg.modResults['com.apple.security.application-groups'] || [];
|
const groups = cfg.modResults['com.apple.security.application-groups'] || [];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user