Crystal-Web-Archiver
Crystal-Web-Archiver copied to clipboard
Submit .app to Mac App Store
Questions:
- [x] How do I build an app for the Mac App Store in general?
- Submitting a Python App to the Mac App Store
- My old article for submitting Python 2.7 apps to the Mac App Store.
- Requires revision & testing for submitting a Python 3.x app, and for building the .app package with Universal support.
- Building a Universal macOS Binary
-
$(CC) main.c -o arm_app -target arm64-apple-macos11 -
To create a universal binary for your project, merge the resulting executable files into a single executable binary using the
lipotool. -
To see the architectures present in a built executable file, run the
lipoorfilecommand-line tools.-
When running the lipo tool, include the
-archsparameter to see the architectures. - $
lipo -archs /System/Applications/Mail.app/Contents/MacOS/Mail
-
-
If you never want users to run your app under Rosetta translation, add the LSRequiresNativeExecution key to your app’s Info.plist file.
-
- Porting Your macOS Apps to Apple Silicon
-
To build a universal binary, you need Xcode 12 or a later version
-
To start your investigation, make a note of any code that does the following:
-
Interacts with third-party libraries you don’t own.
-
If your project depends on any third-party libraries, contact the original vendors and ask them to provide you with universal versions of those libraries. [...] If one or more libraries is not universal, the linker reports errors.
-
-
-
Migrate Away from Specific Technologies
-
Carbon APIs—Migrate to AppKit, Foundation, and other modern APIs.
-
Apple silicon still provides support for the preceding technologies, and you may continue to use them in macOS 11. However, this support may be removed in a future version of macOS, so migration to newer technologies is recommended.
- [ ] Does wxPython rely on Carbon APIs? (If so, then should file issues on wxPython to starting rewriting usage of those APIs.)
-
-
-
- Submitting a Python App to the Mac App Store
- –––
- [x] Does py2app (the tool used by Crystal for building .app binaries) support Apple M1?
- Yes. As of py2app 0.24, released April 6th
- https://github.com/ronaldoussoren/py2app/issues/334
- Yes. As of py2app 0.24, released April 6th
- [x] Does Python support Apple M1?
- Presumably yes, since py2app does.
- py2app's example uses Python 3.8, which is the same as used by Crystal.
- [x] Does wxPython support Apple M1?
- –––
- [x] Is Apple M1 support required when submitting an app to the Mac App Store
- 🤷♂️ Not finding a direct answer, so: No?
- –––
- [x] Do I need to pay Apple money to get a developer signing certificate that is good for the Mac App Store?
- Yes 😞, $99 per year
- https://developer.apple.com/developer-id/
-
You can generate your Developer ID certificate in Xcode or in the Certificates, Identifiers & Profiles section of your developer account. Please note that you must be the Account Holder of your development team in the Apple Developer Program.
-
Tasks:
- [ ] Revise/retest my old .app packaging article and get it to work with packaging Crystal on Apple M1 ⏳
- [ ] Get a developer signing certificate
- –––
- [ ] Create listing for app on Mac App Store, with marketing copy, videos (≤ 3), and screenshots (≤ 10) ⏳
- [ ] Submit app, and wait for approval. (~2 weeks)
- [ ] Consider contacting Apple's App Store editorial team RE the story behind Crystal, to give it a chance to be featured
- https://developer.apple.com/macos/submit/
-
If your app has a unique story that our editorial team should know about, let us know.
-
- https://developer.apple.com/macos/submit/
It appears necessary to retain an Apple Developer subscription to keep the app in the Mac App Store:

It is unclear whether a maintained subscription would be required to keep existing apps launching. If a subscription is required, then that's a no-go from a Digital Preservation standpoint.