You’ll need DmgCanvas ($25), Appwrapper ($49.99), Xcode (free) and an apple developer account.
I should mention that this is going to be downloaded from my website not the AppStore.
Open Xcode. Under the Xcode menu item, click on settings. Go to accounts. At the bottom of the AppleID’s menu, click the plus sign and add your AppleID.
Go into manage Certificates. Use the plus sign to add an Apple ID Application and also add an Apple ID Installer.
Open Keychain Access - spotlight it.
To get an app specific password, sign into this link - https://appleid.apple.com. You’ll have to possible go through some 2 factor authentification so keep your phone close.
Click on App specific passwords. Click the plus icon. It’ll ask you to name it (use your app name). Then apple will give you the password. This is what you will use n app wrapper.
In your apple account you’ll be able to download a certificate to your computer. Click on it to add it to keychain access. Make your it shows up.
Open up a folder on your desktop. I called it source folder. I make a new folder called app and drag my Xojo built app into that folder.
DmgCanvas. Open this and Drag your built app into the contents window. Click the plus icon at the top to add an application Icon. I use a picture with an arrow with a message to drop my software into the applications folder. Then save this under your app name. Save it into your Source Folder. You’ll going to need an icon for your app. I made this in Photoshop. It needs to 1024x1024.
Open Appwrapper. This app is the bomb!
First go to bundle. This is where you add your icon. Click on make icon and save it into your source folder.
To the top left panel click on the code signing dropdown menu and choose your apple developer certificate. Check Hardened and entitlements.
Under the top right panel, you have a gear icon. This is where you add your app. Under General, choose the category, all out details about your app.
I ignore the profiles and capabilities. We’ve already down Bundle Contents because we add our icon.
Packing. Choose auto pack. Add the Name the code signed app will be called.
I choose under destination a folder in my source folder called Appacked. That’s where the wrapped DMG will go.
With any luck, the installer will have a green button. This is why we need an Apple ID Installer.
Choose DMG File. Click the choose button and direct it to your DMG file in your source folder. Click Force DMG Canvas to use wrapped app.
Then I go to the gear icon and check it. Everything should have have green ticks - only entitlements and Information Property List are standing out.
Then I go to the gear icon and wrap my app.
First the website app wraps. So far so good, then it wraps my Dmgcanvas. There is now a little tab called notarise. I click on this and it reached out to apple to let them agree that your app is ok. This will take a little while. I think the first time I was holding my breathe,
Success. Then I open my server and upload my app. In the lick In my website I need to include the s in https:
This lets Chrome download it without problems. When you open the downloaded DMG. You get to dmgcanvas window drag your app into applications. It’s now in your launchpad. Run it and it will ask you politely if you want to open it. Fall on to floor in feotal position in Joy.
You’ll need DmgCanvas ($25), Appwrapper ($49.99), Xcode (free) and an apple developer account.
I should mention that this is going to be downloaded from my website not the AppStore.
Well, it’s not mandatory. For just publishing your app on the net for download (no app store) you could alternatively use Apple DiskUtility (free) for creating the DMG and SD Notary 2 (free) for signing and notarizing.
Even if you don’t need to distribute the app on a DMG… all the stuff is automatically handled by the IDE itself: Sandboxing, Notarization and Hardened Runtime.
By the way: Congratulations for achieving this and publishing your signiged and notarized app! After downloading and running it: You may want to activate Retina-Support, looks a bit ugly on high resolution displays.
I remember trying to build it with Supports HD-dpi switched on. It crashes my App. Exception Message: The Transparent property cannot be used with Pictures with alpha channels
I build my app in High Sierra running on Parallels. My OS is Sequoia running on an 2013 Imac 27" (opencore legacy patcher). Is there a quick way I can use find and replace Xojo-wide to fix this Transparent property?
I want Support HD-dpi available. My software is highly graphical - it’s be a shame to have all the text look like it was written with crayons
OMG
Are telling us you do not know what Retina is as a developer?
It is mandatory to look into this if you want to be taken seriously for sure.
Enable it in Xojo and update all image files you are using. At least x1 and x2 (for now you can ignore 3x)
Will also need to update any code that draws to the Mask of said Pictures if they haven’t already done so.
'// This works
var p as new Picture( 10, 10, 32 )
var m as Graphics = p.Mask.Graphics
'// This doesn't
var p2 as new Picture( 10, 10 )
var m2 as Graphics = p2.Mask.Graphics
'// The new way
var mask as Picture = p2.CopyMask
var m3 as Graphics = mask.Graphics
'// Make modifications here
p2.ApplyMask( mask )
Obviously I know what retina is… I’ll go do a search. I’m pretty sure that whenever I made a picture it was
dim p as new picture (10,10,32)
I do have quite a few png’s I am using.
I did notice something about loading a picture file. On High Sierra It was as normal.
In sequoia it upload but it was upside down and back to front. I ended up with adding a switch for user who were having problems to choose on way of rendering or the other.
No its just an example. I also found that (with Hi-Dpi), whenever I tried to g.DrawPicture(Chordnotesmall, 0, 0,me.Width,me.Height, 0, 0, chordnote.Width, chordnote.Height)
I got a crash. This picture Chordnotesmall is a png, made in photoshop. It’s round so some of the area around the png needs to be transparent. I’m using xojo 2019.r1.1 so is this kind of thing working in later versions?
It’s good you found a way that works for you, but just so you know, you can do all this using Terminal – no need to buy anything at all, and no need to open X-Code (though you do need to have it and the developer tools installed).
I’m currently completely scr*wed over exactly this right now.
No amount of certificate and profile creation , downloading and double clicking into KeyChain has managed to get me back to being able to use iOS builds.
Over and over again, missing private key.
Looks like I will need to try this Xcode route, (although tbh I’m not quite sure how that’s done yet)