flutter/docs/unsorted_wiki/Supporting-legacy-platforms.md
Kate Lovett ed8eaf1b84
Migrate the flutter/flutter wiki to docs/unsorted_wiki (#148562)
Part of https://github.com/flutter/flutter/issues/145009
This is part one of the wiki migration.
This moves all wiki pages wholesale into the new docs directory with no changes.
Follow up PRs will sort them, updating breadcrumbs and links.
2024-05-17 22:12:18 +00:00

1.9 KiB

Building ARMv7 (iOS) & armeabi v7a (Android) with Xcode10

In Xcode10, the i386 architecture is deprecated for macOS, so building the Flutter engine for armv7/armeabi-v7a fails. Specifically, libraries like CoreFoundation contain only code for the x86_64 architecture.

iOS ARMv7

Android armeabi-v7a

To address this, get the MacOS 10.13 SDK from Xcode 9.x from Apple, and extract the SDK components from the .xip file. Uncompress the SDK into /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs and name the SDK MacOSX10.13.sdk:

Uncompressed SDK in Xcode10

To check if the logic is fine, run command below:

python your-flutter-engine-path/engine/src/build/mac/find_sdk.py 10.12

When find_sdk.py return 10.13, the ninja build will succeed for gen_snapshot (i386), Flutter.framework (ARMv7) and libflutter.so (armeabi-v7a).

Build Flutter engine for 32bit iOS simulator on modern Mac(x86_64)

To build the Flutter engine for iOS simulator on a modern Mac(x86_64), the gn command will generate a target_cpu value with x64. Henceforth, the Flutter.framework and gen_snapshot will be x86_64. However, sometimes you may want to develop Flutter on a 32bit simulator(like iPhone5), you will need both Flutter.framework and gen_snapshot to be i386.

Follow instruction below to change the default behavior in gn command:

  1. Edit your-flutter-engine-path/engine/src/flutter/tools/gn Edit gn