{"id":26498766,"url":"https://github.com/jo-tools/xojo2dmg","last_synced_at":"2025-03-20T14:40:05.329Z","repository":{"id":39789626,"uuid":"446995460","full_name":"jo-tools/xojo2dmg","owner":"jo-tools","description":"Xojo2DMG: CodeSign, DMG creation and Notarization (Post Build Script)","archived":false,"fork":false,"pushed_at":"2024-03-09T21:01:06.000Z","size":117674,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-03-10T12:26:10.902Z","etag":null,"topics":["codesigning","macos","notarization","postbuild","script","xojo"],"latest_commit_sha":null,"homepage":"https://www.jo-tools.ch","language":"Xojo","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jo-tools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://paypal.me/jotools"]}},"created_at":"2022-01-11T22:05:09.000Z","updated_at":"2024-03-10T12:26:10.903Z","dependencies_parsed_at":"2023-02-09T20:31:10.101Z","dependency_job_id":null,"html_url":"https://github.com/jo-tools/xojo2dmg","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo-tools%2Fxojo2dmg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo-tools%2Fxojo2dmg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo-tools%2Fxojo2dmg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jo-tools%2Fxojo2dmg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jo-tools","download_url":"https://codeload.github.com/jo-tools/xojo2dmg/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244631866,"owners_count":20484645,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codesigning","macos","notarization","postbuild","script","xojo"],"created_at":"2025-03-20T14:40:04.841Z","updated_at":"2025-03-20T14:40:05.324Z","avatar_url":"https://github.com/jo-tools.png","language":"Xojo","funding_links":["https://paypal.me/jotools"],"categories":[],"sub_categories":[],"readme":"# Xojo2DMG\nXojo2DMG: CodeSign, DMG creation and Notarization *(Post Build Script)*\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n\n## Description\nAre you distributing macOS Software outside of the Mac App Store? For your users best experience and confidence, your applications have to be notarized by Apple.\nA requirement for that is to CodeSign with Hardened Runtime. This might lead to a different Runtime behavior compared to a simple *(unsigned)* DebugRun within the Xojo IDE.\nThat's why I encourage everyone to CodeSign *(with Hardened Runtime)* each and every DebugRun on macOS, allowing you to develop and debug as close to a Release Build as possible.\n\nThis example shows how a Post Build Script can be used in a Xojo project in order to create a customized DiskImage, sign and notarize both .app and .dmg.\nYou can easily customize the DiskImage's appearance by setting a couple of Variables in the Post Build Script. Additionally, even Notarization can be performed fully scripted. That requires to set up an item in your Keychain - see Info in the Scripts provided.\n\n\n### Requirements\n1. Xojo running on macOS *(obviously... you can't CodeSign for macOS on Windows)*\n2. CodeSigning, CodeSigning-Validation and Notarization requires Xcode to be installed\n3. Xojo2DMG requires\n   * to be run on **macOS 11.3** *(or later)*\n   * have **Xcode 13** *(or later)* installed\n\n\n### ScreenShots\n[This DMG](example-build/Xojo2DMG.dmg) has been created with Xojo2DMG *(built with Xojo 2023r4, macOS 14.4, Xcode 15.3 for CodeSigning/Notarization)*. It contains the built example app *(built as macOS Universal: x86_64 \u0026 ARM64)*.\n![ScreenShot: Disk Image](screenshots/xojo2dmg_screenshot_1.png?raw=true)\n\nXojo IDE with the Post Build Script:  \n![ScreenShot: Xojo IDE - PostBuildScript](screenshots/xojo2dmg_screenshot_2.png?raw=true)\n\n## Xojo\n### Requirements\n[Xojo](https://www.xojo.com/) is a rapid application development for Desktop, Web, Mobile \u0026 Raspberry Pi.  \n\nThe Desktop application Xojo example project ```Xojo2DMG.xojo_project``` and its Post Build Script is using:\n- Xojo 2023r4\n- API 2\n\n### How to use in your own Xojo project?\n1. Copy the folder ```scripts``` to your project folder.\n2. Create a PostBuild Script in your project and copy-and-paste the example PostBuild Script provided in ```Xojo2DMG.xojo_project```.\n3. If you're using **Xojo 2022r1** *(or newer)*: make sure this PostBuild Script runs after the Step 'Sign'. Otherwise Xojo will overwrite the CodeSigning again with it's 'Sign' step.\n4. Read the cComments in the provided Post Build Script, modify it according to your needs *(CodeSign Entitlements, Notarization, DMG look and feel)*.\n\n## About\nJuerg Otter is a long term user of Xojo and working for [CM Informatik AG](https://cmiag.ch/). Their Application [CMI LehrerOffice](https://cmi-bildung.ch/) is a Xojo Design Award Winner 2018. In his leisure time Juerg provides some [bits and pieces for Xojo Developers](https://www.jo-tools.ch/).\n\n### Contact\n[![E-Mail](https://img.shields.io/static/v1?style=social\u0026label=E-Mail\u0026message=xojo@jo-tools.ch)](mailto:xojo@jo-tools.ch)\n\u0026emsp;\u0026emsp;\n[![Follow on Facebook](https://img.shields.io/static/v1?style=social\u0026logo=facebook\u0026label=Facebook\u0026message=juerg.otter)](https://www.facebook.com/juerg.otter)\n\u0026emsp;\u0026emsp;\n[![Follow on Twitter](https://img.shields.io/twitter/follow/juergotter?style=social)](https://twitter.com/juergotter)\n\n### Donation\nDo you like this project? Does it help you? Has it saved you time and money?  \nYou're welcome - it's free... If you want to say thanks I'd appreciate a [message](mailto:xojo@jo-tools.ch) or a small [donation via PayPal](https://paypal.me/jotools).  \n\n[![PayPal Dontation to jotools](https://img.shields.io/static/v1?style=social\u0026logo=paypal\u0026label=PayPal\u0026message=jotools)](https://paypal.me/jotools)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjo-tools%2Fxojo2dmg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjo-tools%2Fxojo2dmg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjo-tools%2Fxojo2dmg/lists"}