HISE Logo Forum
    • Categories
    • Register
    • Login

    Notarisation for dummies

    Scheduled Pinned Locked Moved General Questions
    160 Posts 20 Posters 17.7k 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.
    • Christoph HartC
      Christoph Hart
      last edited by

      Hi everybody,

      after one year of answering support emails about Catalina with a "Right click and click on Open to bypass the notarisation"-template I've decided to give in and notarise stuff on macOS. Now I know some of you have already notarised some apps made with HISE so before I go down the rabbit hole and google how to notarize an app just to troubleshoot why a generic approach doesn't work, it would be nice to have a HISE-specific guide.

      So after my naive approach of notarizing failed with a really nice descriptive error message called "package invalid" after being irresponsive for 10 minutes while the upload was in progress (by a process called Java. JAVA!!!!) my inner peace and patience acquired over the weekend is already gone.

      So what did you do in order to sucessfully notarize a HISE app?

      orangeO LindonL 2 Replies Last reply Reply Quote 0
      • orangeO
        orange @Christoph Hart
        last edited by

        @Christoph-Hart said in Notarisation for dummies:

        Hi everybody,

        after one year of answering support emails about Catalina with a "Right click and click on Open to bypass the notarisation"-template I've decided to give in and notarise stuff on macOS. Now I know some of you have already notarised some apps made with HISE so before I go down the rabbit hole and google how to notarize an app just to troubleshoot why a generic approach doesn't work, it would be nice to have a HISE-specific guide.

        So after my naive approach of notarizing failed with a really nice descriptive error message called "package invalid" after being irresponsive for 10 minutes while the upload was in progress (by a process called Java. JAVA!!!!) my inner peace and patience acquired over the weekend is already gone.

        So what did you do in order to sucessfully notarize a HISE app?

        I haven't built a standalone app in Hise yet, so I don't have experience for the app notarization.

        But for plugins, it definately works.

        develop Branch / XCode 13.1
        macOS Monterey / M1 Max

        1 Reply Last reply Reply Quote 0
        • Christoph HartC
          Christoph Hart
          last edited by

          Have you enabled the Hardened Runtime properties in the autogenerated Projucer project?

          orangeO 1 Reply Last reply Reply Quote 0
          • LindonL
            Lindon @Christoph Hart
            last edited by Lindon

            @Christoph-Hart

            Ok heres my process:
            Step 0. build your app and plugins...

            Step 1: Sign the plugin or app from desktop (copy it there):

            run these commands in the terminal window:

            codesign -s "Developer ID Application: your-dev-id (your-dev-id-number)" "/Users/lindon/Desktop/your.component" --timestamp

            codesign -s "Developer ID Application: your-dev-id (your-dev-id-number)" "/Users/lindon/Desktop/your.vst" --timestamp
            codesign -s "Developer ID Application: your-dev-id (your-dev-id-number)" "/Users/lindon/Desktop/your.vst3" --timestamp
            codesign --deep --force --options runtime --sign "Developer ID Application: your-dev-id (your-dev-id-number)" "/Users/lindon/Desktop/your.app"

            Validate that the code signing has happened:

            codesign -vvv /Users/lindon/Desktop/yourvst.vst

            Step 2: Make the installer package & Sign the package from desktop - note my white box has my dev installer certificate attached..(copy it there):

            codesign -s "Developer ID Application: your-dev-id (your-dev-id-number)" "/Users/lindon/Desktop/your.pkg"

            Step 3: notarize your package it should notarize your app at the same time......

            —NOTE: YOU MUST TYPE THIS INTO THE TERMINAL BY HAND - IT WONT WORK CUT AND PASTE FOR ME!!!!!

            xcrun altool --notarize-app -f "/Users/lindon/Desktop/your.pkg” --primary-bundle-id com.your.pkg --username "your-apple-id-NOT-your-dev_id" --password "your-altool-password"

            Step 4: Wait for email from apple…

            on success notification, staple your package:

            xcrun stapler staple "/Users/lindon/Desktop/your.pkg"

            Step 5:check if package has been signed…
            codesign -vvv --deep --strict "/Users/lindon/Desktop/your.pkg”

            OK this all works fine - except!!! - If I add an icon to the app after its been built then it will NOT notarize giving you the ever helpful message:

            unsealed contents present in the bundle root

            As yet I havent tried to notarize an app that has used the Icon.png-in-the-images-folder approach..

            HISE Development for hire.
            www.channelrobot.com

            1 Reply Last reply Reply Quote 2
            • Christoph HartC
              Christoph Hart
              last edited by

              @Lindon said in Notarisation for dummies:

              If I add an icon to the app after its been built

              Why?

              1 Reply Last reply Reply Quote 0
              • Christoph HartC
                Christoph Hart
                last edited by

                @Lindon said in Notarisation for dummies:

                codesign --deep --force --options runtime --sign "Developer ID Application: your-dev-id (your-dev-id-number)" "/Users/lindon/Desktop/your.app"

                HERO!!!!

                hisefiloH 1 Reply Last reply Reply Quote 0
                • orangeO
                  orange @Christoph Hart
                  last edited by orange

                  @Christoph-Hart said in Notarisation for dummies:

                  Have you enabled the Hardened Runtime properties in the autogenerated Projucer project?

                  No. For plugins, my process is this:

                  Hise Export plugins > Sign plugins > Build installer > Sign installer > Notarize installer > Time stamp installer

                  For the notarization of apps and plugins, you can follow this updated guide: https://www.kvraudio.com/forum/viewtopic.php?t=531663

                  develop Branch / XCode 13.1
                  macOS Monterey / M1 Max

                  1 Reply Last reply Reply Quote 0
                  • Christoph HartC
                    Christoph Hart
                    last edited by Christoph Hart

                    Yes I did follow the guideline, but forgot to add the --deep --force --options runtime flags when signing the standalone app. All works now.

                    Just one minor thing, I couldn't verify the notarisation with Lindons's suggestion, but this approach worked

                    orangeO 1 Reply Last reply Reply Quote 2
                    • orangeO
                      orange @Christoph Hart
                      last edited by orange

                      @Christoph-Hart said in Notarisation for dummies:

                      Yes I did follow the guideline, but forgot to add the --deep --force --options runtime flags when signing the standalone app. All works now.

                      Just one minor thing, I couldn't verify the notarisation with Lindons's suggestion, but this approach worked

                      For codesign checking I use this:

                      pkgutil --check-signature "/Volumes/Data/My_Installer.pkg"
                      

                      For notarization checking I use this:

                      spctl -a -vvv -t install "/Volumes/Data/My_Installer.pkg"
                      

                      If the notarization is ok, you should see "accepted" message.


                      Both of them should work in your system too.

                      develop Branch / XCode 13.1
                      macOS Monterey / M1 Max

                      LindonL 1 Reply Last reply Reply Quote 2
                      • LindonL
                        Lindon @orange
                        last edited by

                        @orange - cool. I will add these to my process...

                        HISE Development for hire.
                        www.channelrobot.com

                        1 Reply Last reply Reply Quote 1
                        • Casey KolbC
                          Casey Kolb
                          last edited by

                          Just another tidbit for those lay-people like me — I recently discovered this third-party app while trying to learn about notarization: DMG Canvas

                          It's a WYSIWYG builder that automatically notarizes and staples your installer using your Apple ID when you build the DMG file. Super clean!

                          Casey Kolb
                          Founder & CEO of Lunacy Audio
                          Composer | Producer | Software Developer

                          ? 1 Reply Last reply Reply Quote 1
                          • hisefiloH
                            hisefilo @Christoph Hart
                            last edited by

                            @Christoph-Hart I do the @Lindon way. Almost everything the same. I just staple VSTs and AUs before packaging them into a .pkg and I got the "The validate action worked!" on everyone (files by themselves and installers)

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

                              @hisefilo You don't need to notarize/staple your plugins. You only need to codesign plugins and notarize/staple the installer.

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

                              hisefiloH NatanN 2 Replies Last reply Reply Quote 0
                              • hisefiloH
                                hisefilo @d.healey
                                last edited by

                                @d-healey I was loosing my time then!!!! Thanks Dave

                                1 Reply Last reply Reply Quote 0
                                • NatanN
                                  Natan @d.healey
                                  last edited by

                                  @d-healey said in Notarisation for dummies:

                                  @hisefilo You don't need to notarize/staple your plugins. You only need to codesign plugins and notarize/staple the installer.

                                  So Only Code Signing The .Component / .VST Or .VST3 Can Let Us To Distribute The Plugin?
                                  Without Installers?

                                  So End User Can Drag & Drop The Plugin Into The Folders And Get To Work Right Away?!!!

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

                                    @Natanr No. If you are distributing the binaries only then they need to be codesigned and notarized/stapled, but if you are distributing them in a pkg (or a DMG that contains a pkg) then you only need to notarize the pkg. This is according to the famous KVR post - https://www.kvraudio.com/forum/viewtopic.php?t=531663

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

                                    A 1 Reply Last reply Reply Quote 1
                                    • A
                                      adriano @d.healey
                                      last edited by

                                      @d-healey at the risk of a pass for an ignorant, what is the use of notarization? if my .vst or .au plugin is not notarized it will not work? I am under catalina and my plugins are working fine. it's just a legal obligation is it?

                                      1 Reply Last reply Reply Quote 0
                                      • Christoph HartC
                                        Christoph Hart
                                        last edited by

                                        The end user will see a passive-aggressive popup from macOS that suggests your software is full of viruses unless you notarize.

                                        It isn't a show stopper (AFAIK you can still run the installer by right-clicking and choosing Open from the context menu) but you need to prepare to answer a few more customer support emails than you should have to...

                                        A 1 Reply Last reply Reply Quote 0
                                        • A
                                          adriano @Christoph Hart
                                          last edited by

                                          @Christoph-Hart however i have already given my plugins and vst to friends to try and they had no problem installing. logic asks that the plugin be checked but we can activate it anyway.

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

                                            @adriano are they using Catalina?

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

                                            LindonL A 3 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            20

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            103.0k

                                            Posts