compose-multiplatform
compose-multiplatform copied to clipboard
Upload to Apple App Store (Universal macOS Binary required, signing issues)
To be able to upload a Compose for Desktop app to the Apple App Store, there are multiple issues that need to be resolved.
- [ ] Universal macOS Binary (optional)
- [x] Signing for Mac App Store (required) #1613
- [x] Fix TestFlight builds (optional) #1812
Universal macOS Binary (optional)
To be able to support both Intel and ARM64 Macs natively, there needs to be a way to build a Universal pkg (Intel + ARM64). That is needed to be able to upload it to the Apple App Store. The only alternative for now is to upload an Intel-only app.
I tried adding both compose.desktop.macos_arm64 and compose.desktop.macos_x64 dependencies as suggested on Slack. However, the produced app is still not Universal.
I am building the project on an M1 Mac with an ARM64 JDK. When doing a right click and get info on the produced .app it shows Apple Silicon instead of Universal.
Furthermore, I am not sure what to do about the bundled JRE. Would I need to include it twice (for Intel and for ARM64) or so?
Slack discussion: https://kotlinlang.slack.com/archives/C01D6HTPATV/p1639570539349100
Found some information on this here: https://bugs.openjdk.java.net/browse/JDK-8266259
Just wanted to add that it is not technically mandatory for the App Store, as I think you can still upload Intel only apps at this time. However, if you want the app to run natively on M1 Macs, you are required to build a Universal app with support for both architectures.
I am working on support for the Apple App Store. Could use some guidance on this if possible. See #1613
Does anyone have any idea how to fix the univeral binary issue? Intel and ARM64 in one binary.
It is now possible to upload apps to the App Store now that https://github.com/JetBrains/compose-jb/pull/1613 is merged. However, TestFlight is not working and universal binaries are not supported. Any suggestions?
I opened a TSI with Apple and am working with them to get the TestFlight issues resolved. They were able to provide me with more detailed error message, so I am working on that.
Already opened some PRs with other related fixes: #1797, #1798, #1799
Got TestFlight working thanks to Apple's help with the remaining errors. See #1812.
@Thomas-Vos is there anything left for this task?
@akurasov both the App Store and TestFlight are functional. However, there is no native support for the Apple M1 chip. For the App Store, a universal binary (Intel + ARM64) is required to support M1 natively as you can only upload one binary. As a workaround for now, Intel only apps can be uploaded. They can run on M1 with Rosetta 2, but of course native support is much better (and maybe even required in the future). So that is still an open issue.
I think these are a bit different issues. What you are saying - we need to publish Skiko and Compose for MacOS M1, right?
Apple approved my Compose app for the Mac App Store: https://apps.apple.com/app/id1462943921
TestFlight builds are also working great. Now all that is missing is a universal build so that M1 is supported natively.
This complicates builds too...e.g., M1 Mac Minis are typically used in CI, but we can't built an Intel binary on those. Binaries built on an M1 Mac can't run on an Intel Mac.