1
0
mirror of https://github.com/flutter/samples.git synced 2026-04-20 05:52:21 +00:00

Fix the ios_fullscreen app (#2817)

Fixes the ios_fullscreen add-to-app sample app:

1. The Flutter module was renamed from `flutter_module` to
`flutter_module_fullscreen`. However, the iOS native app had not been
updated to reflect this
2. Flutter's minimum deployment version was raised to 13.0. The iOS
native app targeted iOS 12.4.

## Pre-launch Checklist

- [x] I read the [Flutter Style Guide] _recently_, and have followed its
advice.
- [x] I signed the [CLA].
- [x] I read the [Contributors Guide].
- [ ] I have added sample code updates to the [changelog].
- [x] I updated/added relevant documentation (doc comments with `///`).


If you need help, consider asking for advice on the #hackers-devrel
channel on [Discord].

<!-- Links -->
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md
[CLA]: https://cla.developers.google.com/
[Discord]:
https://github.com/flutter/flutter/blob/master/docs/contributing/Chat.md
[Contributors Guide]:
https://github.com/flutter/samples/blob/main/CONTRIBUTING.md
[changelog]: ../CHANGELOG.md

Co-authored-by: Eric Windmill <eric@ericwindmill.com>
This commit is contained in:
Loïc Sharma
2026-04-15 09:31:48 -07:00
committed by GitHub
parent e1f4b30af2
commit 5c24a75233
5 changed files with 23 additions and 28 deletions

View File

@@ -5,7 +5,7 @@ Embeds a full screen instance of Flutter into an existing iOS or Android app.
## Description ## Description
These apps showcase a relatively straightforward integration of These apps showcase a relatively straightforward integration of
`flutter_module`: `flutter_module_fullscreen`:
* The Flutter module is built along with the app when the app is built. * The Flutter module is built along with the app when the app is built.
* The Flutter engine is warmed up at app launch. * The Flutter engine is warmed up at app launch.
@@ -27,7 +27,7 @@ you're building for both iOS and Android, with both toolchains installed):
#!/bin/bash #!/bin/bash
set -e set -e
cd flutter_module/ cd flutter_module_fullscreen/
flutter pub get flutter pub get
# For Android builds: # For Android builds:

View File

@@ -3,5 +3,5 @@ rootProject.name='AndroidFullScreen'
setBinding(new Binding([gradle: this])) setBinding(new Binding([gradle: this]))
evaluate(new File( evaluate(new File(
settingsDir.parentFile, settingsDir.parentFile,
'flutter_module/.android/include_flutter.groovy' 'flutter_module_fullscreen/.android/include_flutter.groovy'
)) ))

View File

@@ -1,4 +1,4 @@
# flutter_module # flutter_module_fullscreen
An example Flutter module used in the Flutter add-to-app samples. For more An example Flutter module used in the Flutter add-to-app samples. For more
information on how to use it, see the [README.md](../README.md) parent information on how to use it, see the [README.md](../README.md) parent

View File

@@ -3,7 +3,7 @@
archiveVersion = 1; archiveVersion = 1;
classes = { classes = {
}; };
objectVersion = 51; objectVersion = 54;
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
@@ -175,11 +175,11 @@
buildConfigurationList = 26DF66FC233136470076ACA6 /* Build configuration list for PBXNativeTarget "IOSFullScreen" */; buildConfigurationList = 26DF66FC233136470076ACA6 /* Build configuration list for PBXNativeTarget "IOSFullScreen" */;
buildPhases = ( buildPhases = (
9AB0355F19DEFA7A4ECCC777 /* [CP] Check Pods Manifest.lock */, 9AB0355F19DEFA7A4ECCC777 /* [CP] Check Pods Manifest.lock */,
79D4306CA9A49DFDB68D2B71 /* [CP-User] Run Flutter Build flutter_module Script */, 79D4306CA9A49DFDB68D2B71 /* [CP-User] Run Flutter Build flutter_module_fullscreen Script */,
26DF66D0233136460076ACA6 /* Sources */, 26DF66D0233136460076ACA6 /* Sources */,
26DF66D1233136460076ACA6 /* Frameworks */, 26DF66D1233136460076ACA6 /* Frameworks */,
26DF66D2233136460076ACA6 /* Resources */, 26DF66D2233136460076ACA6 /* Resources */,
D1C2795C35803D65EBC8B371 /* [CP] Embed Pods Frameworks */, B9B95ECDA31F21359E3D008B /* [CP-User] Embed Flutter Build flutter_module_fullscreen Script */,
); );
buildRules = ( buildRules = (
); );
@@ -321,15 +321,15 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0; showEnvVarsInLog = 0;
}; };
79D4306CA9A49DFDB68D2B71 /* [CP-User] Run Flutter Build flutter_module Script */ = { 79D4306CA9A49DFDB68D2B71 /* [CP-User] Run Flutter Build flutter_module_fullscreen Script */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
); );
name = "[CP-User] Run Flutter Build flutter_module Script"; name = "[CP-User] Run Flutter Build flutter_module_fullscreen Script";
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "set -e\nset -u\nsource \"${SRCROOT}/../flutter_module/.ios/Flutter/flutter_export_environment.sh\"\nexport VERBOSE_SCRIPT_LOGGING=1 && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/xcode_backend.sh build"; shellScript = "set -e\nset -u\nsource \"${SRCROOT}/../flutter_module_fullscreen/.ios/Flutter/flutter_export_environment.sh\"\nexport VERBOSE_SCRIPT_LOGGING=1 && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/xcode_backend.sh build";
}; };
9AB0355F19DEFA7A4ECCC777 /* [CP] Check Pods Manifest.lock */ = { 9AB0355F19DEFA7A4ECCC777 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
@@ -353,6 +353,16 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0; showEnvVarsInLog = 0;
}; };
B9B95ECDA31F21359E3D008B /* [CP-User] Embed Flutter Build flutter_module_fullscreen Script */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
name = "[CP-User] Embed Flutter Build flutter_module_fullscreen Script";
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\nset -u\nsource \"${SRCROOT}/../flutter_module_fullscreen/.ios/Flutter/flutter_export_environment.sh\"\nexport VERBOSE_SCRIPT_LOGGING=1 && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/xcode_backend.sh embed_and_thin";
};
C73209EF6AC199B8584ED9E2 /* [CP] Check Pods Manifest.lock */ = { C73209EF6AC199B8584ED9E2 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
@@ -375,23 +385,6 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0; showEnvVarsInLog = 0;
}; };
D1C2795C35803D65EBC8B371 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-IOSFullScreen/Pods-IOSFullScreen-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-IOSFullScreen/Pods-IOSFullScreen-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-IOSFullScreen/Pods-IOSFullScreen-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */
@@ -578,6 +571,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = "IOSFullScreen/Info-$(CONFIGURATION).plist"; INFOPLIST_FILE = "IOSFullScreen/Info-$(CONFIGURATION).plist";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
@@ -596,6 +590,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = "IOSFullScreen/Info-$(CONFIGURATION).plist"; INFOPLIST_FILE = "IOSFullScreen/Info-$(CONFIGURATION).plist";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",

View File

@@ -1,7 +1,7 @@
# Uncomment the next line to define a global platform for your project # Uncomment the next line to define a global platform for your project
# platform :ios, '9.0' # platform :ios, '9.0'
flutter_application_path = '../flutter_module' flutter_application_path = '../flutter_module_fullscreen'
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb') load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
target 'IOSFullScreen' do target 'IOSFullScreen' do