Release binary not timestamped in Xcode, and just signed ah-hoc despite these Projucer and Xcode settings - what am I missing?

I have filled in the following fields in Projucer. Xcode just signs ad-hoc, what am I missing ?

Exporter >
Xcode:
Exporter Bundle Identifier: com.me.pluginname
Development team ID: 99A9A99AA9

Xcode > Release:
Custom Xcode Flags: OTHER_CODE_SIGN_FLAGS = --options=runtime --timestamp
Code Signing Identity: Developer ID Application: MyName (99A9A99AA9)

And then in Xcode:

Does it only do it on an ā€˜archiveā€™ build or something?

We do a post-Xcode sign step on our stuff which you can do quite easily from the command line if this is giving you unsolvable nightmares?

1 Like

How do I check in Xcode if the build is ā€œarchiveā€ or not? I thought it was just two options: Debug or Release.

Yesterday I did take those fields (Development Team ID, Xcode flags, Code Signing Identity) out of Projucer, just left the Identifier in so Xcode will insert that and the plist.

Then I used codesign --force (to replace the ad-hoc) from Terminal, and notarytool, then stapler. It worked for me, just irked I wasnā€™t able to do it more automatically via Projucer > Xcode. (Projucer 7.0.9)

Thereā€™s an option in the product menu called Archive?

I thought it ought to do it using a normal release build as well, so Iā€™m grasping at straws a little here:)

Can I ask (being fairly inexperienced with Mac) about the ā€œArchiveā€ option.

I read that its used mainly for distributing an app on the App Store, and not generally used for making an AU, AAX, VST3 plugin > .dmg. Is this correct thinking? I just made sure the ā€œReleaseā€ was set in the Run tab > Build Configuration (in the Edit Schemeā€¦ of my AU scheme)

I donā€™t know exactly how to make 100% sure a Release version was actually built.

Look at the complier command line in the log panel. If you are getting -O3, and if the output is appearing in a subfolder called Release (e.g. Builds/MacOSX/ā€¦/Release) you are probably getting the release build.

We had to do Archive builds for something once that wasnā€™t on the Xcode store but my memory is hazy.

@jacquesmignault - you are a big fan of Xcode do you get it signed with your proper signing key when doing a normal release build, just by specifying the TEAMID in the Projucer?

I checked the log, it does indeed build to /Release, and with -O3, and -DNDEBUG=1 :+1:

I am making an installer .dmg with DropDMG , but this seems to not be able to create a symlink to the current userā€™s /Component folder for my AU. It will for the All Users `/Componentā€™ folder. I guess I might have to start another thread to find out if I need another installer solution.

Not sure this answers your question ?

For a simple install (outside the App Store) Archive with your team ID in the proper Jucer field for XCode, and then Archive the project, using the ā€œDirect Distributionā€ option. Apple will notarize your app, and once the process is finished, download the notarized app.

Then what I do is use an app call DropDMG which lets you drop the notarized app in it, and creates a simple dmg which you often see where you drag and drop your app into ā€œApplicationsā€.

Does the trick for me.

I have DropDMG. The limitation I found out today is that it wonā€™t deploy an au.component to the current users /component folder, but will only deploy it to the All Users /component folder.

Did you find a way around that, or are you just distributing .app files?

For au or vst components I use WhiteBox - Packages
Hope this helps.

1 Like