Skip to content

Compile seu executável usando a flag --compile.

sh
bun build --compile ./path/to/entry.ts --outfile myapp

Liste suas identidades de assinatura disponíveis. Uma delas será sua identidade de assinatura que você passa para o comando codesign. Este comando requer macOS.

sh
security find-identity -v -p codesigning
txt
1. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX "Developer ID Application: Your Name (ZZZZZZZZZZ)"
   1 identidades válidas encontradas

Opcional, mas recomendado: crie um arquivo entitlements.plist com as permissões necessárias para que o motor JavaScript funcione corretamente.

xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.cs.allow-jit</key>
    <true/>
    <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
    <true/>
    <key>com.apple.security.cs.disable-executable-page-protection</key>
    <true/>
    <key>com.apple.security.cs.allow-dyld-environment-variables</key>
    <true/>
    <key>com.apple.security.cs.disable-library-validation</key>
    <true/>
</dict>
</plist>

Assine seu executável usando o comando codesign e verifique se funciona.

bash
codesign --entitlements entitlements.plist -vvvv --deep --sign "XXXXXXXXXX" ./myapp --force
codesign -vvv --verify ./myapp

Para mais informações sobre codesign no macOS, consulte Documentação de Code Signing da Apple. Para detalhes sobre criar executáveis de arquivo único com Bun, veja Executáveis Autônomos. Este guia requer Bun v1.2.4 ou mais recente.

Bun by www.bunjs.com.cn edit