HISE Logo Forum
    • Categories
    • Register
    • Login

    Recent workflow for notarization / codesigning on macOS?

    Scheduled Pinned Locked Moved General Questions
    14 Posts 5 Posters 686 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Matt_SFM
      Matt_SF @gorangrooves
      last edited by

      @gorangrooves said in Recent workflow for notarization / codesigning on macOS?:

      @optimistic If i don't post "how-to" over the next couple of days, tag me to remind me.

      I will 😉. Good luck!

      Develop branch
      Win10 & VS17 / Ventura & Xcode 14. 3

      1 Reply Last reply Reply Quote 0
      • O
        optimistic @gorangrooves
        last edited by

        @gorangrooves Amazing and thank you!

        I ended up getting this working relatively well in the end with the script @d-healey by making the following changes ...

        • Building the plugins manually first so I can also create AAX
        • Keeping HISE.app in the HISE/projects/standalone/Builds/MacOSX/build/Release folder. This was the original issue throwing me off on the script as it expects the build to live there
        • Populate and run the script

        However the issue I'm running into now is that (at least on my test machine) the installer isn't overwriting previous versions of the plugin. I've tried looking for a setting for this in Packages and also bumping the version number with no luck.

        Will be interested to hear how you have things being built in Xcode 14.1 as I like keeping my os up to date and had some issues with a recent version of 13 a few months back.

        d.healeyD 1 Reply Last reply Reply Quote 0
        • d.healeyD
          d.healey @optimistic
          last edited by

          @optimistic

          he installer isn't overwriting previous versions of the plugin.

          How are you testing this? If you are looking at the modified time in Finder then you can ignore it, it often fails to update in a timely manner :)

          Libre Wave - Freedom respecting instruments and effects
          My Patreon - HISE tutorials
          YouTube Channel - Public HISE tutorials

          O 1 Reply Last reply Reply Quote 0
          • O
            optimistic @d.healey
            last edited by

            @d-healey Good question!

            I was indeed looking at the time in the finder. But also the previous version was looking in the ~/Library folder for the preset folder and the new one is looking in the system equivalent.

            I only had installed an AU previously and that one isn't updating to the correct latest version where as the VST3 and AAX both are loading the correct version.

            I also updated the version 1.0.1 and the AU tool in Logic is still reporting it as seeing version 1.0.0

            d.healeyD gorangroovesG 2 Replies Last reply Reply Quote 0
            • d.healeyD
              d.healey @optimistic
              last edited by

              @optimistic When you run your installer pkg, click customize (I think that's the name of the option) and it should show you if it's installing an update or installing for the first time.

              Libre Wave - Freedom respecting instruments and effects
              My Patreon - HISE tutorials
              YouTube Channel - Public HISE tutorials

              1 Reply Last reply Reply Quote 0
              • gorangroovesG
                gorangrooves @optimistic
                last edited by

                @optimistic Signing AAX for Mac works very similar to how it does on Windows. The only difference is the command line, and that you are not using a certificate you used on Windows, but Apple's sign ID.
                First, download the PACE SDK for Mac through the PACE Central and install it.

                For Mac, the command line will be something like this:

                /Applications/PACEAntiPiracy/Eden/Fusion/Current/bin/wraptool sign --verbose --account peterjack --signid "Developer ID Application: Peter Jack (ABCDE12345)" --wcguid NEC6C510-6202-13ED-9388-005056928F3B --in "/Users/peterjack/Desktop/plugins/MyWickedPlugin.aaxplugin" --out "/Users/peterjack/Desktop/plugins/MyWickedPlugin.aaxplugin" --password myilokpassword
                

                And just like for Windows, you will only have to specify the password for your iLok once.

                Once you have your AAX plugins signed with PACE, you can package them into a PKG installer along with your other formats for distribution, which you will sign and notarize prior to distributing it.

                Have fun!

                Goran Rista
                https://gorangrooves.com

                Handy Drums and Handy Grooves
                https://library.gorangrooves.com

                gorangroovesG O 2 Replies Last reply Reply Quote 0
                • gorangroovesG
                  gorangrooves @gorangrooves
                  last edited by

                  And regarding notarization, the old commands using alt tool not longer work with XCode 14.

                  Whoever wrote Apple's documentation on the subject is a bit of an ignorant dumb dickass for failing to properly specify how certain values should be written in the command line. They write things like this:

                  % xcrun notarytool submit OvernightTextEditor_11.6.8.zip
                  

                  As if the OS is magically going to guess where the file is. Fuckin' dickshit wasted so much of my time with this and the rest of the command.

                  So, I'll explain clearly how to do this, so you don't have to waste a second.

                  Go to appleid.apple.com and create an "app-specific" profile. Say, create a profile called MyNotary. You will be provided a password, which you will need to copy and save to a text document on your computer, as you won't see it again.

                  You are now going to save that signing profile into your computer's keychain, by running the following line into the Terminal (after replacing relevant values):

                  xcrun notarytool store-credentials --apple-id "yourname@yourdomain.com" --password "1234-aein-uiod-vpax" --team-id "12345ABCDE"
                  

                  The Apple ID you will enter above is your email registered with your developer account.
                  The password is the app-specific password you were provided for the profile MyNotary you previously created.
                  The Team ID is your developer team ID that you use for signing plugins on MacOS and can see it in your Apple developer account.

                  So, now that you clearly know how to enter those values without guessing if they should be specified with <> or [] or '' or {}, it will be a breeze.

                  Time to notarize the PKG installer.

                  Enter the following command line into the Terminal after replacing the appropriate values:

                  xcrun notarytool submit "/Users/peterjack/Desktop/PACKAGES PROJECTS/build/MyAppReadyForDistribution.pkg" --keychain-profile "MyNotary" --wait
                  

                  So, basically, you just need to change the path to your file and specify the name of your actual notary profile previously saved in your Keychain. Hit enter and wait until it runs the check, uploads, scans and tells you that it was accepted.

                  Before you notarize the PKG file, all plugins needs to be code-signed with a timestamp, and your standalone app also needs to have the hardened runtime forced. You do that for the app by running the following line (after replacing the obvious values):

                  codesign --deep --force --options runtime --sign "Developer ID Application: Peter Jack (12345ABCDE)" "/Users/peterjack/Desktop/plugins/MyStandAloneApp.app”
                  

                  Let me know if anything is not clear enough.

                  Goran Rista
                  https://gorangrooves.com

                  Handy Drums and Handy Grooves
                  https://library.gorangrooves.com

                  1 Reply Last reply Reply Quote 2
                  • O
                    optimistic @gorangrooves
                    last edited by

                    @gorangrooves Thanks so much for the detailed response!

                    I ended up getting this working in the end and this post helped quite a bit.

                    It was actually a series of things including me not understanding AAX plugins on windows are folders, that in and out needed to be the same and that HISE wasn’t correctly building the plugins because I needed to change a property in VS.

                    Again, the help is super appreciated and great luck with your release. Your products look really interesting to me and plan on giving them a closer look in the future.

                    gorangroovesG 1 Reply Last reply Reply Quote 0
                    • gorangroovesG
                      gorangrooves @optimistic
                      last edited by

                      @optimistic You are very welcome! 🤘 I am glad to be able to contribute something here that will help others. I've gotten wonderful help over the last few years from the amazing folks here. Best of success with your products!

                      Goran Rista
                      https://gorangrooves.com

                      Handy Drums and Handy Grooves
                      https://library.gorangrooves.com

                      1 Reply Last reply Reply Quote 1
                      • Adam_GA
                        Adam_G
                        last edited by

                        This post is deleted!
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        22

                        Online

                        1.7k

                        Users

                        11.8k

                        Topics

                        102.8k

                        Posts