Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Supporting legacy platforms
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.
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
To check if the logic is fine, run command below:
python your-flutter-engine-path/engine/src/build/mac/find_sdk.py 10.12
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:
- Edit your-flutter-engine-path/engine/src/flutter/tools/gn