There aren’t many details around about how iOS works on an M1 mac. Here are some things I have found:
A promo code for an iOS app can’t be redeemed from the App Store on an M1 Mac
Once redeemed on an iOS device under your Apple ID, you can then install it on your M1 Mac
I did this experiment using my app, where any options I had (e.g. allow/disallow VPP, allow family sharing) were set to be the most permissive option. It is plausible that there are settings I wasn’t aware of, or settings which would change this behaviour.
Running OpenGL ES apps in the Xcode simulator is slow, but fast when run outside
Disappointingly for me, I was hoping that having an M1 Mac would mean that my app would run in real time in the simulator, but I believe that the simulator does software rendering for OpenGL ES applications still. Now, I still have to jump through many hoops to record videos of my application running at the screen resolutions wanted by Apple.
The folder structure
When I ran my application in a debugger, argv[0] gave a path like this:
/private/var/folders/js/cdhpdw5j6jg_4dgpxpkppz340000gn/X/4468895A-B8ED-5034-846F-682385795C24/d/Wrapper/twobirds.app/twobirds
You can navigate to this location, but it is a read only filesystem:
% cd /private/var/folders/js/cdhpdw5j6jg_4dgpxpkppz340000gn/X/4468895A-B8ED-5034-846F-682385795C24/d/Wrapper/twobirds.app/ % touch foo touch: foo: Read-only file system
The writable folder looked like this:
/Users/andy/Library/Containers/72A69E08-1B7C-4DD7-A84B-29A4B56354F5/Data/Documents/
In here, I could create new files just fine, and I could also view the files for the app:
% ls -l total 104 -rw-r--r--@ 1 andy staff 32 12 Dec 21:27 best-throw-1767.dat -rw-r--r--@ 1 andy staff 32 12 Dec 22:21 best-throw-187.dat -rw-r--r--@ 1 andy staff 32 12 Dec 21:27 best-throw-292.dat -rw-r--r--@ 1 andy staff 32 12 Dec 21:27 best-throw-506.dat -rw-r--r--@ 1 andy staff 32 12 Dec 21:27 best-throw-559.dat -rw-r--r--@ 1 andy staff 32 12 Dec 21:27 best-throw-807.dat -rw-r--r--@ 1 andy staff 32 12 Dec 21:27 best-win-1767.dat -rw-r--r--@ 1 andy staff 32 12 Dec 22:21 best-win-187.dat -rw-r--r--@ 1 andy staff 32 12 Dec 21:27 best-win-292.dat -rw-r--r--@ 1 andy staff 32 12 Dec 21:27 best-win-506.dat -rw-r--r--@ 1 andy staff 32 12 Dec 21:27 best-win-559.dat -rw-r--r--@ 1 andy staff 32 12 Dec 21:27 best-win-807.dat -rw-r--r--@ 1 andy staff 88 12 Dec 22:22 game.dat
(the game records your best “time before launching the stone” and “time before hitting all the birds” for each level… these might be used one day, but are unused – they are very small, as I only needed to save the time the stone was thrown, the angle and any fudge factors done by the physics engine)
Seeing that all these files give the user read and write permission, it seems like they should be editable – and indeed, I could edit them and save them just fine using vim.
Zoom and Full Screen
With my app, clicking on the green full screen icon does nothing:
Similarly, choosing Window->Zoom does nothing:
I would guess that this is because of my project’s settings in Xcode:
I unchecked “Requires full screen” to see if that is what was the problem, but it did nothing. Not sure what determines whether an App can be resized.
Unexpected prompts
When doing some experiments with “Zoom”, I read that the Overcast app worked well. So, I installed it and had a play. Indeed, it did work well with resizing. Now I seem to be getting this prompt occasionally:
When it happened the first time, I needed to click “Cancel” three times before it stopped reappearing. The second time, it just appeared once.
I don’t know what this is about.
Other
Happy to try other simple experiments if you have questions. I didn’t really poke around in /Applications, but I can confirm there is a “Two Birds.app” living there.