AppExchange-Release
Phase 1: Pre-flight (lokal)
Abschnitt betitelt „Phase 1: Pre-flight (lokal)“Führen Sie diese aus, bevor Sie die Org berühren. Beheben Sie alles, was auftaucht.
1.1 Salesforce Code Analyzer v5 — vollständiger Scan
Abschnitt betitelt „1.1 Salesforce Code Analyzer v5 — vollständiger Scan“# Installieren (einmalig)sf plugins install @salesforce/plugin-code-analyzer
# ALLE Regeln ausführen (PMD, ESLint, RetireJS, Regex, Flow, CPD)sf code-analyzer run \ --workspace force-app \ --output-file docs/scan-results.html
# AppExchange-spezifische Regeln ausführensf code-analyzer run \ --rule-selector AppExchange \ --workspace force-app \ --output-file docs/scan-appexchange.html
# Nur Security-getaggte Regeln ausführensf code-analyzer run \ --rule-selector Security \ --workspace force-app \ --output-file docs/scan-security.html
# Schweregrad-Schwellenwert — bei High oder Critical fehlschlagen (CI/CD)sf code-analyzer run \ --rule-selector AppExchange \ --workspace force-app \ --severity-threshold 2 \ --output-file docs/scan-appexchange.htmlNull-Toleranz bei: Critical (1) und High (2).
Medium (3) und darunter — als False Positives in docs/FALSE-POSITIVES.md dokumentieren.
1.2 ESLint (LWC)
Abschnitt betitelt „1.2 ESLint (LWC)“npm run lint1.3 LWC-Jest-Tests
Abschnitt betitelt „1.3 LWC-Jest-Tests“npm run test:unitPhase 2: Org-Tests & Coverage
Abschnitt betitelt „Phase 2: Org-Tests & Coverage“2.1 Alle Apex-Tests ausführen
Abschnitt betitelt „2.1 Alle Apex-Tests ausführen“sf apex run test \ --code-coverage \ --result-format human \ --wait 10 \ --target-org FlexiFREEErforderlich: >= 75% Gesamtabdeckung, jeder Trigger muss Abdeckung haben.
2.2 Pro-Klassen-Coverage prüfen
Abschnitt betitelt „2.2 Pro-Klassen-Coverage prüfen“sf apex run test \ --code-coverage \ --result-format json \ --wait 10 \ --target-org FlexiFREE \ | jq '.result.coverage.coverage[] | select(.coveredPercent < 75) | {name, coveredPercent}'Phase 3: Paketversion erstellen (Beta)
Abschnitt betitelt „Phase 3: Paketversion erstellen (Beta)“3.1 Version in sfdx-project.json erhöhen
Abschnitt betitelt „3.1 Version in sfdx-project.json erhöhen“"versionName": "ver 1.2.0","versionNumber": "1.2.0.NEXT"3.2 Beta-Paketversion erstellen
Abschnitt betitelt „3.2 Beta-Paketversion erstellen“sf package version create \ --package FlexibleTeamShare \ --definition-file config/package-scratch-def.json \ --installation-key-bypass \ --wait 30 \ --code-coverage \ --skip-ancestor-check3.3 Überprüfen und Coverage prüfen
Abschnitt betitelt „3.3 Überprüfen und Coverage prüfen“sf package version list --packages FlexibleTeamShare --order-by CreatedDate --verbosesf package version report --package 04tXXXXXXXXXXXXXXX --verbosePhase 4: Installation testen
Abschnitt betitelt „Phase 4: Installation testen“4.1 In sauberer Scratch/Sandbox-Org installieren
Abschnitt betitelt „4.1 In sauberer Scratch/Sandbox-Org installieren“sf package install \ --package 04tXXXXXXXXXXXXXXX \ --target-org TestOrg \ --wait 104.2 Smoke-Test
Abschnitt betitelt „4.2 Smoke-Test“FTS_App_AccessundFTS_Data_AccessPermission Sets zuweisen- Freigabekonfiguration über den Wizard konfigurieren
- Teammitglieder bei einem Datensatz hinzufügen/bearbeiten/entfernen
- Freigabedatensätze erstellt/gelöscht überprüfen
- Als Nicht-Admin-Benutzer testen (nur FTS_Data_Access)
Phase 5: Zu Release promoten
Abschnitt betitelt „Phase 5: Zu Release promoten“sf package version promote --package 04tXXXXXXXXXXXXXXXPhase 6: Partner Security Portal — Source Scanner (Checkmarx)
Abschnitt betitelt „Phase 6: Partner Security Portal — Source Scanner (Checkmarx)“Dies ist obligatorisch für jede Einreichung, die ein Salesforce-Paket enthält.
- Gehen Sie zum Partner Security Portal mit Ihren DevHub/Packaging-Org-Anmeldedaten
- Wählen Sie Ihre promoted (released) Paketversion aus
- Klicken Sie auf Start Scan und warten Sie auf die Ergebnisse (normalerweise 15-30 Min.)
- Laden Sie den Bericht herunter
Befunde behandeln
Abschnitt betitelt „Befunde behandeln“- Critical/High — Code korrigieren, neu erstellen, erneut scannen
- False Positives — in
docs/FALSE-POSITIVES.mddokumentieren, zur Einreichung anhängen - Low/Info — Begründung dokumentieren, keine Korrektur erforderlich
Phase 7: DAST-Scan (falls zutreffend)
Abschnitt betitelt „Phase 7: DAST-Scan (falls zutreffend)“Flexible Team Share hat keine externen Callouts, keine Web-UI, keine API-Endpunkte — DAST ist nicht zutreffend.
Phase 8: Einreichungsmaterialien vorbereiten
Abschnitt betitelt „Phase 8: Einreichungsmaterialien vorbereiten“Erforderliche Dokumente
Abschnitt betitelt „Erforderliche Dokumente“| Material | Datei | Hinweise |
|---|---|---|
| Code Analyzer-Bericht (vollständig) | docs/scan-results.html | Aus Phase 1 |
| Code Analyzer-Bericht (AppExchange) | docs/scan-appexchange.html | Aus Phase 1 |
| Source Scanner-Bericht | Aus Portal heruntergeladen | Aus Phase 6 |
| False Positives-Dokument | docs/FALSE-POSITIVES.md | Jeden Befund erklären |
| Admin/User-Dokumentation | docs/APPLICATION-OVERVIEW.md, docs/USE-CASES.md | Reviewer testen Ihre App |
| Installationsleitfaden | docs/1. Installation Guide.md | Schritt-für-Schritt-Setup |
Review-Org-Vorbereitung
Abschnitt betitelt „Review-Org-Vorbereitung“- Installieren Sie die promoted Paketversion
- MFA/2FA deaktivieren, damit sich das Review-Team anmelden kann
- Nur Pakete installieren, die mit dieser Review zusammenhängen
- Testbenutzer mit vollem Zugriff für das Review-Team erstellen
- Mindestens eine funktionierende Freigabekonfiguration mit Beispieldaten vorkonfigurieren
Phase 9: Einreichen
Abschnitt betitelt „Phase 9: Einreichen“- Gehen Sie zu AppExchange Partner Console > Publishing > Security Review
- Wählen Sie Ihr Paket und promoted Version aus
- Laden Sie alle Scan-Berichte hoch
- Geben Sie Org-Anmeldedaten für das Review-Team an
- Zahlen Sie $999 Gebühr (für kostenpflichtige Apps; kostenlose Apps — keine Gebühr)
- Einreichen
Zeitplan: 4-6 Wochen. Die meisten Apps bestehen beim 2. Versuch.
Zusammenfassung der Ausführungsreihenfolge
Abschnitt betitelt „Zusammenfassung der Ausführungsreihenfolge“Phase 1 Code Analyzer + ESLint + Jest ← Code-Probleme behebenPhase 2 Apex-Tests in Org (>= 75%) ← Coverage-Lücken behebenPhase 3 Beta-Paketversion erstellen ← bei Build-Fehler zurück zu Phase 2Phase 4 Installieren & Smoke-Test in sauberer Org ← bei Fehler korrigieren und neu erstellenPhase 5 Zu Release promoten ← IRREVERSIBELPhase 6 Source Scanner (Checkmarx) ← nur bei promoted VersionPhase 7 DAST-Scan (falls zutreffend) ← Nicht zutreffend für diese AppPhase 8 Dokumente & Review-Org vorbereiten ← alles verpackenPhase 9 Bei AppExchange einreichen ← 4-6 Wochen warten