Tuesday, August 11, 2020


App Wrapper 3 icon

Getting started with App Wrapper 3

Tuesday, August 11, 2020 - Sam Rowlands

A guide to getting started with App Wrapper 3, specifically around Code signing and Notarization. The set-up process for the first Notarization may seem daunting, but I've broken it down into several chunks which should help.

You can download the latest version of App Wrapper from https://ohanaware.com/appwrapper/, which includes a 7-Day FREE trial.

Step 1 - Configure Xcode

  1. Open Xcode
  2. Go to "Preferences", then click on "Accounts"
  3. Click on "Manage Certificates" in the bottom right hand corner of the window
  4. Click on the "+" button in the bottom left hand corner and select "Apple Development"
  5. Click on the "+" button in the bottom left hand corner and select "Apple Distribution"
  6. Click on the "+" button in the bottom left hand corner and select "Mac Installer Distribution"
  7. Click on the "+" button in the bottom left hand corner and select "Developer ID Application"
  8. Click on the "+" button in the bottom left hand corner and select "Developer ID Installer"
  9. Click on "Done", close Xcode.

Step 2 - Configure App Wrapper

  1. Build your application in your development tool
  2. Open App Wrapper
  3. Drag and drop the built application into the App Wrapper window
  4. In the menu next to "Code signature" select "Website deployment" under your Apple team. For us, our team is our company name "Ohanaware Co., Ltd."
  5. Select "Use Blackbird for code signing", this is our own code signing engine.
  6. Select "Hardened runtime"
  7. Choose an option from the menu next to "Packing"
  8. Click the "Wrap" button on the right hand side of the toolbar

Step 3 - Configuring Harden Runtime

  1. Once wrapping is complete, click the magnifying glass icon in the wrapping window to reveal the wrapped application.
  2. Run it, and test everything, as the Harden Runtime security protocols may cause your application to not run, or certain functionality to be blocked.
  3. In the event that the application won't run or it crashes, use our App Report to look at the log files, crash reports and to check the nested executables for your app.
  4. If you're having trouble determining the reason or need assistance in understanding how to resolve it, contact us using the "Contact" option on the help menu of App Wrapper.

Step 4 - Notarize

  1. When everything is working as expected, click on the "Notarize" button in the wrapping window.
  2. You'll need to configure your Notarization account, click on "Select Account" and choose "Add an account".
  3. Enter in your Apple Developer log-in e-mail address, then click on the "App-Specific-Passwords???" link and follow Apple's instructions on creating a password.
  4. Enter that password in and click on "Verify Account" to make sure it's all good.
  5. Once done, click on "Submit" in the top right hand corner.
  6. It may take several minutes for the process to complete, it's normally much quicker the second time you Notarize an application.
  7. If you run into any errors during this process, let me know. The errors are not documented, so I may have to do some research to figure out how to solve it if you get one.
  8. Once that's completed, post your app to your web server, download it onto a machine running macOS 10.14.5 or newer and open it, you should get a nice message about Apple checking it for despicable things, certain versions of Catalina omitted this message, so as long as you can open the app unhindered, it worked.

Step 5 - Optimizing

Once you've Notarized an application for the first time and everything works, if you go back to the Application window in App Wrapper, on the general pane, you can select "Auto Notarize" and this will automated the Notarization stage after wrapping. It's off by default because it really needs to be done manually the first time to double check many things.

Step 6 - DMG Canvas Integration

With App Wrapper 3.6, we've added the ability to integrate with DMG Canvas https://www.araelium.com/dmgcanvas.

  1. In the packing options of your application, select "None".
  2. Now wrap the application.
  3. Use the "Wrapped" version of the application in DMG Canvas, configure your DMG however you like. It is very important that you use the "Wrapped" version of your application as this is what DMG Canvas will use when creating the DMG. Save the DMG Canvas template in a place that makes sense, if you move the template later on, it will break the automation.
  4. Back in App Wrapper, select "DMG Canvas" from the "Packing" menu. the DMG Canvas options will appear. Either drag your template into the file selector, or click on the "Choose" button and select the template.
  5. Click the "Wrap" button in the top right hand corner of the App Wrapper window, App Wrapper will then process the application, code sign it, get DMG Canvas to create a DMG and then on OS X 10.11.5 or newer, will automatically code sign the DMG.
  6. DMG creation and signed status appear in the App Wrapper Progress window.

There we go, you should well be on your way to distributing your apps on your own website. If you have any questions or need assistance, use the "Contact" option in the Help menu of App Wrapper to reach me and I'll do my best to help you.