Code signing your app

Hello all,

I am trying to code sign my new built app, for installing it on my clients mac.
I am following:
https://documentation.xojo.com/topics/application_deployment/apple_requirements/signing_your_mac_application.html
On this page it says:

  1. Launch the Keychain Access app.
  2. Click the My Certificates button.
  3. In the list that appears, double-click the item that begins with Apple Development, followed by your name.
  4. In the window that appears, look for the row titled Common Name.
  5. Double-click on the value in parentheses to select it. That is your Apple Development certificate ID.
  6. Select Edit > Copy.
  7. Back in Xojo, go to Build Settings in the Navigator and expand the macOS item.
  8. Click Sign. The Inspector shows the properties for signing.
  9. In the Developer ID field, paste in your Apple Development certificate ID.

But I am stuck on number 7.
I can find The Built Settings in the Navigator, but I can only check the destination, not expand it.
please see image.
(please believe me when I say I have looked for it.)


This is what changes when I select an other checkbox (Windows, Linux, this computer.)

But there is no Sign text box or button to be found.
I am using Xojo 2021 R3

With kind regards,
Brian

MacOS Ventura 13.2 / MBP m1 / Xojo 2022r4.1
image

macOS should have a triangle for opening. It should have entries for building and signing:

Thank you all for the help.
But it isn’t there…
I am working on a MacMini, macOS Monterey version 12.6.3
I have the Xojo running on a Linux machine (Linux Mint) but the triangle isn’t there as well.

Could this be because my License expired?
It is/was valid till Nov 18, 2022
I am not making any money with Xojo, so I was being cheap and didn’t update my licence.

Try with a new project. Even if your license expired you are able to use the latest Xojo version for that license. Which is Xojo 2022r3.

Do a right-click on the “macOS” entry and use the contextmenu to add a signing step…

The feature was added in 2022r1. The OP said he’s using 2021r3.

1 Like

Thank you all for helping, this is a great forum and users.
I have made a screenshot of the right mouseclick on macOS checkbox.


I have made a new project:

The same.

Right. As I said, this feature was not added until 2022r1.

…and just to be clear, on macOS this is not something that you add. It’s always there. The reason for this is that on newer OSs even the debug apps have to be at least ad-hoc code-signed, which is what you get if you leave the Developer ID field blank.

FWIW, if all you want is code signing, doing that from the command line is relatively easy. The trick is that any binary code inside the bundle must also be signed and to conform to Apple’s guidelines, they really should be done individually.

Now if you’re going to distribute your app to other users, you’ll also need to Notarize. Apple made that easier recently, but if you’re going to go through all this, you should seriously consider @Sam_Rowlands App Wrapper. He’s taken all the guesswork out and even makes it easy to automate.

2 Likes

Well all I need is that my program runs on my clients iMac. I have built my program and I copied the file to his program folder and it runs on his iMac. I am doing it myself with anydesk.
But it sends out corrupt, zero bytes pdf files.
So I started the game: find the error. It works on my computer.
Maybe it is a ‘signing the program’ -error?
Although like Greg said the code signing is always there.
I will start with buying the MonkeyBread xojo plugin so that I can sent mails with a pdf.
If it still sends out zero sized pdf files, I will know that it isn’t the program which fails.
Then I will buy the App Wrapper and code-sign the program.
If all that fails I will hire a proffessional…

Thank you all for answering, especially on a saturday.

Please open a different topic here on the forum for your other problem. Sending emails with attachments isn’t too complicated. The MBS plugin has examples so that you can test before you buy.

Just to be clear, trusting that things will work everywhere just because they work on your machine is going to hurt you in the long run. Ad-hoc signatures only work on your machine and the other issues you are running into sound like they may be caused by the app expecting to find a resource that only exists on your machine and nowhere else. You should have at least one other machine or virtual machine that you do testing on that is not your build machine. Ideally, one for each OS & Version that you support. For instance, I have an M1 MacBook Pro for development and run macOS 12 & 13 in parallels on that machine as well as Windows 11 ARM and a 2018 Mac Mini with parallels which has macOS 10.13.6 through 13.2, Windows 7, 8, 8.1, 10 and 11, as well as several different flavors & versions of Linux. All just for testing purposes. All of which have a plain vanilla snapshot so I can get back to a known state quickly.

Well that is a professional setup. I am new to xojo but i have been a programmer for more than 25 years. And copy and past an exe to a computer of a client never worked on windows. But I tried it with my xojo program this morning, and it seems to be working. Well it didn’t give any errors.
Thank you all for your help.

Ps, it works on my computer is one of the lines I have read somewhere meant as a funny statement.

Would this apply to compiled Applescripts used within the app? I’m having errors every time I try to sign an app using the steps in the XOJO docs. Mind you, the signing is failing with a basic ‘hello world’ app so I doubt the Applescripts are the issue - but if they may be an issue down the track I’d prefer to know…

Please open another thread. Then show us where you put the AppleScripts and what the error is. The AppleScripts need to be in Contents/Helpers. If a hello world app fails then you have other problems.