PR | LTR | Nightly |
---|---|---|
DMG | DMG | DMG |
SHA256 | SHA256 | SHA256 |
DEPS | DEPS | DEPS |
Set of scripts to create MacOS standalone QGIS package (dmg)
To know when we release, see QGIS release schedule
/Applications/QGIS*.app/Contents/MacOS/QGIS
from Terminal and add the outputcodesign --verbose --deep-verify /Applications/QGIS*.app/
ps -A | grep -i qgis; vmmap <pid>
codesign -d -vvvv <file>
spctl -a -t exec -vv <path>.dmg
codesign --verify --deep --strict --verbose=2
QT_DEBUG_PLUGINS=1 open /Application/QGIS*.app
mv ~/Library/Application\ Support/QGIS/QGIS3/profiles ~/Library/Application\ Support/QGIS/QGIS3/profiles_bk
nm -gU <libname>
Get macOS Big Sur server
Get Apple Development Program for your Apple ID
Login to the server (have static IP)
Change default password to some secure one
Open Settings > Spotlight and disable all search locations & add /opt
and ~/qgis
to exclude locations
Install XCode from App Store (It is enough to JUST install command line tools!)
Go to Apple Developer Download page -> More and command line tools. Install both
Sign out from the apple developer page and app store
Open XCode and accept license
install homebrew and QGIS deps by running install_brew.bash
Download MrSID SDK referenced in and place it in the folder $HOME/Library/Caches/Homebrew
. Make a symbolic link in ../external/MrSID_DSDK-<ver>-darwin14.universal.clang60
Download erdas-ecw-jp2 5.5.0 referenced in. Open dmg, open pkg and install to default location (Desktop Read-Only Free type). Make a symbolic link in ../external/ERDASEcwJpeg2000SDK<ver>
Download Oracle (18.1.0.0.0) package from Oracle Download Section. Only "Instant Client Package - Basic" and "Instant Client Package - SDK" are needed. Unpack/install to ../external/oracle
install homebrew packages by install_brew_dev_packages.bash
Update ~/.bash_profile
from scrips/bash_profile
now clone this repository
for upload, add you ssh keys to qgis/ssh/
and secure them
copy run_cronjob
one folder above
to Code Signing (you need Apple certificate to be "Identified developer")
login
identitysecurity find-identity -v
to find existing identities sign_identity.txt
with the ID of your identityso your folders structure is
sign_identity.txt
qgis.keychain.db --> ~/Library/Keychains/login.keychain-db
run_cronjob.bash
QGIS-Mac-Packager/
external/ECW.. --> link to SDK
external/MrSid.. --> link to SDK
external/Oracle/sdk
external/Oracle/instantclient
builds/
logs/
ssh/
Run run_pkg.bash
with nightly/ltr/pr to build releases/nightlies (detects the latest version)
Nightly releases should be set as launchd once per day (use tabs!)
cp scripts/org.qgis.build.plist ~/Library/LaunchAgents/
plutil ~/Library/LaunchAgents/org.qgis.build.plist
echo $UID
launchctl bootstrap gui/503 ~/Library/LaunchAgents/org.qgis.build.plist
launchctl enable gui/503/org.qgis.build
If you want to kick the cron manually and see the errors try
launchctl kickstart gui/503/org.qgis.build
tail -n 200 -f /var/log/system.log | grep qgis
cat
/usr/local/*
)ccache -C