0

コンパイル済みの python pyqt5 アプリケーションが、Apple システムによって公証された後、機能しません。Big Sur 11.4 を実行しています。

[8181] Error loading Python lib '/var/folders/v4/55fs66d13_zgjry5v8vpbbb40000gn/T/_MEIchDPs9/Python': dlopen: dlopen(/var/folders/v4/55fs66d13_zgjry5v8vpbbb40000gn/T/_MEIchDPs9/Python, 10): no suitable image found.  Did find:
    /var/folders/v4/55fs66d13_zgjry5v8vpbbb40000gn/T/_MEIchDPs9/Python: code signature in (/var/folders/v4/55fs66d13_zgjry5v8vpbbb40000gn/T/_MEIchDPs9/Python) not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.
    /var/folders/v4/55fs66d13_zgjry5v8vpbbb40000gn/T/_MEIchDPs9/Python: stat() failed with errno=1

Pythonライブラリが見つからないと言われています。

私は試してみましたが、運が悪かったです:

  • パイソン 3.9.5
  • パイソン 3.7.8
  • Python 3.7.6 と pyinstaller 4.0

公証されていない実行可能ファイルの作成は正常に機能します。アプリ バンドルには 2 つのファイルがあります。pyqt5 アプリケーションの実行可能ファイルと bash スクリプト。公証後、bash スクリプトは完全に正常に動作します。

pyinstaller 構成:

pyinstaller --noconfirm --onefile --noconsole --icon ... --name ... --add-data ... main.py

.spec ファイルに追加された追加のパラメーター:

app = BUNDLE(exe,
             name='Application.app',
             icon='/Users/rokas/Desktop/USB_IoS/resources/icon.ico',
             bundle_identifier='com.application.upgrade.tool',
             info_plist={
               'CFBundleName': 'Application',
               'CFBundleDisplayName': 'Application',
               'CFBundleVersion': '1.0',
               'CFBundleShortVersionString': '1.0',
               'NSRequiresAquaSystemAppearance': 'No',
               'NSHighResolutionCapable': 'True',
             },
)

これらは、私がアプリケーションに与える権利です:

    <key>com.apple.security.cs.allow-unsigned-executable-memory</key>

私のアプリケーションは、いくつかの機能を実行するためにシェル スクリプトを開くことになっています。しかし、それは機能のほんの一部です。

コード署名プロセスは裏返して行うことをお勧めしますが、アプリケーションは単一ファイル アプリケーションであるため、署名する必要はあまりありません。私が使用する署名コマンドはです。

codesign -s "Developer id certificate" -v --deep --timestamp --entitlements entitlements.plist -o runtime "application.app"

4

1 に答える 1