PLEASE HELP! 5.0.2: How to sign with "Developer ID Application" instead of "Mac Developer"?


#1

Hi,

I’ve set my “Development Team ID” and have set the “Code-signing Identity” to “Developer ID Application” in the “Xcode (MacOSX)” exporter inside the Projucer. When I compile, I get the following error:

Note:MyProject - AUv3 AppExtension has conflicting provisioning settings. MyProject - AUv3 AppExtension is automatically signed for development, but a conflicting code signing identity Developer ID Application has been manually specified. Set the code signing identity value to “Mac Developer” in the build settings editor, or switch to manual signing in the project editor.

(similar errors for VST, AU, AAX targets as well)

in Xcode it looks like this:

It compiles fine if I uncheck “Automatically manage signing” and also if I remove “Developer ID Application” from the Projucer, so that the default of “Mac Developer” is used.

The reason I want to use “Developer ID Application” over “Mac Developer” is, that I want to distribute the app outside the mac app store. And it is my current understanding that signing with “Developer ID Application” is required for distribution outside the app store (and I’ve done it this way in the past with JUCE 4).

Note: after making a diff of the original project and the one with manual signing

ProvisioningStyle = Manual;

is set in the pbxproj - maybe the Projucer is missing a CheckBox for manual signing? It escapes me though, why this did work fine with the JUCE 4 Projucer.

I also noticed, that “DevelopmentTeam” gets changed to “DEVELOPMENT_TEAM” when re-saving in Xcode.

Note: I’m using Xcode 8.3.2 on macOS 10.12.5.

What am I doing wrong?

Best,
Ben

Update: Please help! This essentially breaks my build-pipeline.


#2

I do my code signing in a post build script
codesign -s "Developer ID Application: <yourIDHere>" -v "myApp.app"

To find the yourIDHere part, look in your Keychain under “My Certificates”.

Then right after to check/verify
codesign -vd "myApp.app"


#3

Thanks, that’s an interesting idea. But it does sound like a workaround. Using Developer ID works fine with the JUCE 4 Projucer. @jules: is this a bug or expected behaviour? (Or am I just missing something obvious?)


#4

I have the same issue. Is that resolved somehow ?


#5

We’ve had this issue as well. The solution is to be sure to use the correct developer id - this is sometimes different than the one that xcode seems to display - I’m not sure why.

A reliable way to obtain the correct developer id is the following. Open your project in xcode and change the signing settings to the one that you want to use to sign your app:

Build once to ensure that signing works as expected. Now close Xcode and open your project’s project.pbxproj in a text editor. project.pbxproj is inside your projects Xcode project package (so for the JUCE demo it’s located at JUCE/examples/Demo/Builds/iOS/JuceDemo.xcodeproj/project.pbxproj). Then search for DEVELOPMENT_TEAM =. This will be your developer id - make a note of it. For some reason this id does not match the one that Xcode shows.

You can now use the above id in the projucer and JUCE will correctly generate your xcode projects for signing with your developer id.


iOS signing clarification "development team id"
Native iOS/Android file choosers
#6

ProvisioningStyle = Manual;

This seems like the issue to me, if I set the Code-Signing Identity and Development Team ID in the project settings in Projucer then save, I see the same error that others here have mentioned.

But if I edit the pbxproj file changing ProvisionStyle to Manual and re-save, everything works fine.

I’m still new to Mac development so maybe I’m missing something, but it seems like this setting should be Manual and not Automatic?

Can anyone from the JUCE team comment on this?


#7

Can I bump this one please?

I’ve spent several hours to try to get a JUCE plugin to work correctly with application ID certificates. After trying all tricks described above, the only one that seems to work is to set the Mac Developer ID Application (from the key chain) and setting provisioning style to manual.

Perhaps the projucer can be updated as follows: if ‘Mac Developer’ is used as code signing identity, set the provisioning style to automatic (as it is now), while using ‘manual’ when a Mac Developer ID application is used?