|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
# Helper functions
|
|
|
|
###############################################################################
|
|
|
|
|
|
|
|
# Runs `packages get` on given flutter module.
|
|
|
|
# $1 = path to flutter module
|
|
|
|
function flutter_packages_get() {
|
|
|
|
echo "Fetching dependencies and building '$1'."
|
|
|
|
pushd $1
|
|
|
|
flutter packages get
|
|
|
|
popd
|
|
|
|
}
|
|
|
|
|
|
|
|
# Runs xcode build for Debug and Release.
|
|
|
|
# $1 = path to directory containing the xcode project
|
|
|
|
# $2 = name of the xcworkspace
|
|
|
|
# $3 = name of the scheme
|
|
|
|
function build() {
|
|
|
|
echo "== Testing '$1' on Flutter's $FLUTTER_VERSION channel =="
|
|
|
|
pushd "$1"
|
|
|
|
|
|
|
|
pod install
|
|
|
|
|
|
|
|
xcodebuild -workspace "$2" \
|
|
|
|
-scheme "$3" CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO \
|
|
|
|
CODE_SIGN_IDENTITY=- EXPANDED_CODE_SIGN_IDENTITY=- \
|
|
|
|
COMPILER_INDEX_STORE_ENABLE=NO CONFIGURATION=Debug | xcpretty
|
|
|
|
|
|
|
|
xcodebuild -workspace "$2" \
|
|
|
|
-scheme "$3" CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO \
|
|
|
|
CODE_SIGN_IDENTITY=- EXPANDED_CODE_SIGN_IDENTITY=- \
|
|
|
|
COMPILER_INDEX_STORE_ENABLE=NO CONFIGURATION=Release \
|
|
|
|
-destination generic/platform=iOS | xcpretty
|
|
|
|
|
|
|
|
popd
|
|
|
|
}
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
# Building preconditions
|
|
|
|
###############################################################################
|
|
|
|
|
|
|
|
echo "Pre-caching ios artifacts, such as the Flutter.framework"
|
|
|
|
flutter precache --no-web --no-linux --no-windows --no-fuchsia --no-android --no-macos
|
|
|
|
|
|
|
|
echo "Fetching dependencies and building 'prebuilt_module/flutter_module'."
|
|
|
|
pushd add_to_app/prebuilt_module/flutter_module
|
|
|
|
flutter packages get
|
|
|
|
flutter build ios-framework --xcframework --output="$(pwd)/../ios_using_prebuilt_module/Flutter"
|
|
|
|
popd
|
|
|
|
|
|
|
|
flutter_packages_get "add_to_app/books/flutter_module_books"
|
|
|
|
flutter_packages_get "add_to_app/fullscreen/flutter_module"
|
|
|
|
flutter_packages_get "add_to_app/multiple_flutters/multiple_flutters_module"
|
|
|
|
flutter_packages_get "add_to_app/plugin/flutter_module_using_plugin"
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
# Build projects
|
|
|
|
###############################################################################
|
|
|
|
|
|
|
|
build "add_to_app/books/ios_books" "IosBooks.xcworkspace" "IosBooks"
|
|
|
|
build "add_to_app/fullscreen/ios_fullscreen" "IOSFullScreen.xcworkspace" "IOSFullScreen"
|
|
|
|
build "add_to_app/multiple_flutters/multiple_flutters_ios" "MultipleFluttersIos.xcworkspace" "MultipleFluttersIos"
|
|
|
|
build "add_to_app/plugin/ios_using_plugin" "IOSUsingPlugin.xcworkspace" "IOSUsingPlugin"
|
|
|
|
|
|
|
|
echo "== Testing 'add_to_app/prebuilt_module/ios_using_prebuilt_module' on Flutter's $FLUTTER_VERSION channel =="
|
|
|
|
pushd "add_to_app/prebuilt_module/ios_using_prebuilt_module"
|
|
|
|
|
|
|
|
xcodebuild CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO \
|
|
|
|
CODE_SIGN_IDENTITY=- EXPANDED_CODE_SIGN_IDENTITY=- \
|
|
|
|
COMPILER_INDEX_STORE_ENABLE=NO CONFIGURATION=Debug | xcpretty
|
|
|
|
|
|
|
|
xcodebuild CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO \
|
|
|
|
CODE_SIGN_IDENTITY=- EXPANDED_CODE_SIGN_IDENTITY=- \
|
|
|
|
COMPILER_INDEX_STORE_ENABLE=NO CONFIGURATION=Release \
|
|
|
|
-destination generic/platform=iOS | xcpretty
|
|
|
|
|
|
|
|
popd
|
|
|
|
|
|
|
|
echo "-- Success --"
|