Files
pgadmin4/pkg/mac
Dave Page 473fe47895 Pass --deep when signing ad-hoc
The first ad-hoc run failed on the very first binary:

    Contents/MacOS/pgAdmin 4: replacing existing signature
    Contents/MacOS/pgAdmin 4: code object is not signed at all
    In subcomponent: Contents/LICENSE

The Developer ID path passes --deep on every codesign call and the ad-hoc one
did not. These are bundles with nested code, and without --deep codesign will
not replace the signature on one whose nested code is unsigned. Matching the
existing path is both the fix and the smaller surprise for anyone reading the
two branches side by side.
2026-09-16 12:03:20 +01:00
..
2026-08-14 11:16:25 +01:00
2026-01-05 13:33:45 +05:30
2026-08-14 11:16:25 +01:00

pgAdmin macOS Builds

Required Packages

Either build the sources or get them from macports or similar:

  1. Yarn & NodeJS

  2. PostgreSQL 12 or above from http://www.postgresql.org/

  3. Python 3.6+ (required for building). The build environment should run this version of python in response to the python command.

Building

  1. To bundle a different version of Python from the default of 3.14.7, set the PGADMIN_PYTHON_VERSION environment variable, e.g:

    export PGADMIN_PYTHON_VERSION=3.13.11
    
  2. If a path different from the default of /usr/local/pgsql for the PostgreSQL installation has been used, set the PGADMIN_POSTGRES_DIR environment variable appropriately, e.g:

    export PGADMIN_POSTGRES_DIR=/opt/local/pgsql
    
  3. If you want to codesign the appbundle, copy codesign.conf.in to codesign.conf and set the values accordingly.

  4. If you want to notarize the appbundle, copy notarization.conf.in to notarization.conf and set the values accordingly. Note that notarization will fail if the code isn't signed.

  5. To build only DMG file, go to pgAdmin4 source root directory and execute:

    make appbundle
    

    To build both DMG and ZIP files, go to pgAdmin4 source root directory and execute:

    make appbundle BUILD_OPTS="--zip"
    

    This will create the python virtual environment and install all the required python modules mentioned in the requirements file using pip, build the runtime code and finally create the app bundle and the DMG and/or ZIP in ./dist directory.