Security Authorizations

Hey all,

I’m updating an older app that uses MonkeyBread’s EKEventStoreMBS class. Previously, it seemed that when debugging the app, you would be prompted to allow the app to access the calendar. But this was a couple years ago and OS X has seen updates since then.

What do I need to do to request access? The built/compiled version of the app has access. But my debug build does not…

Thanks!

So it appears that in order to get access to the calendar using Christain’s EventKit Classes that the app needs to be signed. How do you sign/wrap a debug app?

If you’re using a recent version of Xojo, look at the macOS build target. There’s a Sign step inside where you can put your signing identity. Otherwise it gets an ad-hoc signature.

Thanks,Greg.

OK. So I did that and unfortunately, I am still not getting access…

I guess I will have to wait for @Christian_Schmitz to help me out…

How do you sign the final build? You only need to switch from build to both for your script.

I’m just trying to run the app in the debugger. For final signing packaging I usually use AppWrapper.\

Is there some needed script too? I followed the instructions in the Xojo documentation…

Do you include the plist entries for event access?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>NSCalendarsUsageDescription</key>
   <string>Calendar access please</string>
   <key>NSRemindersUsageDescription</key>
   <string>Reminder access please</string>
</dict>
</plist>

The example have such a plist file and include it in the project.

Yes, that PLIST is in your example and I’m trying to run your example.

So here’s a question…

The Xojo docs state:

However, I don’t have one titled “Apple Development.”

image

Is use the Developer ID Application certificate usually…

Is that causing my issue?

I think the Developer ID is what Apple gives you when you sign up as a developer - long before you have any certificates.

Yes. But it appears I have two certificates that Xojo sees as ambiguous. If I try to build I get this:

image

Well I dunno about that. Just that I put my Apple Developer ID in the build settings, not something copy/pasted from a certificate. Once you’ve signed up with Apple, that ID remains the same until kingdom come.

Right and that value is my developer ID. I just have more than one certificate…Xojo doesn’t like that.

Hmm. You mean, as in duplicates? Or, as in a Developer cert, a Developer cert for the App Store, etc etc?

I had three certs and some dupes, but I think I just deleted the dupes. I came to realise that I only really needed one - which for developing an app and distributing via a website is Developer ID Application. But their opaque website didn’t make that clear, because there were others that it looked like I should have, too.

image

It’s the 3rd party Mac Developer Application and the DeveloperID application that Xojo sees as conflicting…

Exactly! Apple explains it awfully…

I suspect that 3rd party one is not needed. I don’t have one. BTW, have you read this?

https://ohanaware.com/blog/202129/How-to-purge-and-re-install-code-signing-identities.html

I suspect that if I were to want to put apps in the App Store, I’d need a cert for that, although what the point of more than one cert is (or indeed any at all) is a mystery to me.

And if I deleted the 3rd party and the distribution certs, I can build in Xojo fine. My app works and I can access the calendar. However, it does NOT work from a debug app.

And Christian’s EventKit example doesn’t work from either debug or built.

Seems like we found a bug in the Xojo IDE, where it would not report about a broken reference in the project:

So when I copy my example and run it, it doesn’t work.

Up-on inspection, I see the info.plist in the debug version doesn’t get the keys for calendar access.
So I remove the entry and add it again. Run and it works!
Can you try that?

Please vote here:
https://tracker.xojo.com/xojoinc/xojo/-/issues/76102

1 Like