On Oct 24, 2019, at 3:14 PM, Jeremy Roussak via 4D_Tech <[email protected]> 
wrote:
> 
> App built with v17R6. Trying to sign a built application gives this:
> 
> 20:07:01.341: Error 105553143319120 signing '/Users/jbr/Desktop/Final 
> Application/PI calculator - Working/PI 
> calculator.app/Contents/Resources/Internal User Components/4D 
> Report.4dbase/Resources/Images/tbSave.png': Error Domain=NSPOSIXErrorDomain 
> Code=9 "Bad file descriptor"
> 
> Is there some documentation on the topic?

I’ve used a script for signing for years, and have now added notarization to 
it. I’ve never tried to use 4D’s signing when building functionality. 

This link from Apple describes the notarization workflow and also includes a 
link to describe how to generate an app-specific password to use for 
command-line notarization.

If you copy/paste this, the email app probably converted to curly quotes so 
you’ll want to fix all the double-quotes. The script goes in the same folder as 
the built app you want to sign. If you name it with a .command extension, you 
can double-click to run it, and if you use a method to configure a buildapp.xml 
project file and run BUILD APPLICATION, you can use LAUNCH EXTERNAL PROCESS to 
automatically launch the script.

Jim Crate

----------------------------------------------------------------------------------------------------------------
#!/bin/bash

cd "${BASH_SOURCE%/*}" || exit
echo "current directory: `pwd`"

devID="Developer ID Application: James Crate (developerID)"
appPath="./MyBuiltApp.app"

filename=$(basename -- "$appPath")
appName="${filename%.*}"

if [[ -d $appPath ]]
then
  echo "signing $appPath"
  # clean up by removing file system extended attributes
  xattr -cr "$appPath"
  
  # sign application with developer signature
  codesign --force --deep --verbose --sign "$devID" "$appPath"
  
  # check code-signing
  echo "checking signing"
  spctl -av "$appPath"
  codesign --verify -v "$appPath"
  
  # zip with versioned name
  version=$(/usr/libexec/PlistBuddy "${appPath}/Contents/Info.plist" -c 'Print 
CFBundleShortVersionString')
  zipName="./${appName}-${version}.app.zip"
  echo "zipping to ${zipName}"
  rm "${zipName}"
  ditto -c -k --sequesterRsrc --keepParent "${appPath}" "${zipName}"
  
  echo "uploading for notarization"
  xcrun altool --notarize-app --primary-bundle-id "com.vantine.MyBuiltApp.zip" \
    --username "[email protected]" --password 
"@keychain:AC_PASSWORD_NotarizationScript" \
    --file "${zipName}"
  echo "finished uploading, watch for result email"
fi

# after notarization completes, run:
# xcrun stapler staple MyBuiltApp.app

# This command stores a password in the keychain. The keychain item can also be 
created manually.
# xcrun altool --store-password-in-keychain-item 
"AC_PASSWORD_NotarizationScript" -u "[email protected]" -p 
"generated_app_password"
————————————————————————————————————————————————————————

**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[email protected]
**********************************************************************

Reply via email to