Adds new flutter module, reconfigures Android/iOS sample ()

pull/145/head
Andrew Brogdon 6 years ago committed by GitHub
parent 0f3721f696
commit 22ca7f462b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -5,7 +5,7 @@ and the latest version of CocoaPods. See the [README](../README.md) in the
`experimental` directory for details.*** `experimental` directory for details.***
This directory contains a bunch of Android and iOS projects that each import This directory contains a bunch of Android and iOS projects that each import
a standalone Flutter module called `example_module`. a standalone Flutter module called `flutter_module`.
## Goals for this sample ## Goals for this sample
@ -13,42 +13,63 @@ a standalone Flutter module called `example_module`.
## The important bits ## The important bits
### `example_module` ### Flutter modules
This is the Flutter module that'll be added to all the individual projects There are two Flutter modules included in the codebase:
in the `add_to_app` folder.
The first time you download this repo, you need to first resolve this * `flutter_module` displays the dimensions of the screen, a button that
module's dependencies by running: increments a simple counter, and an optional exit button.
* `flutter_module_using_plugin` does everything `flutter_module` does, and adds
another button that will save the counter's value to a file using the
[`path_provider`](https://pub.dev/packages/path_povider) Flutter plugin.
Before running any of the Android or iOS apps included in this sample project,
you first need to resolve the Flutter modules' depencies. Do so by running this
command from within the `flutter_module` and `flutter_module_using_plugin`
directories:
```bash ```bash
cd example_module
flutter packages get flutter packages get
``` ```
### `SimpleAndroidApp` ### Android and iOS applications
An Android application that imports `example_module` and uses it to display
a `FlutterActivity` containing widgets from the module. This project brings
in the Flutter module's Android host wrapper as a gradle sub-module.
To run, open the SimpleAndroidApp folder in Android Studio and press the run In addition to the Flutter modules, this repo also includes a number of
button. Android and iOS applications that demonstrate different ways of importing
them.
### `SimpleIOSExample` The Android apps are ready to run once you've completed the
`flutter packages get` commands listed above. The iOS apps use CocoaPods,
so you need to run this command to install the dependencies listed in their
Podfiles prior to running them the first time.
An iOS application that imports `example_module` and uses it to display This should be done in the individual project directories themselves. For
a `FlutterViewController` containing widgets from the module. This project example, prior to running `ios_fullscreen` for the first time, you need to run
uses CocoaPods, so prior to running it for the first time, use this command these commands:
to set up the workspace file:
```bash ```bash
cd ../SimpleIOSExample cd ios_fullscreen
pod install pod install
``` ```
Then open SimpleIOSExample/SimpleIOSExample.xcworkspace with Xcode. This Once that command is complete, you'll find an `xcworkspace` file in the project
workspace will have the Flutter module linked in as a dependent CocoaPod. directories with the correct Flutter module (and any other dependencies)
included. Open that workspace file, and the app is ready to build and run.
### `android_fullscreen` and `ios_fullscreen`
These apps showcase a relatively straightforward integration of
`flutter_module`:
* 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 view is presented with a full-screen Activity or
UIViewController.
* The Flutter view is a navigational leaf node; it does not launch any new,
native Activities or UIViewControllers in response to user actions.
If you are new to Flutter's add-to-app APIs, these projects are a great place
to begin learning how to use them.
## Questions/issues ## Questions/issues

@ -1,24 +0,0 @@
package com.example.simpleandroidapp
import android.support.test.InstrumentationRegistry
import android.support.test.runner.AndroidJUnit4
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.Assert.*
/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getTargetContext()
assertEquals("com.example.simpleandroidapp", appContext.packageName)
}
}

@ -1,34 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportHeight="108"
android:viewportWidth="108">
<path
android:fillType="evenOdd"
android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
android:strokeColor="#00000000"
android:strokeWidth="1">
<aapt:attr name="android:fillColor">
<gradient
android:endX="78.5885"
android:endY="90.9159"
android:startX="48.7653"
android:startY="61.0927"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0"/>
<item
android:color="#00000000"
android:offset="1.0"/>
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
android:strokeColor="#00000000"
android:strokeWidth="1"/>
</vector>

@ -1,74 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="108dp"
android:width="108dp"
android:viewportHeight="108"
android:viewportWidth="108">
<path android:fillColor="#008577"
android:pathData="M0,0h108v108h-108z"/>
<path android:fillColor="#00000000" android:pathData="M9,0L9,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,0L19,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M29,0L29,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M39,0L39,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M49,0L49,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M59,0L59,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M69,0L69,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M79,0L79,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M89,0L89,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M99,0L99,108"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,9L108,9"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,19L108,19"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,29L108,29"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,39L108,39"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,49L108,49"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,59L108,59"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,69L108,69"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,79L108,79"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,89L108,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M0,99L108,99"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,29L89,29"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,39L89,39"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,49L89,49"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,59L89,59"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,69L89,69"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M19,79L89,79"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M29,19L29,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M39,19L39,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M49,19L49,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M59,19L59,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M69,19L69,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
<path android:fillColor="#00000000" android:pathData="M79,19L79,89"
android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
</vector>

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/launch_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Launch Flutter Activity!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</android.support.constraint.ConstraintLayout>

@ -1,3 +0,0 @@
<resources>
<string name="app_name">SimpleAndroidApp</string>
</resources>

@ -1,28 +0,0 @@
PODS:
- example_module (0.0.1):
- Flutter
- Flutter (1.0.0)
- FlutterPluginRegistrant (0.0.1):
- Flutter
DEPENDENCIES:
- example_module (from `../example_module/.ios/Flutter`)
- Flutter (from `../example_module/.ios/Flutter/engine`)
- FlutterPluginRegistrant (from `../example_module/.ios/Flutter/FlutterPluginRegistrant`)
EXTERNAL SOURCES:
example_module:
:path: "../example_module/.ios/Flutter"
Flutter:
:path: "../example_module/.ios/Flutter/engine"
FlutterPluginRegistrant:
:path: "../example_module/.ios/Flutter/FlutterPluginRegistrant"
SPEC CHECKSUMS:
example_module: 9b3ae62667af6b748c59e68774be3d4760f9749b
Flutter: 58dd7d1b27887414a370fcccb9e645c08ffd7a6a
FlutterPluginRegistrant: 8855ca2b426d228cb41aa6c26c0c83b8c49e3593
PODFILE CHECKSUM: b7560f9a15a01771cb2ffbac185d4fd57e3250cc
COCOAPODS: 1.7.2

@ -1,737 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 51;
objects = {
/* Begin PBXBuildFile section */
089B0A49B5CDAC5BEB582783 /* Pods_SimpleIOSExampleTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B32A0D5514AB7569E79A7AC /* Pods_SimpleIOSExampleTests.framework */; };
269398B622FE040B00D983E5 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 269398B522FE040B00D983E5 /* AppDelegate.swift */; };
269398B822FE040B00D983E5 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 269398B722FE040B00D983E5 /* ViewController.swift */; };
269398BB22FE040B00D983E5 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 269398B922FE040B00D983E5 /* Main.storyboard */; };
269398BD22FE040C00D983E5 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 269398BC22FE040C00D983E5 /* Assets.xcassets */; };
269398C022FE040C00D983E5 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 269398BE22FE040C00D983E5 /* LaunchScreen.storyboard */; };
269398CB22FE040C00D983E5 /* SimpleIOSExampleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 269398CA22FE040C00D983E5 /* SimpleIOSExampleTests.swift */; };
269398D622FE040C00D983E5 /* SimpleIOSExampleUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 269398D522FE040C00D983E5 /* SimpleIOSExampleUITests.swift */; };
3BAF4B0BB21D52A8C5B43F0D /* Pods_SimpleIOSExampleUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 187D00DA4A16A93EC89D3156 /* Pods_SimpleIOSExampleUITests.framework */; };
E0A2B399B1D9D1C350372AA4 /* Pods_SimpleIOSExample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 420E4B6E1B9E8603BA732F4C /* Pods_SimpleIOSExample.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
269398C722FE040C00D983E5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 269398AA22FE040B00D983E5 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 269398B122FE040B00D983E5;
remoteInfo = SimpleIOSExample;
};
269398D222FE040C00D983E5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 269398AA22FE040B00D983E5 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 269398B122FE040B00D983E5;
remoteInfo = SimpleIOSExample;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
187D00DA4A16A93EC89D3156 /* Pods_SimpleIOSExampleUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SimpleIOSExampleUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
269398B222FE040B00D983E5 /* SimpleIOSExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SimpleIOSExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
269398B522FE040B00D983E5 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
269398B722FE040B00D983E5 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
269398BA22FE040B00D983E5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
269398BC22FE040C00D983E5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
269398BF22FE040C00D983E5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
269398C122FE040C00D983E5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
269398C622FE040C00D983E5 /* SimpleIOSExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SimpleIOSExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
269398CA22FE040C00D983E5 /* SimpleIOSExampleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleIOSExampleTests.swift; sourceTree = "<group>"; };
269398CC22FE040C00D983E5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
269398D122FE040C00D983E5 /* SimpleIOSExampleUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SimpleIOSExampleUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
269398D522FE040C00D983E5 /* SimpleIOSExampleUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleIOSExampleUITests.swift; sourceTree = "<group>"; };
269398D722FE040C00D983E5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
363E426B1171FEC2C23089B1 /* Pods-SimpleIOSExampleUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SimpleIOSExampleUITests.debug.xcconfig"; path = "Target Support Files/Pods-SimpleIOSExampleUITests/Pods-SimpleIOSExampleUITests.debug.xcconfig"; sourceTree = "<group>"; };
420E4B6E1B9E8603BA732F4C /* Pods_SimpleIOSExample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SimpleIOSExample.framework; sourceTree = BUILT_PRODUCTS_DIR; };
512008183DD83798F184EB14 /* Pods-SimpleIOSExampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SimpleIOSExampleTests.release.xcconfig"; path = "Target Support Files/Pods-SimpleIOSExampleTests/Pods-SimpleIOSExampleTests.release.xcconfig"; sourceTree = "<group>"; };
632513CDC364778478B972A7 /* Pods-SimpleIOSExampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SimpleIOSExampleTests.debug.xcconfig"; path = "Target Support Files/Pods-SimpleIOSExampleTests/Pods-SimpleIOSExampleTests.debug.xcconfig"; sourceTree = "<group>"; };
63EEDB1909622120399C9B01 /* Pods-SimpleIOSExampleUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SimpleIOSExampleUITests.release.xcconfig"; path = "Target Support Files/Pods-SimpleIOSExampleUITests/Pods-SimpleIOSExampleUITests.release.xcconfig"; sourceTree = "<group>"; };
8B32A0D5514AB7569E79A7AC /* Pods_SimpleIOSExampleTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SimpleIOSExampleTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
A8146A98489E12B59C33EF6F /* Pods-SimpleIOSExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SimpleIOSExample.release.xcconfig"; path = "Target Support Files/Pods-SimpleIOSExample/Pods-SimpleIOSExample.release.xcconfig"; sourceTree = "<group>"; };
CD23F887F52055643A503855 /* Pods-SimpleIOSExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SimpleIOSExample.debug.xcconfig"; path = "Target Support Files/Pods-SimpleIOSExample/Pods-SimpleIOSExample.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
269398AF22FE040B00D983E5 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
E0A2B399B1D9D1C350372AA4 /* Pods_SimpleIOSExample.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
269398C322FE040C00D983E5 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
089B0A49B5CDAC5BEB582783 /* Pods_SimpleIOSExampleTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
269398CE22FE040C00D983E5 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
3BAF4B0BB21D52A8C5B43F0D /* Pods_SimpleIOSExampleUITests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
269398A922FE040B00D983E5 = {
isa = PBXGroup;
children = (
269398B422FE040B00D983E5 /* SimpleIOSExample */,
269398C922FE040C00D983E5 /* SimpleIOSExampleTests */,
269398D422FE040C00D983E5 /* SimpleIOSExampleUITests */,
269398B322FE040B00D983E5 /* Products */,
62E8A3E08E9FD326CA7480FA /* Pods */,
6A6CC3DA2402FC8ADB407559 /* Frameworks */,
);
sourceTree = "<group>";
};
269398B322FE040B00D983E5 /* Products */ = {
isa = PBXGroup;
children = (
269398B222FE040B00D983E5 /* SimpleIOSExample.app */,
269398C622FE040C00D983E5 /* SimpleIOSExampleTests.xctest */,
269398D122FE040C00D983E5 /* SimpleIOSExampleUITests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
269398B422FE040B00D983E5 /* SimpleIOSExample */ = {
isa = PBXGroup;
children = (
269398B522FE040B00D983E5 /* AppDelegate.swift */,
269398B722FE040B00D983E5 /* ViewController.swift */,
269398B922FE040B00D983E5 /* Main.storyboard */,
269398BC22FE040C00D983E5 /* Assets.xcassets */,
269398BE22FE040C00D983E5 /* LaunchScreen.storyboard */,
269398C122FE040C00D983E5 /* Info.plist */,
);
path = SimpleIOSExample;
sourceTree = "<group>";
};
269398C922FE040C00D983E5 /* SimpleIOSExampleTests */ = {
isa = PBXGroup;
children = (
269398CA22FE040C00D983E5 /* SimpleIOSExampleTests.swift */,
269398CC22FE040C00D983E5 /* Info.plist */,
);
path = SimpleIOSExampleTests;
sourceTree = "<group>";
};
269398D422FE040C00D983E5 /* SimpleIOSExampleUITests */ = {
isa = PBXGroup;
children = (
269398D522FE040C00D983E5 /* SimpleIOSExampleUITests.swift */,
269398D722FE040C00D983E5 /* Info.plist */,
);
path = SimpleIOSExampleUITests;
sourceTree = "<group>";
};
62E8A3E08E9FD326CA7480FA /* Pods */ = {
isa = PBXGroup;
children = (
CD23F887F52055643A503855 /* Pods-SimpleIOSExample.debug.xcconfig */,
A8146A98489E12B59C33EF6F /* Pods-SimpleIOSExample.release.xcconfig */,
632513CDC364778478B972A7 /* Pods-SimpleIOSExampleTests.debug.xcconfig */,
512008183DD83798F184EB14 /* Pods-SimpleIOSExampleTests.release.xcconfig */,
363E426B1171FEC2C23089B1 /* Pods-SimpleIOSExampleUITests.debug.xcconfig */,
63EEDB1909622120399C9B01 /* Pods-SimpleIOSExampleUITests.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
6A6CC3DA2402FC8ADB407559 /* Frameworks */ = {
isa = PBXGroup;
children = (
420E4B6E1B9E8603BA732F4C /* Pods_SimpleIOSExample.framework */,
8B32A0D5514AB7569E79A7AC /* Pods_SimpleIOSExampleTests.framework */,
187D00DA4A16A93EC89D3156 /* Pods_SimpleIOSExampleUITests.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
269398B122FE040B00D983E5 /* SimpleIOSExample */ = {
isa = PBXNativeTarget;
buildConfigurationList = 269398DA22FE040C00D983E5 /* Build configuration list for PBXNativeTarget "SimpleIOSExample" */;
buildPhases = (
264AE55B6B867B61BC2CB1E8 /* [CP] Check Pods Manifest.lock */,
6509A41456CCA1E3DEE35AC2 /* [CP-User] Run Flutter Build Script */,
269398AE22FE040B00D983E5 /* Sources */,
269398AF22FE040B00D983E5 /* Frameworks */,
269398B022FE040B00D983E5 /* Resources */,
57352AFF53A3C19AB9928E36 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = SimpleIOSExample;
productName = SimpleIOSExample;
productReference = 269398B222FE040B00D983E5 /* SimpleIOSExample.app */;
productType = "com.apple.product-type.application";
};
269398C522FE040C00D983E5 /* SimpleIOSExampleTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 269398DD22FE040C00D983E5 /* Build configuration list for PBXNativeTarget "SimpleIOSExampleTests" */;
buildPhases = (
80BDF3ACB9840F729397FA74 /* [CP] Check Pods Manifest.lock */,
269398C222FE040C00D983E5 /* Sources */,
269398C322FE040C00D983E5 /* Frameworks */,
269398C422FE040C00D983E5 /* Resources */,
);
buildRules = (
);
dependencies = (
269398C822FE040C00D983E5 /* PBXTargetDependency */,
);
name = SimpleIOSExampleTests;
productName = SimpleIOSExampleTests;
productReference = 269398C622FE040C00D983E5 /* SimpleIOSExampleTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
269398D022FE040C00D983E5 /* SimpleIOSExampleUITests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 269398E022FE040C00D983E5 /* Build configuration list for PBXNativeTarget "SimpleIOSExampleUITests" */;
buildPhases = (
88A5719093C973643BCB1F37 /* [CP] Check Pods Manifest.lock */,
269398CD22FE040C00D983E5 /* Sources */,
269398CE22FE040C00D983E5 /* Frameworks */,
269398CF22FE040C00D983E5 /* Resources */,
);
buildRules = (
);
dependencies = (
269398D322FE040C00D983E5 /* PBXTargetDependency */,
);
name = SimpleIOSExampleUITests;
productName = SimpleIOSExampleUITests;
productReference = 269398D122FE040C00D983E5 /* SimpleIOSExampleUITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
269398AA22FE040B00D983E5 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1020;
LastUpgradeCheck = 1020;
TargetAttributes = {
269398B122FE040B00D983E5 = {
CreatedOnToolsVersion = 10.2.1;
};
269398C522FE040C00D983E5 = {
CreatedOnToolsVersion = 10.2.1;
TestTargetID = 269398B122FE040B00D983E5;
};
269398D022FE040C00D983E5 = {
CreatedOnToolsVersion = 10.2.1;
TestTargetID = 269398B122FE040B00D983E5;
};
};
};
buildConfigurationList = 269398AD22FE040B00D983E5 /* Build configuration list for PBXProject "SimpleIOSExample" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 269398A922FE040B00D983E5;
productRefGroup = 269398B322FE040B00D983E5 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
269398B122FE040B00D983E5 /* SimpleIOSExample */,
269398C522FE040C00D983E5 /* SimpleIOSExampleTests */,
269398D022FE040C00D983E5 /* SimpleIOSExampleUITests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
269398B022FE040B00D983E5 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
269398C022FE040C00D983E5 /* LaunchScreen.storyboard in Resources */,
269398BD22FE040C00D983E5 /* Assets.xcassets in Resources */,
269398BB22FE040B00D983E5 /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
269398C422FE040C00D983E5 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
269398CF22FE040C00D983E5 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
264AE55B6B867B61BC2CB1E8 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-SimpleIOSExample-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
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;
};
57352AFF53A3C19AB9928E36 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-SimpleIOSExample/Pods-SimpleIOSExample-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-SimpleIOSExample/Pods-SimpleIOSExample-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-SimpleIOSExample/Pods-SimpleIOSExample-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
6509A41456CCA1E3DEE35AC2 /* [CP-User] Run Flutter Build Script */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${SRCROOT}/../example_module/.metadata",
"${SRCROOT}/../example_module/.ios/Flutter/App.framework/App",
"${SRCROOT}/../example_module/.ios/Flutter/engine/Flutter.framework/Flutter",
"${SRCROOT}/../example_module/.ios/Flutter/flutter_export_environment.sh",
);
name = "[CP-User] Run Flutter Build Script";
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\nset -u\nsource \"${SRCROOT}/../example_module/.ios/Flutter/flutter_export_environment.sh\"\n\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/xcode_backend.sh build";
};
80BDF3ACB9840F729397FA74 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-SimpleIOSExampleTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
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;
};
88A5719093C973643BCB1F37 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-SimpleIOSExampleUITests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
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;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
269398AE22FE040B00D983E5 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
269398B822FE040B00D983E5 /* ViewController.swift in Sources */,
269398B622FE040B00D983E5 /* AppDelegate.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
269398C222FE040C00D983E5 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
269398CB22FE040C00D983E5 /* SimpleIOSExampleTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
269398CD22FE040C00D983E5 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
269398D622FE040C00D983E5 /* SimpleIOSExampleUITests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
269398C822FE040C00D983E5 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 269398B122FE040B00D983E5 /* SimpleIOSExample */;
targetProxy = 269398C722FE040C00D983E5 /* PBXContainerItemProxy */;
};
269398D322FE040C00D983E5 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 269398B122FE040B00D983E5 /* SimpleIOSExample */;
targetProxy = 269398D222FE040C00D983E5 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
269398B922FE040B00D983E5 /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
269398BA22FE040B00D983E5 /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
269398BE22FE040C00D983E5 /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
269398BF22FE040C00D983E5 /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
269398D822FE040C00D983E5 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.2;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
269398D922FE040C00D983E5 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.2;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
269398DB22FE040C00D983E5 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = CD23F887F52055643A503855 /* Pods-SimpleIOSExample.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = SimpleIOSExample/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.example.SimpleIOSExample;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
269398DC22FE040C00D983E5 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = A8146A98489E12B59C33EF6F /* Pods-SimpleIOSExample.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = SimpleIOSExample/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.example.SimpleIOSExample;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
269398DE22FE040C00D983E5 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 632513CDC364778478B972A7 /* Pods-SimpleIOSExampleTests.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = SimpleIOSExampleTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.example.SimpleIOSExampleTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SimpleIOSExample.app/SimpleIOSExample";
};
name = Debug;
};
269398DF22FE040C00D983E5 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 512008183DD83798F184EB14 /* Pods-SimpleIOSExampleTests.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = SimpleIOSExampleTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.example.SimpleIOSExampleTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SimpleIOSExample.app/SimpleIOSExample";
};
name = Release;
};
269398E122FE040C00D983E5 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 363E426B1171FEC2C23089B1 /* Pods-SimpleIOSExampleUITests.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = SimpleIOSExampleUITests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.example.SimpleIOSExampleUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_TARGET_NAME = SimpleIOSExample;
};
name = Debug;
};
269398E222FE040C00D983E5 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 63EEDB1909622120399C9B01 /* Pods-SimpleIOSExampleUITests.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = SimpleIOSExampleUITests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.example.SimpleIOSExampleUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_TARGET_NAME = SimpleIOSExample;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
269398AD22FE040B00D983E5 /* Build configuration list for PBXProject "SimpleIOSExample" */ = {
isa = XCConfigurationList;
buildConfigurations = (
269398D822FE040C00D983E5 /* Debug */,
269398D922FE040C00D983E5 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
269398DA22FE040C00D983E5 /* Build configuration list for PBXNativeTarget "SimpleIOSExample" */ = {
isa = XCConfigurationList;
buildConfigurations = (
269398DB22FE040C00D983E5 /* Debug */,
269398DC22FE040C00D983E5 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
269398DD22FE040C00D983E5 /* Build configuration list for PBXNativeTarget "SimpleIOSExampleTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
269398DE22FE040C00D983E5 /* Debug */,
269398DF22FE040C00D983E5 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
269398E022FE040C00D983E5 /* Build configuration list for PBXNativeTarget "SimpleIOSExampleUITests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
269398E122FE040C00D983E5 /* Debug */,
269398E222FE040C00D983E5 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 269398AA22FE040B00D983E5 /* Project object */;
}

@ -11,3 +11,4 @@
/build /build
/captures /captures
.externalNativeBuild .externalNativeBuild
.cxx

@ -5,18 +5,15 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-android-extensions'
android { android {
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
compileSdkVersion 28 compileSdkVersion 28
buildToolsVersion "29.0.2"
defaultConfig { defaultConfig {
applicationId "com.example.simpleandroidapp" applicationId "dev.flutter.example.androidfullscreen"
minSdkVersion 19 minSdkVersion 19
targetSdkVersion 28 targetSdkVersion 28
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
} }
buildTypes { buildTypes {
release { release {
@ -24,16 +21,20 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
} }
} }
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
} }
dependencies { dependencies {
implementation 'android.arch.lifecycle:common-java8:1.1.1' implementation project(':flutter')
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'androidx.core:core-ktx:1.1.0'
implementation project(':flutter') implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
} }

@ -0,0 +1,28 @@
// Copyright 2019 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package dev.flutter.example.androidfullscreen
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.Assert.*
/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("dev.flutter.example.androidfullscreen", appContext.packageName)
}
}

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.simpleandroidapp"> package="dev.flutter.example.androidfullscreen">
<application <application
android:name="io.flutter.app.FlutterApplication" android:name="io.flutter.app.FlutterApplication"
@ -19,9 +19,10 @@
</activity> </activity>
<activity <activity
android:name="io.flutter.embedding.android.FlutterActivity" android:name="io.flutter.embedding.android.FlutterActivity"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
android:hardwareAccelerated="true" android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize" android:windowSoftInputMode="adjustResize"
android:exported="true"
/> />
</application> </application>

@ -1,11 +1,16 @@
package com.example.simpleandroidapp // Copyright 2019 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package dev.flutter.example.androidfullscreen
import android.support.v7.app.AppCompatActivity
import android.os.Bundle import android.os.Bundle
import android.widget.Button import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.android.FlutterActivity
class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) setContentView(R.layout.activity_main)

@ -0,0 +1,34 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillType="evenOdd"
android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
android:strokeWidth="1"
android:strokeColor="#00000000">
<aapt:attr name="android:fillColor">
<gradient
android:endX="78.5885"
android:endY="90.9159"
android:startX="48.7653"
android:startY="61.0927"
android:type="linear">
<item
android:color="#44000000"
android:offset="0.0" />
<item
android:color="#00000000"
android:offset="1.0" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#FFFFFF"
android:fillType="nonZero"
android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
android:strokeWidth="1"
android:strokeColor="#00000000" />
</vector>

@ -0,0 +1,170 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:fillColor="#008577"
android:pathData="M0,0h108v108h-108z" />
<path
android:fillColor="#00000000"
android:pathData="M9,0L9,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,0L19,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,0L29,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,0L39,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,0L49,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,0L59,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,0L69,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,0L79,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M89,0L89,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M99,0L99,108"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,9L108,9"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,19L108,19"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,29L108,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,39L108,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,49L108,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,59L108,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,69L108,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,79L108,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,89L108,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M0,99L108,99"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,29L89,29"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,39L89,39"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,49L89,49"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,59L89,59"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,69L89,69"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M19,79L89,79"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M29,19L29,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M39,19L39,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M49,19L49,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M59,19L59,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M69,19L69,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
<path
android:fillColor="#00000000"
android:pathData="M79,19L79,89"
android:strokeWidth="0.8"
android:strokeColor="#33FFFFFF" />
</vector>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/launch_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Launch Flutter Activity"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

@ -0,0 +1,3 @@
<resources>
<string name="app_name">AndroidFullScreen</string>
</resources>

@ -1,4 +1,8 @@
package com.example.simpleandroidapp // Copyright 2019 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package dev.flutter.example.androidfullscreen
import org.junit.Test import org.junit.Test

@ -1,15 +1,17 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
ext.kotlin_version = '1.3.41' ext.kotlin_version = '1.3.50'
repositories { repositories {
google() google()
jcenter() jcenter()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.4.2' classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
} }
} }
@ -17,7 +19,6 @@ allprojects {
repositories { repositories {
google() google()
jcenter() jcenter()
} }
} }

@ -11,5 +11,11 @@ org.gradle.jvmargs=-Xmx1536m
# This option should only be used with decoupled projects. More details, visit # This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true # org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
# Kotlin code style for this project: "official" or "obsolete": # Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official kotlin.code.style=official

@ -1,6 +1,6 @@
#Wed Aug 28 13:36:43 PDT 2019 #Tue Sep 17 09:33:13 PDT 2019
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

@ -1,6 +1,7 @@
include ':app' include ':app'
rootProject.name='AndroidFullScreen'
setBinding(new Binding([gradle: this])) setBinding(new Binding([gradle: this]))
evaluate(new File( evaluate(new File(
settingsDir.parentFile, settingsDir.parentFile,
'example_module/.android/include_flutter.groovy' 'flutter_module/.android/include_flutter.groovy'
)) ))

@ -1,4 +0,0 @@
# example_module
A simple module to be embedded in other host apps, used to demo Flutter's
add-to-app process.

@ -1,30 +0,0 @@
include: package:pedantic/analysis_options.1.7.0.yaml
analyzer:
strong-mode:
implicit-casts: false
implicit-dynamic: false
linter:
rules:
- avoid_types_on_closure_parameters
- avoid_void_async
- await_only_futures
- camel_case_types
- cancel_subscriptions
- close_sinks
- constant_identifier_names
- control_flow_in_finally
- empty_statements
- hash_and_equals
- implementation_imports
- non_constant_identifier_names
- package_api_docs
- package_names
- package_prefixed_library_names
- test_types_in_equals
- throw_in_finally
- unnecessary_brace_in_string_interps
- unnecessary_getters_setters
- unnecessary_new
- unnecessary_statements

@ -1,12 +0,0 @@
// This is a basic Flutter widget test.
//
// To perform an interaction with a widget in your test, use the WidgetTester
// utility that Flutter provides. For example, you can send tap and scroll
// gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct.
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('This test always passes', (tester) async {});
}

@ -4,7 +4,7 @@
# This file should be version controlled and should not be manually edited. # This file should be version controlled and should not be manually edited.
version: version:
revision: 92ef2b9ce1d4e54d5efb3e6a962e9e724dc7efeb revision: 2d2a1ffec95cc70a3218872a2cd3f8de4933c42f
channel: master channel: stable
project_type: module project_type: module

@ -0,0 +1,10 @@
# flutter_module
An example Flutter module used in the Flutter add-to-app samples.
## Getting Started
For more information, see the Add-to-App guide at
[flutter.dev](https://flutter.dev):
https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps

@ -14,7 +14,7 @@ class MyApp extends StatelessWidget {
title: 'Flutter Module Title', title: 'Flutter Module Title',
routes: { routes: {
'/': (context) => FullScreenView(), '/': (context) => FullScreenView(),
'/mini': (context) => MiniView(), '/mini': (context) => Contents(),
}, },
); );
} }
@ -25,23 +25,23 @@ class FullScreenView extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text('A Full-screen Flutter View'), title: Text('Full-screen Flutter'),
), ),
body: const MiniView(showExit: true), body: const Contents(showExit: true),
); );
} }
} }
class MiniView extends StatefulWidget { class Contents extends StatefulWidget {
final bool showExit; final bool showExit;
const MiniView({this.showExit = false}); const Contents({this.showExit = false});
@override @override
_MiniViewState createState() => _MiniViewState(); _ContentsState createState() => _ContentsState();
} }
class _MiniViewState extends State<MiniView> { class _ContentsState extends State<Contents> {
int count = 0; int count = 0;
@override @override
@ -72,8 +72,8 @@ class _MiniViewState extends State<MiniView> {
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Text( Text(
'Window is ${mediaInfo.size.width} x ' 'Window is ${mediaInfo.size.width.toStringAsFixed(1)} x '
'${mediaInfo.size.height}.', '${mediaInfo.size.height.toStringAsFixed(1)}',
style: Theme.of(context).textTheme.headline, style: Theme.of(context).textTheme.headline,
), ),
SizedBox(height: 16), SizedBox(height: 16),

@ -56,7 +56,7 @@ packages:
name: crypto name: crypto
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.2" version: "2.1.3"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@ -96,7 +96,7 @@ packages:
source: hosted source: hosted
version: "1.6.4" version: "1.6.4"
pedantic: pedantic:
dependency: "direct dev" dependency: transitive
description: description:
name: pedantic name: pedantic
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
@ -185,4 +185,4 @@ packages:
source: hosted source: hosted
version: "3.5.0" version: "3.5.0"
sdks: sdks:
dart: ">=2.4.0 <3.0.0" dart: ">=2.5.0 <3.0.0"

@ -1,7 +1,7 @@
name: example_module name: flutter_module
description: A simple module used to demo Flutter's Add-to-App features description: An example Flutter module.
version: 1.0.0 version: 1.0.0+1
environment: environment:
sdk: ">=2.5.0 <3.0.0" sdk: ">=2.5.0 <3.0.0"
@ -13,7 +13,6 @@ dependencies:
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
pedantic: ^1.8.0+1
flutter: flutter:
uses-material-design: true uses-material-design: true
@ -25,6 +24,6 @@ flutter:
# They also do not have any bearing on your native host application's # They also do not have any bearing on your native host application's
# identifiers, which may be completely independent or the same as these. # identifiers, which may be completely independent or the same as these.
module: module:
androidX: false androidX: true
androidPackage: com.example.example_module androidPackage: dev.flutter.example.flutter_module
iosBundleIdentifier: com.example.exampleModule iosBundleIdentifier: dev.flutter.example.flutterModule

@ -0,0 +1,34 @@
// This is a basic Flutter widget test.
//
// To perform an interaction with a widget in your test, use the WidgetTester
// utility that Flutter provides. For example, you can send tap and scroll
// gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter_module/main.dart';
void main() {
testWidgets('MiniView smoke test', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(
MaterialApp(
home: Contents(),
),
);
// Verify that our counter starts at 0.
expect(find.text('Taps: 0'), findsOneWidget);
expect(find.text('Taps: 1'), findsNothing);
// Tap the '+' icon and trigger a frame.
await tester.tap(find.text('Tap me!'));
await tester.pump();
// Verify that our counter has incremented.
expect(find.text('Taps: 0'), findsNothing);
expect(find.text('Taps: 1'), findsOneWidget);
});
}

@ -0,0 +1,41 @@
.DS_Store
.dart_tool/
.packages
.pub/
.idea/
.vagrant/
.sconsign.dblite
.svn/
*.swp
profile
DerivedData/
.generated/
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
!default.pbxuser
!default.mode1v3
!default.mode2v3
!default.perspectivev3
xcuserdata
*.moved-aside
*.pyc
*sync/
Icon?
.tags*
build/
.android/
.ios/
.flutter-plugins

@ -0,0 +1,10 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.
version:
revision: 2d2a1ffec95cc70a3218872a2cd3f8de4933c42f
channel: stable
project_type: module

@ -0,0 +1,11 @@
# flutter_module_using_plugin
An example Flutter module that uses a plugin and is consumed by native apps
in the Flutter add-to-app samples.
## Getting Started
For more information, see the Add-to-App guide at
[flutter.dev](https://flutter.dev):
https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps

@ -0,0 +1,134 @@
// Copyright 2019 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:path_provider/path_provider.dart' as paths;
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Module Title',
routes: {
'/': (context) => FullScreenView(),
'/mini': (context) => Contents(),
},
);
}
}
class FullScreenView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Full-screen Flutter with plugin'),
),
body: const Contents(showExit: true),
);
}
}
class Contents extends StatefulWidget {
final bool showExit;
const Contents({this.showExit = false});
@override
_ContentsState createState() => _ContentsState();
}
class _ContentsState extends State<Contents> {
int count = 0;
// Start off with a completed future so the FutureBuilder code below doesn't
// need to worry about null.
Future<void> saveFuture = Future.value(null);
Future<void> _saveCount() async {
final dir = await paths.getApplicationDocumentsDirectory();
final file = File('${dir.path}/count.txt');
setState(() {
saveFuture = file.writeAsString('$count\n');
});
}
@override
Widget build(BuildContext context) {
final mediaInfo = MediaQuery.of(context);
return SizedBox.expand(
child: Stack(
children: [
Positioned.fill(
child: DecoratedBox(
decoration: BoxDecoration(
color: Theme.of(context).scaffoldBackgroundColor,
),
),
),
Positioned.fill(
child: Opacity(
opacity: .25,
child: FittedBox(
fit: BoxFit.cover,
child: FlutterLogo(),
),
),
),
Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Window is ${mediaInfo.size.width.toStringAsFixed(1)} x '
'${mediaInfo.size.height.toStringAsFixed(1)}',
style: Theme.of(context).textTheme.headline,
),
SizedBox(height: 16),
Text(
'Taps: $count',
style: Theme.of(context).textTheme.headline,
),
SizedBox(height: 16),
RaisedButton(
onPressed: () => setState(() => count++),
child: Text('Tap me!'),
),
FutureBuilder(
future: saveFuture,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return RaisedButton(
onPressed: _saveCount,
child: Text('Save count'),
);
} else {
return RaisedButton(
onPressed: null,
child: Text('Save count'),
);
}
},
),
if (widget.showExit) ...[
SizedBox(height: 16),
RaisedButton(
onPressed: () => SystemNavigator.pop(),
child: Text('Exit this screen'),
),
],
],
),
),
],
),
);
}
}

@ -0,0 +1,203 @@
# Generated by pub
# See https://dart.dev/tools/pub/glossary#lockfile
packages:
archive:
dependency: transitive
description:
name: archive
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.10"
args:
dependency: transitive
description:
name: args
url: "https://pub.dartlang.org"
source: hosted
version: "1.5.2"
async:
dependency: transitive
description:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.3.0"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.2"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
version: "1.14.11"
convert:
dependency: transitive
description:
name: convert
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
crypto:
dependency: transitive
description:
name: crypto
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.3"
flutter:
dependency: "direct main"
description: flutter
source: sdk
version: "0.0.0"
flutter_test:
dependency: "direct dev"
description: flutter
source: sdk
version: "0.0.0"
image:
dependency: transitive
description:
name: image
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.4"
matcher:
dependency: transitive
description:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.5"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.7"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.4"
path_provider:
dependency: "direct main"
description:
name: path_provider
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.0+1"
petitparser:
dependency: transitive
description:
name: petitparser
url: "https://pub.dartlang.org"
source: hosted
version: "2.4.0"
platform:
dependency: transitive
description:
name: platform
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.1"
quiver:
dependency: transitive
description:
name: quiver
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.5"
sky_engine:
dependency: transitive
description: flutter
source: sdk
version: "0.0.99"
source_span:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
version: "1.5.5"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.9.3"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.5"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.5"
typed_data:
dependency: transitive
description:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.6"
vector_math:
dependency: transitive
description:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.8"
xml:
dependency: transitive
description:
name: xml
url: "https://pub.dartlang.org"
source: hosted
version: "3.5.0"
sdks:
dart: ">=2.5.0 <3.0.0"
flutter: ">=0.1.4 <2.0.0"

@ -0,0 +1,30 @@
name: flutter_module_using_plugin
description: An example Flutter module that uses a plugin.
version: 1.0.0+1
environment:
sdk: ">=2.5.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
path_provider: ^1.3.0
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
# This section identifies your Flutter project as a module meant for
# embedding in a native host app. These identifiers should _not_ ordinarily
# be changed after generation - they are used to ensure that the tooling can
# maintain consistency when adding or modifying assets and plugins.
# They also do not have any bearing on your native host application's
# identifiers, which may be completely independent or the same as these.
module:
androidX: true
androidPackage: dev.flutter.example.flutter_module_using_plugin
iosBundleIdentifier: dev.flutter.example.flutterModuleUsingPlugin

@ -0,0 +1,34 @@
// This is a basic Flutter widget test.
//
// To perform an interaction with a widget in your test, use the WidgetTester
// utility that Flutter provides. For example, you can send tap and scroll
// gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter_module_using_plugin/main.dart';
void main() {
testWidgets('MiniView smoke test', (WidgetTester tester) async {
// Build our app and trigger a frame.
await tester.pumpWidget(
MaterialApp(
home: Contents(),
),
);
// Verify that our counter starts at 0.
expect(find.text('Taps: 0'), findsOneWidget);
expect(find.text('Taps: 1'), findsNothing);
// Tap the '+' icon and trigger a frame.
await tester.tap(find.text('Tap me!'));
await tester.pump();
// Verify that our counter has incremented.
expect(find.text('Taps: 0'), findsNothing);
expect(find.text('Taps: 1'), findsOneWidget);
});
}

@ -0,0 +1,738 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 51;
objects = {
/* Begin PBXBuildFile section */
26DF66D8233136460076ACA6 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26DF66D7233136460076ACA6 /* AppDelegate.swift */; };
26DF66DA233136460076ACA6 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26DF66D9233136460076ACA6 /* ViewController.swift */; };
26DF66DD233136460076ACA6 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 26DF66DB233136460076ACA6 /* Main.storyboard */; };
26DF66DF233136470076ACA6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 26DF66DE233136470076ACA6 /* Assets.xcassets */; };
26DF66E2233136470076ACA6 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 26DF66E0233136470076ACA6 /* LaunchScreen.storyboard */; };
26DF66ED233136470076ACA6 /* IOSFullScreenTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26DF66EC233136470076ACA6 /* IOSFullScreenTests.swift */; };
26DF66F8233136470076ACA6 /* IOSFullScreenUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26DF66F7233136470076ACA6 /* IOSFullScreenUITests.swift */; };
42C8EE420484E88D28837503 /* Pods_IOSFullScreen.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 85CA70120AD0D203471CB7F5 /* Pods_IOSFullScreen.framework */; };
64FAE13E1550BFFAED130B07 /* Pods_IOSFullScreenTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 937908EB34261AC01440B337 /* Pods_IOSFullScreenTests.framework */; };
AE49A30D776B0238C3AF442D /* Pods_IOSFullScreenUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81170F2DD642E89CFA65F6B0 /* Pods_IOSFullScreenUITests.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
26DF66E9233136470076ACA6 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 26DF66CC233136450076ACA6 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 26DF66D3233136460076ACA6;
remoteInfo = IOSFullScreen;
};
26DF66F4233136470076ACA6 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 26DF66CC233136450076ACA6 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 26DF66D3233136460076ACA6;
remoteInfo = IOSFullScreen;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
17D7E4C45A10187E410660B5 /* Pods-IOSFullScreenUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IOSFullScreenUITests.debug.xcconfig"; path = "Target Support Files/Pods-IOSFullScreenUITests/Pods-IOSFullScreenUITests.debug.xcconfig"; sourceTree = "<group>"; };
26DF66D4233136460076ACA6 /* IOSFullScreen.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = IOSFullScreen.app; sourceTree = BUILT_PRODUCTS_DIR; };
26DF66D7233136460076ACA6 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
26DF66D9233136460076ACA6 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
26DF66DC233136460076ACA6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
26DF66DE233136470076ACA6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
26DF66E1233136470076ACA6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
26DF66E3233136470076ACA6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
26DF66E8233136470076ACA6 /* IOSFullScreenTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = IOSFullScreenTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
26DF66EC233136470076ACA6 /* IOSFullScreenTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IOSFullScreenTests.swift; sourceTree = "<group>"; };
26DF66EE233136470076ACA6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
26DF66F3233136470076ACA6 /* IOSFullScreenUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = IOSFullScreenUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
26DF66F7233136470076ACA6 /* IOSFullScreenUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IOSFullScreenUITests.swift; sourceTree = "<group>"; };
26DF66F9233136470076ACA6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
50F0D2063E957E2CFB3FC613 /* Pods-IOSFullScreenTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IOSFullScreenTests.release.xcconfig"; path = "Target Support Files/Pods-IOSFullScreenTests/Pods-IOSFullScreenTests.release.xcconfig"; sourceTree = "<group>"; };
7030247FF147F5595C8471BF /* Pods-IOSFullScreenUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IOSFullScreenUITests.release.xcconfig"; path = "Target Support Files/Pods-IOSFullScreenUITests/Pods-IOSFullScreenUITests.release.xcconfig"; sourceTree = "<group>"; };
750B863A0BD89C42022775B7 /* Pods-IOSFullScreen.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IOSFullScreen.release.xcconfig"; path = "Target Support Files/Pods-IOSFullScreen/Pods-IOSFullScreen.release.xcconfig"; sourceTree = "<group>"; };
81170F2DD642E89CFA65F6B0 /* Pods_IOSFullScreenUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_IOSFullScreenUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
85CA70120AD0D203471CB7F5 /* Pods_IOSFullScreen.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_IOSFullScreen.framework; sourceTree = BUILT_PRODUCTS_DIR; };
937908EB34261AC01440B337 /* Pods_IOSFullScreenTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_IOSFullScreenTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
AEC2707B63771A7B5BCBA3BA /* Pods-IOSFullScreenTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IOSFullScreenTests.debug.xcconfig"; path = "Target Support Files/Pods-IOSFullScreenTests/Pods-IOSFullScreenTests.debug.xcconfig"; sourceTree = "<group>"; };
F3E00AFDA1215B19C1529F65 /* Pods-IOSFullScreen.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-IOSFullScreen.debug.xcconfig"; path = "Target Support Files/Pods-IOSFullScreen/Pods-IOSFullScreen.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
26DF66D1233136460076ACA6 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
42C8EE420484E88D28837503 /* Pods_IOSFullScreen.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
26DF66E5233136470076ACA6 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
64FAE13E1550BFFAED130B07 /* Pods_IOSFullScreenTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
26DF66F0233136470076ACA6 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
AE49A30D776B0238C3AF442D /* Pods_IOSFullScreenUITests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
26DF66CB233136450076ACA6 = {
isa = PBXGroup;
children = (
26DF66D6233136460076ACA6 /* IOSFullScreen */,
26DF66EB233136470076ACA6 /* IOSFullScreenTests */,
26DF66F6233136470076ACA6 /* IOSFullScreenUITests */,
26DF66D5233136460076ACA6 /* Products */,
43C5451D39DA3D51EFD818D6 /* Pods */,
E918EB8D6DBF7EF69C9948FE /* Frameworks */,
);
sourceTree = "<group>";
};
26DF66D5233136460076ACA6 /* Products */ = {
isa = PBXGroup;
children = (
26DF66D4233136460076ACA6 /* IOSFullScreen.app */,
26DF66E8233136470076ACA6 /* IOSFullScreenTests.xctest */,
26DF66F3233136470076ACA6 /* IOSFullScreenUITests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
26DF66D6233136460076ACA6 /* IOSFullScreen */ = {
isa = PBXGroup;
children = (
26DF66D7233136460076ACA6 /* AppDelegate.swift */,
26DF66D9233136460076ACA6 /* ViewController.swift */,
26DF66DB233136460076ACA6 /* Main.storyboard */,
26DF66DE233136470076ACA6 /* Assets.xcassets */,
26DF66E0233136470076ACA6 /* LaunchScreen.storyboard */,
26DF66E3233136470076ACA6 /* Info.plist */,
);
path = IOSFullScreen;
sourceTree = "<group>";
};
26DF66EB233136470076ACA6 /* IOSFullScreenTests */ = {
isa = PBXGroup;
children = (
26DF66EC233136470076ACA6 /* IOSFullScreenTests.swift */,
26DF66EE233136470076ACA6 /* Info.plist */,
);
path = IOSFullScreenTests;
sourceTree = "<group>";
};
26DF66F6233136470076ACA6 /* IOSFullScreenUITests */ = {
isa = PBXGroup;
children = (
26DF66F7233136470076ACA6 /* IOSFullScreenUITests.swift */,
26DF66F9233136470076ACA6 /* Info.plist */,
);
path = IOSFullScreenUITests;
sourceTree = "<group>";
};
43C5451D39DA3D51EFD818D6 /* Pods */ = {
isa = PBXGroup;
children = (
F3E00AFDA1215B19C1529F65 /* Pods-IOSFullScreen.debug.xcconfig */,
750B863A0BD89C42022775B7 /* Pods-IOSFullScreen.release.xcconfig */,
AEC2707B63771A7B5BCBA3BA /* Pods-IOSFullScreenTests.debug.xcconfig */,
50F0D2063E957E2CFB3FC613 /* Pods-IOSFullScreenTests.release.xcconfig */,
17D7E4C45A10187E410660B5 /* Pods-IOSFullScreenUITests.debug.xcconfig */,
7030247FF147F5595C8471BF /* Pods-IOSFullScreenUITests.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
E918EB8D6DBF7EF69C9948FE /* Frameworks */ = {
isa = PBXGroup;
children = (
85CA70120AD0D203471CB7F5 /* Pods_IOSFullScreen.framework */,
937908EB34261AC01440B337 /* Pods_IOSFullScreenTests.framework */,
81170F2DD642E89CFA65F6B0 /* Pods_IOSFullScreenUITests.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
26DF66D3233136460076ACA6 /* IOSFullScreen */ = {
isa = PBXNativeTarget;
buildConfigurationList = 26DF66FC233136470076ACA6 /* Build configuration list for PBXNativeTarget "IOSFullScreen" */;
buildPhases = (
9AB0355F19DEFA7A4ECCC777 /* [CP] Check Pods Manifest.lock */,
0BF3AED57F87BA9DB9D32908 /* [CP-User] Run Flutter Build Script */,
26DF66D0233136460076ACA6 /* Sources */,
26DF66D1233136460076ACA6 /* Frameworks */,
26DF66D2233136460076ACA6 /* Resources */,
D1C2795C35803D65EBC8B371 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = IOSFullScreen;
productName = IOSFullScreen;
productReference = 26DF66D4233136460076ACA6 /* IOSFullScreen.app */;
productType = "com.apple.product-type.application";
};
26DF66E7233136470076ACA6 /* IOSFullScreenTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 26DF66FF233136470076ACA6 /* Build configuration list for PBXNativeTarget "IOSFullScreenTests" */;
buildPhases = (
06E395B0ACB759F609260858 /* [CP] Check Pods Manifest.lock */,
26DF66E4233136470076ACA6 /* Sources */,
26DF66E5233136470076ACA6 /* Frameworks */,
26DF66E6233136470076ACA6 /* Resources */,
);
buildRules = (
);
dependencies = (
26DF66EA233136470076ACA6 /* PBXTargetDependency */,
);
name = IOSFullScreenTests;
productName = IOSFullScreenTests;
productReference = 26DF66E8233136470076ACA6 /* IOSFullScreenTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
26DF66F2233136470076ACA6 /* IOSFullScreenUITests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 26DF6702233136470076ACA6 /* Build configuration list for PBXNativeTarget "IOSFullScreenUITests" */;
buildPhases = (
C73209EF6AC199B8584ED9E2 /* [CP] Check Pods Manifest.lock */,
26DF66EF233136470076ACA6 /* Sources */,
26DF66F0233136470076ACA6 /* Frameworks */,
26DF66F1233136470076ACA6 /* Resources */,
);
buildRules = (
);
dependencies = (
26DF66F5233136470076ACA6 /* PBXTargetDependency */,
);
name = IOSFullScreenUITests;
productName = IOSFullScreenUITests;
productReference = 26DF66F3233136470076ACA6 /* IOSFullScreenUITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
26DF66CC233136450076ACA6 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1030;
LastUpgradeCheck = 1030;
ORGANIZATIONNAME = "Andrew Brogdon";
TargetAttributes = {
26DF66D3233136460076ACA6 = {
CreatedOnToolsVersion = 10.3;
};
26DF66E7233136470076ACA6 = {
CreatedOnToolsVersion = 10.3;
TestTargetID = 26DF66D3233136460076ACA6;
};
26DF66F2233136470076ACA6 = {
CreatedOnToolsVersion = 10.3;
TestTargetID = 26DF66D3233136460076ACA6;
};
};
};
buildConfigurationList = 26DF66CF233136460076ACA6 /* Build configuration list for PBXProject "IOSFullScreen" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 26DF66CB233136450076ACA6;
productRefGroup = 26DF66D5233136460076ACA6 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
26DF66D3233136460076ACA6 /* IOSFullScreen */,
26DF66E7233136470076ACA6 /* IOSFullScreenTests */,
26DF66F2233136470076ACA6 /* IOSFullScreenUITests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
26DF66D2233136460076ACA6 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
26DF66E2233136470076ACA6 /* LaunchScreen.storyboard in Resources */,
26DF66DF233136470076ACA6 /* Assets.xcassets in Resources */,
26DF66DD233136460076ACA6 /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
26DF66E6233136470076ACA6 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
26DF66F1233136470076ACA6 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
06E395B0ACB759F609260858 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-IOSFullScreenTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
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;
};
0BF3AED57F87BA9DB9D32908 /* [CP-User] Run Flutter Build Script */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${SRCROOT}/../flutter_module/.metadata",
"${SRCROOT}/../flutter_module/.ios/Flutter/App.framework/App",
"${SRCROOT}/../flutter_module/.ios/Flutter/engine/Flutter.framework/Flutter",
"${SRCROOT}/../flutter_module/.ios/Flutter/flutter_export_environment.sh",
);
name = "[CP-User] Run Flutter Build Script";
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\nset -u\nsource \"${SRCROOT}/../flutter_module/.ios/Flutter/flutter_export_environment.sh\"\n\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/xcode_backend.sh build";
};
9AB0355F19DEFA7A4ECCC777 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-IOSFullScreen-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
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;
};
C73209EF6AC199B8584ED9E2 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-IOSFullScreenUITests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
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;
};
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 */
/* Begin PBXSourcesBuildPhase section */
26DF66D0233136460076ACA6 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
26DF66DA233136460076ACA6 /* ViewController.swift in Sources */,
26DF66D8233136460076ACA6 /* AppDelegate.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
26DF66E4233136470076ACA6 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
26DF66ED233136470076ACA6 /* IOSFullScreenTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
26DF66EF233136470076ACA6 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
26DF66F8233136470076ACA6 /* IOSFullScreenUITests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
26DF66EA233136470076ACA6 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 26DF66D3233136460076ACA6 /* IOSFullScreen */;
targetProxy = 26DF66E9233136470076ACA6 /* PBXContainerItemProxy */;
};
26DF66F5233136470076ACA6 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 26DF66D3233136460076ACA6 /* IOSFullScreen */;
targetProxy = 26DF66F4233136470076ACA6 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
26DF66DB233136460076ACA6 /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
26DF66DC233136460076ACA6 /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
26DF66E0233136470076ACA6 /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
26DF66E1233136470076ACA6 /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
26DF66FA233136470076ACA6 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
26DF66FB233136470076ACA6 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
26DF66FD233136470076ACA6 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = F3E00AFDA1215B19C1529F65 /* Pods-IOSFullScreen.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = IOSFullScreen/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.example.IOSFullScreen;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
26DF66FE233136470076ACA6 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 750B863A0BD89C42022775B7 /* Pods-IOSFullScreen.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = IOSFullScreen/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.example.IOSFullScreen;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
26DF6700233136470076ACA6 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = AEC2707B63771A7B5BCBA3BA /* Pods-IOSFullScreenTests.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = IOSFullScreenTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.example.IOSFullScreenTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/IOSFullScreen.app/IOSFullScreen";
};
name = Debug;
};
26DF6701233136470076ACA6 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 50F0D2063E957E2CFB3FC613 /* Pods-IOSFullScreenTests.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = IOSFullScreenTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.example.IOSFullScreenTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/IOSFullScreen.app/IOSFullScreen";
};
name = Release;
};
26DF6703233136470076ACA6 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 17D7E4C45A10187E410660B5 /* Pods-IOSFullScreenUITests.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = IOSFullScreenUITests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.example.IOSFullScreenUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_TARGET_NAME = IOSFullScreen;
};
name = Debug;
};
26DF6704233136470076ACA6 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7030247FF147F5595C8471BF /* Pods-IOSFullScreenUITests.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
INFOPLIST_FILE = IOSFullScreenUITests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.example.IOSFullScreenUITests;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_TARGET_NAME = IOSFullScreen;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
26DF66CF233136460076ACA6 /* Build configuration list for PBXProject "IOSFullScreen" */ = {
isa = XCConfigurationList;
buildConfigurations = (
26DF66FA233136470076ACA6 /* Debug */,
26DF66FB233136470076ACA6 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
26DF66FC233136470076ACA6 /* Build configuration list for PBXNativeTarget "IOSFullScreen" */ = {
isa = XCConfigurationList;
buildConfigurations = (
26DF66FD233136470076ACA6 /* Debug */,
26DF66FE233136470076ACA6 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
26DF66FF233136470076ACA6 /* Build configuration list for PBXNativeTarget "IOSFullScreenTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
26DF6700233136470076ACA6 /* Debug */,
26DF6701233136470076ACA6 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
26DF6702233136470076ACA6 /* Build configuration list for PBXNativeTarget "IOSFullScreenUITests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
26DF6703233136470076ACA6 /* Debug */,
26DF6704233136470076ACA6 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 26DF66CC233136450076ACA6 /* Project object */;
}

@ -2,6 +2,6 @@
<Workspace <Workspace
version = "1.0"> version = "1.0">
<FileRef <FileRef
location = "self:SimpleIOSExample.xcodeproj"> location = "self:IOSFullScreen.xcodeproj">
</FileRef> </FileRef>
</Workspace> </Workspace>

@ -2,7 +2,7 @@
<Workspace <Workspace
version = "1.0"> version = "1.0">
<FileRef <FileRef
location = "group:SimpleIOSExample.xcodeproj"> location = "group:IOSFullScreen.xcodeproj">
</FileRef> </FileRef>
<FileRef <FileRef
location = "group:Pods/Pods.xcodeproj"> location = "group:Pods/Pods.xcodeproj">

@ -7,15 +7,15 @@ import Flutter
@UIApplicationMain @UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate { class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow? var window: UIWindow?
var flutterEngine : FlutterEngine?; var flutterEngine : FlutterEngine?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
self.flutterEngine = FlutterEngine(name: "io.flutter", project: nil); // Instantiate Flutter engine
self.flutterEngine?.run(withEntrypoint: nil); self.flutterEngine = FlutterEngine(name: "io.flutter", project: nil)
self.flutterEngine?.run(withEntrypoint: nil)
return true return true
} }
} }

@ -13,23 +13,23 @@
<!--View Controller--> <!--View Controller-->
<scene sceneID="tne-QT-ifu"> <scene sceneID="tne-QT-ifu">
<objects> <objects>
<viewController id="BYZ-38-t0r" customClass="ViewController" customModule="SimpleIOSExample" customModuleProvider="target" sceneMemberID="viewController"> <viewController id="BYZ-38-t0r" customClass="ViewController" customModule="IOSFullScreen" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC"> <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/> <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Cha-dF-ymy"> <button opaque="NO" contentMode="scaleToFill" misplaced="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Cnf-d3-wlx">
<rect key="frame" x="63.5" y="433" width="287" height="30"/> <rect key="frame" x="105" y="432" width="204" height="30"/>
<state key="normal" title="Tap me to launch a Flutter View Controller"/> <state key="normal" title="Launch Flutter ViewController"/>
<connections> <connections>
<action selector="buttonWasTapped:" destination="BYZ-38-t0r" eventType="primaryActionTriggered" id="GLf-oY-4ya"/> <action selector="buttonWasTapped:" destination="BYZ-38-t0r" eventType="primaryActionTriggered" id="yLP-26-wPf"/>
</connections> </connections>
</button> </button>
</subviews> </subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints> <constraints>
<constraint firstItem="Cha-dF-ymy" firstAttribute="centerY" secondItem="8bC-Xf-vdC" secondAttribute="centerY" id="uZ5-CP-pGV"/> <constraint firstItem="Cnf-d3-wlx" firstAttribute="centerY" secondItem="8bC-Xf-vdC" secondAttribute="centerY" id="IZY-8s-o5L"/>
<constraint firstItem="Cha-dF-ymy" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="znS-vE-sO1"/> <constraint firstItem="Cnf-d3-wlx" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="ofh-fr-CHR"/>
</constraints> </constraints>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/> <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
</view> </view>

@ -6,10 +6,10 @@ import UIKit
import Flutter import Flutter
class ViewController: UIViewController { class ViewController: UIViewController {
@IBAction func buttonWasTapped(_ sender: Any) { @IBAction func buttonWasTapped(_ sender: Any) {
let flutterEngine = (UIApplication.shared.delegate as? AppDelegate)?.flutterEngine; let flutterEngine = (UIApplication.shared.delegate as? AppDelegate)?.flutterEngine
let flutterViewController = FlutterViewController(engine: flutterEngine, nibName: nil, bundle: nil)!; let flutterViewController = FlutterViewController(engine: flutterEngine, nibName: nil, bundle: nil)!
self.present(flutterViewController, animated: false, completion: nil) self.present(flutterViewController, animated: false, completion: nil)
} }
} }

@ -3,9 +3,9 @@
// found in the LICENSE file. // found in the LICENSE file.
import XCTest import XCTest
@testable import SimpleIOSExample @testable import IOSFullScreen
class SimpleIOSExampleTests: XCTestCase { class IOSFullScreenTests: XCTestCase {
override func setUp() { override func setUp() {
// Put setup code here. This method is called before the invocation of each test method in the class. // Put setup code here. This method is called before the invocation of each test method in the class.

@ -4,7 +4,7 @@
import XCTest import XCTest
class SimpleIOSExampleUITests: XCTestCase { class IOSFullScreenUITests: XCTestCase {
override func setUp() { override func setUp() {
// Put setup code here. This method is called before the invocation of each test method in the class. // Put setup code here. This method is called before the invocation of each test method in the class.

@ -1,25 +1,22 @@
# 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'
# These three lines add the dependencies for example_module to the workspace flutter_application_path = '../flutter_module'
# for the project:
flutter_application_path = '../example_module'
`pushd "#{flutter_application_path}" && flutter create . && popd`
load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb') load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')
target 'SimpleIOSExample' do target 'IOSFullScreen' do
# Comment the next line if you don't want to use dynamic frameworks # Comment the next line if you don't want to use dynamic frameworks
use_frameworks! use_frameworks!
# Pods for SimpleIOSExample # Pods for IOSFullScreen
install_all_flutter_pods(flutter_application_path) install_all_flutter_pods(flutter_application_path)
target 'SimpleIOSExampleTests' do target 'IOSFullScreenTests' do
inherit! :search_paths inherit! :search_paths
# Pods for testing # Pods for testing
end end
target 'SimpleIOSExampleUITests' do target 'IOSFullScreenUITests' do
inherit! :search_paths inherit! :search_paths
# Pods for testing # Pods for testing
end end

@ -0,0 +1,28 @@
PODS:
- Flutter (1.0.0)
- flutter_module (0.0.1):
- Flutter
- FlutterPluginRegistrant (0.0.1):
- Flutter
DEPENDENCIES:
- Flutter (from `../flutter_module/.ios/Flutter/engine`)
- flutter_module (from `../flutter_module/.ios/Flutter`)
- FlutterPluginRegistrant (from `../flutter_module/.ios/Flutter/FlutterPluginRegistrant`)
EXTERNAL SOURCES:
Flutter:
:path: "../flutter_module/.ios/Flutter/engine"
flutter_module:
:path: "../flutter_module/.ios/Flutter"
FlutterPluginRegistrant:
:path: "../flutter_module/.ios/Flutter/FlutterPluginRegistrant"
SPEC CHECKSUMS:
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
flutter_module: 37f078337caf8acad3074374a49bf81442fd3e07
FlutterPluginRegistrant: d59dd07dd90e9c6430996073575a5bd1ea19677e
PODFILE CHECKSUM: 3a2cacb59163f4a25654a84fcd92b179f682c008
COCOAPODS: 1.7.5
Loading…
Cancel
Save