Description
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.
- 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.
- 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.
- 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.