Skip to content

Unable to notarize macOS app with rcodesign, custom editor config ignored? #154

Description

@uevs

Hello thanks for creating and maintaining this!

I'm trying to use it to sign and notarize the macOS build. To do so I install rcodesign as suggested by Godot docs. This tool path needs to be defined in the editor config, so I provide one as suggested by the readme.

The problem is that it seems to ignore the config since it cannot find the tool.

contents of the custom editor config:

[resource]
export/macos/rcodesign = "/home/runner/.cargo/bin/rcodesign"

action:

name: Export builds

on:
  workflow_dispatch:
    inputs:
      version:
        description: 'Release Version'
        required: false
        type: string

jobs:
  export_game:
    runs-on: ubuntu-latest
    permissions:
      contents: write

    name: Export Game
    steps:
    - name: checkout
      uses: actions/checkout@v5

    - name: Install Rust
      uses: actions-rust-lang/setup-rust-toolchain@v1
      with:
        rustflags: ""

    - name: Decode p12 cert
      run: | 
        echo -n $GODOT_MACOS_CODESIGN_CERTIFICATE_FILE_BASE_64 | base64 -d > ./certificate.p12
        echo "GODOT_MACOS_CODESIGN_CERTIFICATE_FILE=./certificate.p12" >> $GITHUB_ENV
      env:
        GODOT_MACOS_CODESIGN_CERTIFICATE_FILE_BASE_64: ${{ secrets.GODOT_MACOS_CODESIGN_CERTIFICATE_FILE_BASE_64 }}

    - name: Install rcodesign
      run: | 
        cargo install --git https://github.com/indygreg/apple-platform-rs --branch main --bin rcodesign apple-codesign

    - name: Add custom editor settings
      run: |
        mkdir -p ~/.config/godot
        cp editor_settings-4.4.tres ~/.config/godot/
        which rcodesign
        cat ~/.config/godot/editor_settings-4.4.tres
    
    - name: Install wine
      id: wine_install
      run: |
          sudo dpkg --add-architecture i386
          sudo apt update
          sudo apt install -y wine64 wine32
          echo "WINE_PATH=$(which wine)" >> $GITHUB_OUTPUT
          
    - name: Export game
      id: export
      uses: firebelley/godot-export@v7.0.0
      with:
        godot_executable_download_url: https://github.com/godotengine/godot/releases/download/4.4.1-stable/Godot_v4.4.1-stable_linux.x86_64.zip
        godot_export_templates_download_url: https://github.com/godotengine/godot/releases/download/4.4.1-stable/Godot_v4.4.1-stable_export_templates.tpz
        relative_project_path: ./
        archive_output: true
        cache: true

    - name: Create release
      uses: ncipollo/release-action@v1.18.0
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        generateReleaseNotes: true
        tag: ${{ github.ref_name }}
        artifacts: ${{ steps.export.outputs.archive_directory }}/*

The rcodesign path seems to be correctly set (output of the Add custom editor settings step)

Run mkdir -p ~/.config/godot
/home/runner/.cargo/bin/rcodesign # path returned by which command
[resource]
export/macos/rcodesign = "/home/runner/.cargo/bin/rcodesign" # contents of the config, they are the same

but still the action fails as it cannot find it (Export game step error)

  ERROR: Cannot export project with preset "macOS" due to configuration errors:
  App Store Connect issuer ID name not specified.
  App Store Connect API key ID not specified.
  Notarization: rcodesign path is not set. Configure rcodesign path in the Editor Settings (Export > macOS > rcodesign).
  Code signing: Using ad-hoc signature. The exported project will be blocked by Gatekeeper
  Code signing: rcodesign path is not set. Configure rcodesign path in the Editor Settings (Export > macOS > rcodesign).
     at: _fs_changed (editor/editor_node.cpp:1087)
  
ERROR: Project export for preset "macOS" failed.
     at: _fs_changed (editor/editor_node.cpp:1103)
  loading_editor_layout: begin: Loading editor steps: 5
  	loading_editor_layout: step 0: Loading editor layout...
  loading_editor_layout: end
  
Error: The process '/home/runner/.local/share/godot/godot_executable/Godot_v4.4.1-stable_linux.x86_64' failed with exit code 1

Seems to me that the provided config is ignored/replaced which it shouldn't, unless I'm missing something.

Thanks for the help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions