flutter/docs/engine/Supporting-legacy-platforms.md
Kate Lovett 722c8d62fd
[wiki migration] Engine team pages (#148696)
This sorts the wiki pages owned by the Engine team in the docs/ directory as planned in [flutter.dev/go/migrate-flutter-wiki-spreadsheet](https://docs.google.com/spreadsheets/d/1x65189ZBdNiLRygpUYoU08pwvXD4M-Z157c6pm8deGI/edit?usp=sharing) 

It also adds the engine and team-engine labels to the bot for future PRs.

Changes to the content were only updating cross links. The remaining wiki links will be updated after the rest of the pages are relocated, the original wiki links still work in the meantime.

Part of https://github.com/flutter/flutter/issues/145009
2024-05-20 23:40:42 +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