allow for bundling 3rd-party platform-specific frameworks (on macOS)
What is the problem or limitation you are having?
I want to have the mac version of my apps auto-update with Sparkle, so that it will present a familiar update UX as well as working with 3rd-party tools such as MacUpdater; I also have certain other platform-specific functionality I'd like to be able to include, such as MASShortcut.
Describe the solution you'd like
Something like py2app's frameworks= option, although possibly labeled in a much more platform-specific way.
Describe alternatives you've considered
Right now I just use py2app.
Additional context
No response
Agreed this is a problem that needs a solution. What you've expressed here is effectively a macOS interpretation of #485.
The naïve first-pass solution would be to add a frameworks setting:
[tool.briefcase.myapp.macOS]
...
frameworks = [
"/path/to/Something.framework"
]
that will copy any listed frameworks into the app bundle's Frameworks folder prior to app signing. I'm not 100% sure if that's sufficient, or if we'd also need to do delocate handling or any other path loading to ensure that frameworks are available.
Or more generally, we could add an option to copy arbitrary content into the bundle – essentially the opposite of cleanup_paths. This would go some way towards supporting the "use briefcase just for codesigning and archiving, on an existing app bundle" workflow discussed in https://github.com/glyph/Encrust/issues/2.
I think that having a frameworks = declaration provides a lot more high-level information about what the user is trying to do, which briefcase could potentially use to, for example, construct better error messages. I don't think there needs to be all that much special handling for .framework directories, but there might need to be a bit, and it would be a shame to lose the information that the desired thing being bundled is a framework.
That said of course you could just attempt to magic this information out of the file extension or something, but that seems worse.