HISE Logo Forum
    • Categories
    • Register
    • Login

    Back to Codesigning, Notarizing and stapling.....

    Scheduled Pinned Locked Moved General Questions
    13 Posts 3 Posters 415 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.
    • LindonL
      Lindon @Lindon
      last edited by

      Okay - spent some more time on the apple dev forums to get this:

      When you staple a ticket to a product,
      
      stapler
      does the following:
      It gets the cdhash from the product. This code directory hash value uniquely identifies the code. You see it for yourself using
      
      codesign -d
      .
      It asks the Apple servers for a ticket that includes that cdhash. This ticket was generated and stored on the Apple servers when you notarised the product.
      
      It attaches that ticket to your product. The exact mechanism for doing this varies but, for a bundled product like an app, it simply copies the the ticket to
      
      Contents/CodeResources
      

      but also....

      So, to clarify, Apple’s general recommendation is that you:
      Sign all your code from the inside out, up to and including any signable containers.
      
      Then notarise and staple the outermost container.
      
      Ship that stapled container.
      
      So, for example, if you ship an app inside an installer package on a disk image, you’d sign the app, then the installer package, then the disk image, and then notarise and staple the disk image.
      
      The ticket that you staple to the outermost container will cover any nested containers and code. The system ingests this ticket when you open the outermost container for the first time.
      
      There are exceptions to this rule. Most of them are edge cases that most folks can ignore, but there’s one important one. If you ship an app inside a zip archive, you can’t sign your outermost container because zip archives don’t support signing. In that case you should:
      1. Sign the app.
      
      2. Zip that.
      
      3. Notarise that.
      
      4. Take the app from step 1 and staple that.
      
      5. Zip that.
      
      6. Ship the zip archive from step 5.
      
      The system will ingest this ticket when the user first launches the app.
      

      So in truth the answer is "mostly" do the zip , but if that fails then its Ok to do the "app" itself...

      HISE Development for hire.
      www.channelrobot.com

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

        @Lindon I have a situation now where I just want a plugin (vst3 and component) in a zip file, no pkg.

        I've codesigned the plugins.
        Put them in a zip file.
        Uploaded the zip for notarization. All went well.
        Unzipped the notarized zip file.
        Attempted to staple the files but I get an error rejected (the code is valid but does not seem to be an app)

        Any ideas?

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

        Dan KorneffD LindonL 3 Replies Last reply Reply Quote 0
        • Dan KorneffD
          Dan Korneff @d.healey
          last edited by

          @d-healey I think the zip file is what got notarized, not the contents.

          Dan Korneff - Producer / Mixer / Audio Nerd

          d.healeyD 1 Reply Last reply Reply Quote 0
          • Dan KorneffD
            Dan Korneff @d.healey
            last edited by Dan Korneff

            @d-healey
            You can notarize several different types of software deliverables, including:
            macOS apps
            Non-app bundles, such as kernel extensions
            Disk images (UDIF format)
            Flat installer packages

            It appears to only be for executable files.

            "When the user first installs or runs your software, the presence of a ticket (either online or attached to the executable) tells Gatekeeper that Apple notarized the software. Gatekeeper then places descriptive information in the initial launch dialog to help the user make an informed choice about whether to launch the app."

            Dan Korneff - Producer / Mixer / Audio Nerd

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

              @Dan-Korneff said in Back to Codesigning, Notarizing and stapling.....:

              @d-healey I think the zip file is what got notarized, not the contents.

              Yes, but Apple says this

              4b6941e0-f4a2-448d-820f-9f445c0a0de7-image.png

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

              Dan KorneffD 1 Reply Last reply Reply Quote 0
              • Dan KorneffD
                Dan Korneff @d.healey
                last edited by

                @d-healey hmmm....

                Dan Korneff - Producer / Mixer / Audio Nerd

                1 Reply Last reply Reply Quote 0
                • LindonL
                  Lindon @d.healey
                  last edited by Lindon

                  @d-healey said in Back to Codesigning, Notarizing and stapling.....:

                  @Lindon I have a situation now where I just want a plugin (vst3 and component) in a zip file, no pkg.

                  I've codesigned the plugins.
                  Put them in a zip file.
                  Uploaded the zip for notarization. All went well.
                  Unzipped the notarized zip file.
                  Attempted to staple the files but I get an error rejected (the code is valid but does not seem to be an app)

                  Any ideas?

                  nearly right... no need to unzip the notarised zip... just staple the ORIGINAL plugin..from step1. . then zip this up for delivery...

                  HISE Development for hire.
                  www.channelrobot.com

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

                    @Lindon Oh ok, I'll try that, thanks!

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

                    LindonL 1 Reply Last reply Reply Quote 0
                    • LindonL
                      Lindon @d.healey
                      last edited by Lindon

                      @d-healey Yeah it makes no sense to me on all sorts of levels... but it works...Apple.....🤷

                      HISE Development for hire.
                      www.channelrobot.com

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

                        @Lindon Hmm I just tried it but I get the same message about it not being an app

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

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        53

                        Online

                        1.7k

                        Users

                        11.7k

                        Topics

                        101.8k

                        Posts