Sign in Join
Wiki copytemporary

Mac Catalyst: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11*(macOS only)*
22
33*(iPadOS only)*
44
55With macOS 10.15 Apple introduced a new feature for building and running iPad applications on macOS. The feature is named Mac Catalyst.
66
77Apple specifically noted that the apps designed for iPad can be run on Mac computers. Exclusive iPhone apps cannot be run on macOS.
88
99## System Support
1010
1111Mac Catalyst is available on macOS 10.15 Catalina and later (?). It's not available on the prior macOS 10.14.
1212
1313One might find "iOSSupport" system libraries at
1414
15-`/System/iOSSupport/System/Library/Frameworks`
15+```text
16+/System/iOSSupport/System/Library/Frameworks
17+```
1618
1719These are run-time frameworks built to support Mac Catalyst.
1820
1921MacOSX SDKs files already include the necessary iOSSupport reference (.tbd) files.
2022
21-`/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/iOSSupport`
23+```text
24+/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/iOSSupport
25+```
2226
2327### Limitations
2428
2529- According to Apple, only a very small subset of AppKit can be used for Mac Catalyst apps. They must also be isolated into Mac Catalyst specific code (as no AppKit is available on iOS).
2630- iPadOS is a version of iOS 13 that's designed to run on Apple's iPads. According to Apple, iPadOS is built on the same foundation as iOS, but with new capabilities created for the larger display of the iPad.
2731
2832## Free Pascal Compiler Support
2933
3034A new OS target is necessary for the compiler. The changes for the target are as following:
3135
3236- during assembly the Mac Catalyst platform needs to be specified. An assembler creates an object file with load commands in them. The command provides the information for the linker about the platform of the object file.
3337
34-`Load command 8`\
35-`      cmd LC_BUILD_VERSION`\
36-`  cmdsize 32`\
37-` platform macCatalyst.  (platform 6)`\
38-`      sdk 13.4`\
39-`    minos 13.4`\
40-`   ntools 1`\
41-`     tool ld`\
42-`  version 556.4`
38+```text
39+Load command 8
40+ cmd LC_BUILD_VERSION
41+ cmdsize 32
42+ platform macCatalyst. (platform 6)
43+ sdk 13.4
44+ minos 13.4
45+ ntools 1
46+ tool ld
47+ version 556.4
48+```
4349
4450
4551During linking the linker verifies that the platform of the object file generated by FPC matches system linking files.
4652
4753as of today FPC supports 3 platforms: macOS, iOS and iPhoneSimulator. For Mac Catalyst the additional platform is needed.
4854
4955### Ld
5056
5157- "-platform_version" can be used to specify the resulting platform binary version
5258- It seems like specifying "macosx_version_min" switches ld down to linking for the macOS platform.
5359
5460## Building Apps
5561
5662While Mac Catalyst is designed to provide an ability to rebuild iPad apps for macOS in the first place, it is also possible to build a standalone UIKit app for macOS exclusively.
5763
5864However, such an application might likely act as a proof-of-concept or a demo app, and might not be accepted for distribution in the App store.
5965
6066## External links
6167
6268- [Apple: Mac Catalyst](https://developer.apple.com/mac-catalyst/)
6369- [Apple: iPadOS](https://developer.apple.com/ipad/)
6470- [Apple: iOS](https://developer.apple.com/ios/)
6571
6672---
6773*From the Free Pascal wiki, page "Mac Catalyst", as it stood on 2020-06-15 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
6874Category: Mac Catalyst
6975Category: iOS
7076Category: iPadOS
7177Category: macOS

Back to history