Hey all! I using PyInstaller to create a mac binary (.app file) and while it works well on macOS Catalina and Mojave, the app crashes on launch on High Sierra and below. I'm using Catalina to build the app and here's the crash log:
*ImportError: dlopen(/Applications/AfterShoot.app/Contents/MacOS/rawpy/_rawpy.cpython-37m-darwin.so, 2): Symbol not found: ____chkstk_darwin Referenced from: /Applications/AfterShoot.app/Contents/MacOS/rawpy/../liblcms.1.0.19.dylib (which was built for Mac OS X 10.15) Expected in: /usr/lib/libSystem.B.dylib in /Applications/AfterShoot.app/Contents/MacOS/rawpy/../liblcms.1.0.19.dylib File "aftershoot.py", line 14, in <module> File "loader/pyimod03_importers.py", line 623, in exec_module File "gui/inference_utils/inference_worker_thread.py", line 23, in <module> File "loader/pyimod03_importers.py", line 623, in exec_module File "src/raw_to_jpeg/raw_to_jpeg.py", line 4, in <module> File "loader/pyimod03_importers.py", line 623, in exec_module File "rawpy/__init__.py", line 5, in <module>* I was wondering if this is normal and if it's compulsory for me to build multiple variants (each containing a different version of liblcms) for different macOS versions? Here's my spec file just in case: *# -*- mode: python ; coding: utf-8 -*- block_cipher = None import os import site site_packages_dir = site.getsitepackages()[0] venv = ['/Users/harshitdwivedi/Desktop/new_tf_env/lib/python3.7/site-packages', '/Users/aayusharora/virtuals/env/lib/python3.7/site-packages/'] a = Analysis(['../aftershoot.py'], pathex=venv, binaries=None, datas=[('../src/data', './src/data'), ('../gui/assets', 'gui/assets')], hiddenimports=['astor'], hookspath=[], runtime_hooks=[], excludes=['matplotlib', 'imageio', 'tensorboard', 'tensorflow-estimator', 'keras-preprocessing'], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False) # remove extra binaries a.binaries = a.binaries - TOC([ ('QtQuick', None, None), ('QtVirtualKeyboard', None, None), ('libtcl8.6.dylib', None, None), ('libtk8.6.dylib', None, None), ('_codecs_jp.cpython-37m-darwin.so', None, None), ]) # remove extra binary folders a.binaries = [x for x in a.binaries if not os.path.dirname(x[1]).startswith("{}/skimage/draw".format(site_packages_dir))] a.binaries = [x for x in a.binaries if not os.path.dirname(x[1]).startswith("{}/skimage/feature".format(site_packages_dir))] a.binaries = [x for x in a.binaries if not os.path.dirname(x[1]).startswith("{}/skimage/filters".format(site_packages_dir))] # remove the skimage path from resources a.datas = [x for x in a.datas if not os.path.dirname(x[1]).startswith("{}/skimage".format(site_packages_dir))] pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, [], exclude_binaries=True, name='aftershoot', debug=False, bootloader_ignore_signals=False, strip=False, upx=False, console=False ) coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, debug=False, strip=False, upx=False, upx_exclude=[], name='AfterShoot', icon='gui/assets/icon.icns', console=False) app = BUNDLE(coll, name='AfterShoot.app', icon='../gui/assets/icon.icns', bundle_identifier=None, info_plist={ 'NSHighResolutionCapable': True, 'NSRequiresAquaSystemAppearance': False, 'CFBundleName': 'AfterShoot', 'CFBundleIdentifier':'co.aftershoot.aftershoot' },) import subprocess subprocess.call("python buildscripts/add_binaries.py", shell=True)* *Thanks!* -- You received this message because you are subscribed to the Google Groups "PyInstaller" group. To unsubscribe from this group and stop receiving emails from it, send an email to pyinstaller+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pyinstaller/0edad5d5-516e-4837-a93e-a91e04d4139c%40googlegroups.com.