
Andrew Hanna

Andrew Hanna

TL;DR: Second-Generation Packaging (2GP) ist Salesforces moderne, quellcodegetriebene Art, managed und unlocked Packages aus der Versionsverwaltung statt aus einer Packaging-Org zu bauen und zu verteilen. Es ersetzt First-Generation Packaging (1GP) durch modulare Packages, flexible Namespaces, explizite Abhängigkeiten und einen Salesforce-CLI-Workflow. Salesforce empfiehlt 2GP nun für jede neue Entwicklung von managed Packages.
Ein 2GP-Package ist ein Container für die Metadaten, den Code und das Schema, die Sie als App verteilen - an AppExchange-Kunden (managed) oder über Ihren eigenen Org-Bestand (unlocked). Die Kernidee: Das Package wird aus dem Quellcode in Git gebaut, nicht aus einer zustandsbehafteten Packaging-Org. Salesforce stellt ausdrücklich klar, dass managed 2GP "nicht bloß Version 2.0" von 1GP ist; es ist ein anderes, automatisierungsfreundliches Entwicklungsmodell und der empfohlene Weg für alle neuen Packages.
Kurz gesagt: 1GP lebt in einer Packaging-Org, 2GP lebt in Ihrem Repository. Diese eine Änderung schaltet den Rest frei:
sfdx-project.json deklariert, nicht erst bei der Installation entdeckt.
Beide sind Second-Generation-Packages, die auf die gleiche Weise gebaut werden. Die Wahl betrifft das Publikum:
Sie brauchen eine Dev-Hub-Org mit aktiviertem Unlocked Packages and Second-Generation Managed Packages und der Berechtigung Create and Update Second-Generation Packages. Dann:
sf package create --name MyApp --package-type Managed --path force-app
--target-dev-hub DevHub
sf package version create --package MyApp --installation-key test1234
--code-coverage --wait 10
sf package install --package 04t... --wait 10
sf package version promote --package [email protected]
Eine freigegebene managed Version ist die, die Sie vor der Installation durch Kunden zur AppExchange Security Review einreichen.
Da der gesamte Ablauf CLI-first ist, passt er in eine DevOps-Pipeline - genau dort, wo Werkzeuge wie Copado, Gearset, Salto, AutoRABIT, Flosum oder Blue Canvas Versionsverwaltung und Tests orchestrieren. Für weitere Build- und Release-Playbooks siehe unsere SF Guides.
Ersetzt 2GP 1GP?
Salesforce empfiehlt 2GP für alle neuen managed Packages, auch wenn bestehende 1GP-Packages weiter funktionieren und migriert werden können.
Brauche ich einen Dev Hub für 2GP?
Ja. Aktivieren Sie Dev Hub und Second-Generation Packaging und gewähren Sie die Berechtigung zum Erstellen/Aktualisieren von Packages, bevor Sie beginnen.
Können sich zwei 2GP-Packages einen Namespace teilen?
Ja. Mehrere managed 2GP-Packages können einen Namespace nutzen, aber jedes Package ist an einen einzigen Namespace gebunden, der nach der Erstellung nicht geändert werden kann.
Was ist der Unterschied zwischen managed und unlocked Packages?
Managed 2GP dient der AppExchange-Verteilung mit IP-Schutz; unlocked Packages gliedern die Metadaten Ihrer eigenen Org in versionierte, bereitstellbare Einheiten.
Unverbindlich.