Python beeware: Unable to code sign with “briefcase package --adhoc-sign“

37 Views Asked by At

I'm working on packaging a macOS app with Beeware and attempting to use the --adhoc-sign option for local code signing, as outlined in the Beeware documentation. This step is essential for testing the app on my local machine before distribution. However, during the packaging process, I encounter an error related to code signing that prevents the completion of the process.

Here's the command I'm running and the error message I receive:

Help is very welcome!

(beeware-venv) tk@lanhost171 workhard % briefcase package --adhoc-sign

[workhard] Signing app with ad-hoc identity...
Because you are signing with the ad-hoc identity, this app will run, but cannot be re-distributed.
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0% • 00:05

Unable to code sign /Users/tk/Desktop/beeware-tutorial/workhard/build/workhard/macos/app/workhard.app.

Log saved to /Users/tk/Desktop/beeware-tutorial/workhard/logs/briefcase.2024_03_11-23_47_19.package.log

the log file is too long to post it here... but here some snippets:

Date/Time:       2024-03-11 23:23:25 
Command line:    /Users/tk/Desktop/beeware-tutorial/beeware-venv/bin/briefcase package --adhoc-sign

OS Release:      Darwin 20.6.0
OS Version:      Darwin Kernel Version 20.6.0: Wed Jun 23 00:26:31 PDT 2021; root:xnu-7195.141.2~5/RELEASE_X86_64
Architecture:    x86_64
Platform:        macOS-11.5.2-x86_64-i386-64bit

Python exe:      /Users/tk/Desktop/beeware-tutorial/beeware-venv/bin/python
Python version:  3.8.2 (default, Apr  8 2021, 23:19:18)  [Clang 12.0.5 (clang-1205.0.22.9)]
Virtual env:     True
Conda env:       False

Briefcase:       0.3.17
Target platform: macOS
Target format:   app

Environment Variables:
    HOME=/Users/tk
    LANG=de_DE.UTF-8
    LOGNAME=tk
    OLDPWD=/Users/tk/Desktop/beeware-tutorial
    PATH=/Users/tk/Desktop/beeware-tutorial/beeware-venv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
    PS1=(beeware-venv) %n@%m %1~ %# 
    PWD=/Users/tk/Desktop/beeware-tutorial/workhard
    SHELL=/bin/zsh
    SHLVL=1
    SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.BEWhTNx5sV/Listeners
    TERM=xterm-256color
    TERM_PROGRAM=Apple_Terminal
    TERM_PROGRAM_VERSION=440
    TERM_SESSION_ID=7A603702-FB56-4C80-AD53-4D319FD51C12
    TMPDIR=/var/folders/cm/df7c__mj1wsd4yg10tqfq84w0000gn/T/
    USER=tk
    VIRTUAL_ENV=/Users/tk/Desktop/beeware-tutorial/beeware-venv
    XPC_FLAGS=0x0
    XPC_SERVICE_NAME=0
    _=/Users/tk/Desktop/beeware-tutorial/beeware-venv/bin/briefcase
    __CFBundleIdentifier=com.apple.Terminal
    __CF_USER_TEXT_ENCODING=0x1F5:0x0:0x3
    __PYVENV_LAUNCHER__=/Users/tk/Desktop/beeware-tutorial/beeware-venv/bin/python

│ │          errors = '/Library/Developer/CommandLineTools/usr/bin/codesign_allocate: fatal error: file'+397      


CalledProcessError: Command '['codesign', '/Users/tk/Desktop/beeware-tutorial/workhard/build/workhard/macos/app/workhard.app', '--sign', '-', '--force', '--entitlements', '/Users/tk/Desktop/beeware-tutorial/workhard/build/workhard/macos/app/Entitlements.plist']' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:


 /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/concurrent/futures/thread.py:57 in run                                       │
│                                                                                                                                                                                  │
│    54 │   │   │   return                                                                       ╭── locals ───╮                                                                   │
│    55 │   │                                                                                    │ self = None │                                                                   │
│    56 │   │   try:                                                                             ╰─────────────╯                                                                   │
│ ❱  57 │   │   │   result = self.fn(*self.args, **self.kwargs)                                                                                                                    │
│    58 │   │   except BaseException as exc:                                                                                                                                       │
│    59 │   │   │   self.future.set_exception(exc)                                                                                                                                 │
│    60 │   │   │   # Break a reference cycle with the exception 'exc'                                                                                                             │
│                                                                                                                                                                                  │
│ /Users/tk/Desktop/beeware-tutorial/beeware-venv/lib/python3.8/site-packages/briefcase/platforms/macOS/__init__.py:452 in sign_file                                   │
│                                                                                                                                                                                  │
│   449 │   │   │   │   )                                                                                                                                                          │
│   450 │   │   │   │   return                                                                                                                                                     │
│   451 │   │   │   else:                                                                                                                                                          │
│ ❱ 452 │   │   │   │   raise BriefcaseCommandError(f"Unable to code sign {path}.")                                                                                                │
│   453 │                                                                                                                                                                          │
│   454 │   def sign_app(self, app, identity):                                                                                                                                     │
│   455 │   │   """Sign an entire app with a specific identity.       
0

There are 0 best solutions below