Signing builds with Forge
Which platforms Forge signs, where the certificates go, what happens when one is missing, and how the keys are kept away from your build.
На тази страница
An unsigned build runs, but every platform warns about it — SmartScreen on Windows, Gatekeeper on macOS — and iOS and Google Play will not take one at all. Give Forge a platform's credentials once and every build of that platform comes back signed.
Where
On Projects, press Signing beside the project. The page has a section per platform:
| Section | Signs | Guide |
|---|---|---|
| Windows | windows-x64, windows-arm64 |
Windows |
| macOS | macos-universal |
macOS |
| Apple notarisation | macos-universal, after signing |
Apple notarisation |
| iOS | ios |
iOS |
| Android | android |
Android |
Linux and web builds are not signed; there is nothing for them to be signed with.
Each guide says where to get the credential, how to export it, and which field takes what.
Missing, and wrong, are different
- A section you have not filled in is not an error. That platform builds unsigned, its card says so and what it would need, and your other platforms are unaffected. You can try Forge with a Linux build and no Apple account.
- A section you have filled in and that fails — a wrong password, an expired certificate — fails the target. Handing you an unsigned file when you asked for a signed one, and calling it done, would be worse than a red build. The card and the output say what the signing tool said.
How the keys are kept
- A credential is encrypted the moment you save it, and cannot be shown again — not on the page, not through the API. To change one, save a new value over it; Remove deletes it.
- Keys never enter the build. The build exports an unsigned file. A separate container, from an image that contains the signing tools and no engine, receives that file and only the credentials of that one platform, signs it, and is thrown away. It never sees your repository.
Signing for Windows
Without a signature, SmartScreen warns every person who downloads your game, and keeps warning until enough people click through. With one, it stops.
Signing for macOS
An unsigned Mac build refuses to open at all on a modern macOS — the user gets "cannot be opened because the developer cannot be verified", and the way past it is obscure enough that most people give
Apple notarisation
Notarising sends your signed build to Apple, which scans it and returns a ticket. Gatekeeper checks for that ticket on anything downloaded from the internet. Without one, a signed build still warns; w
Signing for iOS
An iOS build must be signed before any device will install it — there is no "open anyway". The signature also has to match a provisioning profile that names your app and, for anything short of an App
Signing for Android
Every Android build is signed — Forge signs with a throwaway debug key when you have given it nothing else, which installs on a device and is refused by every store. To publish, you need your own key.