docs(handover): standard apple-developer-multi-prodotto v1.0 (broadcast 31/5)
Una sola iscrizione Apple Developer per tutta la suite, Team 5W6WYDQKTS, Bundle ID convention it.<prodotto>.app, credenziali Apple nel vault sotto tier1__shared-apple__developer/. Onboarding nuovo prodotto mobile in 30 min. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
355c3fb6e6
commit
306960cbf0
@@ -0,0 +1,89 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user