Hi Jeff,

I can’t give you a step by step guide, especially including getting the signing 
certificate. But here is a code snippet which I use for signing my apps which 
works. The takeaways will be in the comments as well as the two commands that 
are run using LEP.

Hopefully that is enough to get you pointed in the right direction.

P.S. Apple just introduced the idea of notarizing apps at WWDC last week. That 
will be additional steps and required in the future, but I haven’t tried it 
yet. Sigh.


  //If on Mac and a certificate is provided, we now code sign the app. Nothing 
inside the
  //application package should be changed after this point.
  //Use "codesign --verify --verbose /pathtoapp.app" to see if the application 
signing is still valid.
  //Use "codesign -dv /pathtoapp.app" to get the code signing information.
  //See http://kb.4d.com/assetid=77078 if we need to skip signing certain 
folders in the future.
  //Also, see 
http://stackoverflow.com/questions/39652867/code-sign-error-in-macos-sierra-xcode-8-resource-fork-finder-information-or
  //which explains that code signing no longer works with extended attributes 
on files in the app. It seems easiest to simply
  //use a command to strip all extended attributes before signing. We don't 
seem to need them anyway.
If (OS_IsMac =True)
        $tCertificate:=BuildApp_Hook_MacCodeSign 
        If ($tCertificate#"")
                BuildAppP_Log_Action ("Stripping files of extended attributes.")
                $tCommand:="xattr -cr "+FilePath_ConvertTo (OBJ_Get_Text 
(voBuildInfo;"PathToBuiltStandaloneApp");kFilePath_LEP)
                LAUNCH EXTERNAL PROCESS($tCommand;$tIn;$tOut;$tError)  //If 
error, $tOut will be filled
                
                BuildAppP_Log_Action ("Code signing standalone.")
                $tCommand:="codesign -s \""+$tCertificate+"\" -fv --deep "+\
                FilePath_ConvertTo (OBJ_Get_Text 
(voBuildInfo;"PathToBuiltStandaloneApp");kFilePath_LEP)
                LAUNCH EXTERNAL PROCESS($tCommand;$tIn;$tOut;$tError)  //If 
error, $tOut will be filled
                If ($tOut#"")
                        BuildAppP_Log_Action ("Code signing error: "+$tOut;True)
                End if 
        End if 
End if 


--
Cannon.Smith
Synergy Farm Solutions Inc.
Hill Spring, AB Canada
403-626-3236
<[email protected]>
<www.synergyfarmsolutions.com>


> Can someone please direct me to documentation on how to code sign apps for
> MacOS with 4D.  I need the entire process in a step-by-step guide from
> explaining how to obtain the code signing certificate from Apple through
> adding it to the 4D XML build files and building.

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

Reply via email to