Skip to content

When building for MacOs on PC, give us an option to Pre-bundle #24467

Open
@shmellyorc

Description

@shmellyorc

Background and motivation

When developing for MacOs on a PC. I had to make a bundle which can be very annoying to set up. Every time I make a build for mac, I am like, "cmon bundle template, lets get to work".

Give us an option to allow us to prebundle our macOS apps on PC.

When I first published a MacOS build I thought it would bundle it up for me so I could just send it out.

I can set my metadata in my prorject.csproj as in copyright, version, etc but I cannot use that info into bundle or plist file?

API Proposal

Pretty simple.

  1. When setting your app.csprog file as for version, applicationicon, description, copyright, and other metadata tags for build projects, let it make a bundle from that info to generate a MacOs bundle. I thought building for MacOs on my PC would do this automatically.
  2. It would construct a bunch of folders to construct a MacOs bundle that will be descripted below. MacOS Bundle isn't anything special or requires advanced knowledge of how it works. It is just a bunch of folders and normal xml or text files.
  3. I know others may not like this option so don't make it enforced BUT have an option in the publish process for MacOs to allow to prebundle. something like this: "dotnet publish -c Release -r osx-x64 -prebundle"

Bundle file structure looks like this:
appname.app(folder):
...Contents(folder) ->
......MacOs(folder) -> All dlls, application, and library dlls go here
......Resources(folder) -> All content, application .icns goes here
......Info.plist(file) -> all the metadata inside app.csprog can be transferred here to what specs plist requires but can be very similar
......Pkginfo(file) -> it is pretty much APPL???? nothing special but required to run the application. It is just metadata telling how this app should run. APPL means its telling macOS that is is a application. So it'll just run it.

API Usage

n/a

Alternative Designs

n/a

Risks

I don't really see any risks, it would be a way speed up production, not slow us down.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions