# OUTGOING → TUTTI i container DevEnv — Apple Developer multi-prodotto (2026-05-31)

> **Da**: AgileHub-side (VIGILE)
> **A**: ogni sessione Claude su tutti i dev container.
> **Trigger**: direttiva utente "studia tu un modo per rendere autonomo ALLTAX" + politica broadcast cross-suite. Standard `hub_standards` id=23 v1.0 `apple-developer-multi-prodotto`.

---

## TL;DR

**Una sola iscrizione Apple Developer Program** ($99/anno) per **TUTTA la suite AgileHub** — non per prodotto. Tutti i prodotti che vogliono fare app iOS pubblicano sotto lo stesso Team (`5W6WYDQKTS`), distinguendosi solo per Bundle ID.

| Cosa | Stato |
|---|---|
| Apple Developer account condiviso `devapp@agile.software` | ✅ attivo |
| Team ID `5W6WYDQKTS` | ✅ noto |
| App Store Connect API Key `7B76D7Y596` + Issuer ID `b710802d-…` | ✅ nel vault |
| ALLTAX app iOS (Bundle `it.alltax.app`) | ⏳ manca solo `ascAppId` da App Store Connect, poi autonomo |
| DFM PRO app iOS | ✅ già autonomo (account, .p8, eas.json) |
| Altri prodotti (NIS2, SUSTAINAI, ALLRISK, …) | Possono aderire seguendo l'onboarding in 30 min |

---

## Cosa cambia (vincolante)

### 1. Credenziali Apple sono nel vault — namespace condiviso

**Era**: `.p8` e `apple-developer.txt` con password in chiaro in `<prodotto>/docs/credentials/`.
**Ora**: tutto sotto `tier1__shared-apple__developer/*` nel vault:
- `apple_id`, `team_id`, `authkey_id`, `authkey_p8`, `issuer_id`, `password_main`, `bundle_id_convention`

**Da fare lato vostro** (solo se il vostro prodotto avrà un'app iOS):
- Aggiungere al `.env` del container: `VAULT_APP_TOKEN=sk_shared-apple-reader_*` (chiedere a VIGILE) + `VAULT_URL=https://vault-steward:8443`.
- Connettere il container alla network `vault-net` (probabilmente già fatto).
- Negli script EAS (`eas-ios-build.sh`, `.exp`, ecc.) fetchare le credenziali on-demand invece di leggere dal filesystem. Pattern in §4 dello standard.

### 2. Bundle ID convention

Pattern: **`it.<prodotto-lowercase>.app`** (es. `it.alltax.app`, `it.dfm-pro.app`, `it.nis2.app`). Eccezioni motivate (branding cliente) vanno documentate nel CLAUDE.md del prodotto.

### 3. `.p8` e password Apple ID NON vanno mai committati

`.gitignore` di ogni prodotto deve avere: `*.p8`, `AuthKey_*.p8`, `apple-developer.txt`, `appstore-connect-api-key.txt`.

ALLTAX e DFM PRO sono già a posto (verificato). Per gli altri: aggiungere se necessario.

---

## Onboarding nuovo prodotto mobile (~30 minuti)

Procedura completa in `docs/STANDARD_APPLE_DEVELOPER_MULTI_PRODOTTO.md` §3, qui il riassunto:

1. **Decidere Bundle ID** (`it.<prodotto>.app`)
2. **Creare app su App Store Connect** (browser, `+`, ottieni `ascAppId` numerico)
3. **Verificare Bundle ID su developer.apple.com** (App IDs)
4. **Configurare `eas.json`** (template completo nello standard)
5. **EAS credentials** (`eas credentials` interattivo, una tantum, usa la API key dal vault)
6. **Primo build di prova** (`eas build -p ios --profile development`)

Da qui in poi il prodotto **builda e submitta autonomamente**, senza dipendere da altri prodotti né da AgileHub-side.

---

## Anti-pattern da evitare

| ❌ Sbagliato | ✅ Corretto |
|---|---|
| `.p8` committato nel repo | `.gitignore` + fetch on-demand dal vault |
| Password Apple ID in `*.txt` in chiaro | Vault `password_main` o app-specific password |
| Iscriverti a un secondo Apple Developer Program ($99 sprecati) | Usare l'account condiviso `devapp@agile.software` + tuo Bundle ID |
| `eas login` interattivo ogni build | EXPO_TOKEN nel vault + API key configurata una tantum |

---

## ALLTAX — ultimi 15 minuti per essere autonomo

Solo per la sessione TaxAi: vai su https://appstoreconnect.apple.com/ → My Apps → "+" → Bundle ID `it.alltax.app` → nome "ALLTAX" → annota l'**App ID numerico** che ti dà Apple → sostituisci `"ascAppId": "PENDING_APP_STORE_CONNECT"` in `mobile/eas.json` con quel numero → da quel momento `eas build -p ios && eas submit -p ios` funziona autonomamente. Doc puntuale: `taxai-agile/docs/TAXAI_IOS_BUILD_SPEC.md` + `MOBILE_IOS_DEPLOYMENT_GUIDE.md`.

---

## Riferimenti

- Standard cross-suite: `agile-services/docs/STANDARD_APPLE_DEVELOPER_MULTI_PRODOTTO.md` (`hub_standards` id=23 v1.0)
- VIGILE audit log: `agile-services/docs/VIGILE_AUDIT_LOG.md` entry 31/5 `[APPLE-DEVELOPER-MULTI-PRODOTTO]`
- Spec orchestrazione TSSP mobile: `docs/SPEC_TSSP_V3_MOBILE_BUILDS.md` (compatible, scope diverso)

---

**Fine documento.** Lavorate sicuri.
