GithubHelp home page GithubHelp logo

rob-smallshire / beebem Goto Github PK

View Code? Open in Web Editor NEW

This project forked from commandercoder/beebem

0.0 1.0 0.0 80.06 MB

Port of BeebEm4 for Mac Catalina and beyond

License: GNU General Public License v3.0

C 11.09% Swift 1.79% C++ 86.53% Objective-C 0.55% Shell 0.04%

beebem's Introduction

BeebEm

Port of BeebEm4 for Mac Catalina and beyond

Zip File of work in progress https://github.com/CommanderCoder/BeebEm/raw/master/Install/beebem5-distribution.zip

Some people have reported that it doesn't work out of the 'zip' because of attributes associated with the files. I will fix this and produce an installation DMG at some point. For the time being if you double click on the BeebEm and nothing seems to happen, open a terminal window to run this command on the beebem5-distribution folder.

$ xattr -crv beebem5-distribution

Building

This version has been built using XCode 11.4.1. You need to install this version (or later) to build, debug and otherwise work on the project. At the time of writing the compiler emits A LOT of warnings, most of which are purely semantic and can be ignored. These may be "fixed" in a future release.

At this point if the build fails something is wrong, most likely in your build settings / targets or perhaps I have missed something in this document.

The app will not run in XCode unless you set the working directory to a folder containing the .ini files and ROM images. These can be found in this repository. The working directory setting (for debug) is found in the XCode Scheme. Select the menu Product->Scheme->Edit Scheme... In the 'Run' settings, select the 'Options' tab, and then locate the Working Directory tickbox. Select it and give the working directory where 'beebem.ini' can be found.

Creating The Installer

Creating a release is a two-step process. Firstly you must create and export an archive of the application bundle (the .app folder), then you need to either:

  • create a zip file to copy or
  • create the DMG for distribution.

Creating and exporting the archive (for copying)

There is more than one way to go about this and in the future it may be automated but for now take the following steps:

  • If you do not yet have an archive to export go to 'Archive' from the 'Project' menu. This will build your project and open the Organiser at the Archives tab
  • If you already had an archive then it can be reached using the Organizer option on the Window menu
  • In the organiser select the archive you wish to distribute and click the Distribute App button
  • Select "Copy App" as the method of distribution. Click Next
  • Select a location to save the app. It should automatically offer a suitable location but put this into the "Install" directory
  • Xcode will create the app bundle and a couple of supporting files in this folder.
  • Open a terminal
  • Change directory (cd) to the Install directory inside BeebEm5
  • Execute ./make_distribution.sh with the name of the BeebEm archive folder (the one just created inside Install) as the 1st parameter. e.g
    ./make_distribution.sh "BeebEm5 2020-07-14 15-21-10"

You will have a zip file call beebem5-distribution which can be copied and unzipped to other Macs.

Creating and exporting the archive (for distributing using a DMG)

(IGNORE THIS SECTION .. it ends with..)

Code signing for the Application is now complete - we will sign the entire DMG in the next step.

Building the DMG installer

(IGNORE THIS SECTION)

For this final step there is a somewhat crude bash script supplied with the project. Open a terminal and navigate to the Install folder. From there simply execute:

./create_dmg.sh

The script will take the template disk image from the install folder, decompress it, mount it, add the new application to it along with the sources and other user data files, unmount the image, re-compress it and finally sign it for distribution. The resulting DMG file will be located in the folder

'~/tmp/BeebEmMac_BUILD'

Before running the script again you must ensure the image is not mounted and that it has been deleted from this folder or the script will abort and / or fail.

The resulting DMG can be zipped and used for distribution. Note that the application cannot be submitted to the App Store in it's current state for multiple reasons but all being well the end user should not receive any scary warnings when installing the application. Sadly the "This application was downloaded from the internet" and the "This application needs to be updated" cannot be avoided at this time but the user should be fairly familier with those messages.

GO TO TOP

beebem's People

Contributors

commandercoder avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.