creativecreatorormaybenot
Committed by GitHub

Integrate macOS (#87)

* Integrate macOS

* Add macOS to example

* Update specs

* Add back configs

* Remove changelog entry
Showing 48 changed files with 1503 additions and 164 deletions
1 -# Miscellaneous  
2 -*.class  
3 -*.log  
4 -*.pyc  
5 -*.swp  
6 .DS_Store 1 .DS_Store
7 .atom/ 2 .atom/
8 -.buildlog/  
9 -.history  
10 -.svn/  
11 -.metadata  
12 -  
13 -# IntelliJ related  
14 -*.iml  
15 -*.ipr  
16 -*.iws  
17 .idea/ 3 .idea/
  4 +.vscode/
18 5
19 -# The .vscode folder contains launch configuration and tasks you configure in  
20 -# VS Code which you may wish to be included in version control, so this line  
21 -# is commented out by default.  
22 -#.vscode/  
23 -  
24 -# Flutter/Dart/Pub related  
25 -**/doc/api/  
26 -.dart_tool/  
27 -.flutter-plugins  
28 -.flutter-plugins-dependencies  
29 .packages 6 .packages
30 -.pub-cache/  
31 .pub/ 7 .pub/
32 -build/ 8 +.dart_tool/
33 pubspec.lock 9 pubspec.lock
  10 +flutter_export_environment.sh
  11 +
  12 +Podfile
  13 +Podfile.lock
  14 +Pods/
  15 +.symlinks/
  16 +**/Flutter/App.framework/
  17 +**/Flutter/ephemeral/
  18 +**/Flutter/Flutter.framework/
  19 +**/Flutter/Generated.xcconfig
  20 +**/Flutter/flutter_assets/
34 21
35 -# Android related  
36 -**/android/**/gradle-wrapper.jar  
37 -**/android/.gradle  
38 -**/android/captures/  
39 -**/android/gradlew  
40 -**/android/gradlew.bat  
41 -**/android/local.properties  
42 -**/android/**/GeneratedPluginRegistrant.java 22 +ServiceDefinitions.json
  23 +xcuserdata/
  24 +**/DerivedData/
43 25
44 -# iOS/XCode related  
45 -**/ios/**/*.mode1v3  
46 -**/ios/**/*.mode2v3  
47 -**/ios/**/*.moved-aside  
48 -**/ios/**/*.pbxuser  
49 -**/ios/**/*.perspectivev3  
50 -**/ios/**/*sync/  
51 -**/ios/**/.sconsign.dblite  
52 -**/ios/**/.tags*  
53 -**/ios/**/.vagrant/  
54 -**/ios/**/DerivedData/  
55 -**/ios/**/Icon?  
56 -**/ios/**/Pods/  
57 -**/ios/**/.symlinks/  
58 -**/ios/**/profile  
59 -**/ios/**/xcuserdata  
60 -**/ios/.generated/  
61 -**/ios/Flutter/App.framework  
62 -**/ios/Flutter/Flutter.framework  
63 -**/ios/Flutter/Flutter.podspec  
64 -**/ios/Flutter/Generated.xcconfig  
65 -**/ios/Flutter/app.flx  
66 -**/ios/Flutter/app.zip  
67 -**/ios/Flutter/flutter_assets/  
68 -**/ios/Flutter/flutter_export_environment.sh  
69 -**/ios/ServiceDefinitions.json  
70 -**/ios/Runner/GeneratedPluginRegistrant.* 26 +local.properties
  27 +keystore.propertie
  28 +.gradle/
  29 +gradlew
  30 +gradlew.bat
  31 +gradle-wrapper.jar
  32 +.flutter-plugins-dependencies
  33 +*.iml
  34 +
  35 +**/generated_plugin_registrant.dart
  36 +**/GeneratedPluginRegistrant.h
  37 +**/GeneratedPluginRegistrant.m
  38 +**/generated_plugin_registrant.cc
  39 +**/GeneratedPluginRegistrant.java
  40 +**/GeneratedPluginRegistrant.swift
  41 +build/
  42 +.flutter-plugins
71 43
72 -# Exceptions to above rules.  
73 -!**/ios/**/default.mode1v3  
74 -!**/ios/**/default.mode2v3  
75 -!**/ios/**/default.pbxuser  
76 -!**/ios/**/default.perspectivev3 44 +.project
  45 +.classpath
  46 +.settings
@@ -9,9 +9,9 @@ Wakelock is Flutter plugin that allows you to keep the device screen awake, i.e. @@ -9,9 +9,9 @@ Wakelock is Flutter plugin that allows you to keep the device screen awake, i.e.
9 | Android | ✅ | 9 | Android | ✅ |
10 | iOS | ✅ | 10 | iOS | ✅ |
11 | Web | ✅ | 11 | Web | ✅ |
12 -| macOS | ⚒ work in progress |  
13 -| Windows | ❎ planned |  
14 -| Linux | ❎ planned | 12 +| macOS | ✅ |
  13 +| Windows | planned |
  14 +| Linux | planned |
15 15
16 ## Getting started 16 ## Getting started
17 17
@@ -29,6 +29,7 @@ The packages in this repo are the following: @@ -29,6 +29,7 @@ The packages in this repo are the following:
29 | Package | Implementations | 29 | Package | Implementations |
30 | ------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------- | 30 | ------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------- |
31 | [`wakelock`](https://github.com/creativecreatorormaybenot/wakelock/tree/master/wakelock) | Main plugin package + Android & iOS implementations | 31 | [`wakelock`](https://github.com/creativecreatorormaybenot/wakelock/tree/master/wakelock) | Main plugin package + Android & iOS implementations |
  32 +| [`wakelock_macos`](https://github.com/creativecreatorormaybenot/wakelock/tree/master/wakelock_macos) | macOS implementation |
32 | [`wakelock_platform_interface`](https://github.com/creativecreatorormaybenot/wakelock/tree/master/wakelock_platform_interface) | Basic API definition & message handling | 33 | [`wakelock_platform_interface`](https://github.com/creativecreatorormaybenot/wakelock/tree/master/wakelock_platform_interface) | Basic API definition & message handling |
33 | [`wakelock_web`](https://github.com/creativecreatorormaybenot/wakelock/tree/master/wakelock_web) | Web implementation | 34 | [`wakelock_web`](https://github.com/creativecreatorormaybenot/wakelock/tree/master/wakelock_web) | Web implementation |
34 35
@@ -41,4 +42,5 @@ If you want to contribute to this plugin, follow the [contributing guide](https: @@ -41,4 +42,5 @@ If you want to contribute to this plugin, follow the [contributing guide](https:
41 Originally, this plugin was based on [`screen`](https://pub.dev/packages/screen). 42 Originally, this plugin was based on [`screen`](https://pub.dev/packages/screen).
42 Specifically, the wakelock functionality was extracted into this plugin due to lack of maintenance by the author of the `screen` plugin. 43 Specifically, the wakelock functionality was extracted into this plugin due to lack of maintenance by the author of the `screen` plugin.
43 44
44 -Today, the `wakelock` plugin has been completely refreshed (using latest Flutter standards and platform integration) with added web support. 45 +Today, the `wakelock` plugin has been completely refreshed (using latest Flutter standards and platform integration) with added support
  46 +for web & macOS.
@@ -14,9 +14,9 @@ Essentially, this allows you to keep the device awake, i.e. prevent the device f @@ -14,9 +14,9 @@ Essentially, this allows you to keep the device awake, i.e. prevent the device f
14 | Android | ✅ | 14 | Android | ✅ |
15 | iOS | ✅ | 15 | iOS | ✅ |
16 | Web | ✅ | 16 | Web | ✅ |
17 -| macOS | ⚒ work in progress |  
18 -| Windows | ❎ planned |  
19 -| Linux | ❎ planned | 17 +| macOS | ✅ |
  18 +| Windows | planned |
  19 +| Linux | planned |
20 20
21 ## Usage 21 ## Usage
22 22
  1 +# Flutter-related
  2 +**/Flutter/ephemeral/
  3 +**/Pods/
  4 +
  5 +# Xcode-related
  6 +**/xcuserdata/
  1 +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
  2 +#include "ephemeral/Flutter-Generated.xcconfig"
  1 +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
  2 +#include "ephemeral/Flutter-Generated.xcconfig"
  1 +platform :osx, '10.11'
  2 +
  3 +# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
  4 +ENV['COCOAPODS_DISABLE_STATS'] = 'true'
  5 +
  6 +project 'Runner', {
  7 + 'Debug' => :debug,
  8 + 'Profile' => :release,
  9 + 'Release' => :release,
  10 +}
  11 +
  12 +def flutter_root
  13 + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__)
  14 + unless File.exist?(generated_xcode_build_settings_path)
  15 + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first"
  16 + end
  17 +
  18 + File.foreach(generated_xcode_build_settings_path) do |line|
  19 + matches = line.match(/FLUTTER_ROOT\=(.*)/)
  20 + return matches[1].strip if matches
  21 + end
  22 + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\""
  23 +end
  24 +
  25 +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
  26 +
  27 +flutter_macos_podfile_setup
  28 +
  29 +target 'Runner' do
  30 + use_frameworks!
  31 + use_modular_headers!
  32 +
  33 + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
  34 +end
  35 +
  36 +post_install do |installer|
  37 + installer.pods_project.targets.each do |target|
  38 + flutter_additional_macos_build_settings(target)
  39 + end
  40 +end
  1 +PODS:
  2 + - FlutterMacOS (1.0.0)
  3 + - wakelock_macos (0.0.1):
  4 + - FlutterMacOS
  5 +
  6 +DEPENDENCIES:
  7 + - FlutterMacOS (from `Flutter/ephemeral`)
  8 + - wakelock_macos (from `Flutter/ephemeral/.symlinks/plugins/wakelock_macos/macos`)
  9 +
  10 +EXTERNAL SOURCES:
  11 + FlutterMacOS:
  12 + :path: Flutter/ephemeral
  13 + wakelock_macos:
  14 + :path: Flutter/ephemeral/.symlinks/plugins/wakelock_macos/macos
  15 +
  16 +SPEC CHECKSUMS:
  17 + FlutterMacOS: 57701585bf7de1b3fc2bb61f6378d73bbdea8424
  18 + wakelock_macos: d4628428650258e4b7bcb43458408b2a83385ea1
  19 +
  20 +PODFILE CHECKSUM: 6eac6b3292e5142cfc23bdeb71848a40ec51c14c
  21 +
  22 +COCOAPODS: 1.10.0
  1 +// !$*UTF8*$!
  2 +{
  3 + archiveVersion = 1;
  4 + classes = {
  5 + };
  6 + objectVersion = 51;
  7 + objects = {
  8 +
  9 +/* Begin PBXAggregateTarget section */
  10 + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = {
  11 + isa = PBXAggregateTarget;
  12 + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */;
  13 + buildPhases = (
  14 + 33CC111E2044C6BF0003C045 /* ShellScript */,
  15 + );
  16 + dependencies = (
  17 + );
  18 + name = "Flutter Assemble";
  19 + productName = FLX;
  20 + };
  21 +/* End PBXAggregateTarget section */
  22 +
  23 +/* Begin PBXBuildFile section */
  24 + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
  25 + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
  26 + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
  27 + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
  28 + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
  29 + D40BB558881EF842EDB92060 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1887A3778AE29A57468AF2C8 /* Pods_Runner.framework */; };
  30 +/* End PBXBuildFile section */
  31 +
  32 +/* Begin PBXContainerItemProxy section */
  33 + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {
  34 + isa = PBXContainerItemProxy;
  35 + containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
  36 + proxyType = 1;
  37 + remoteGlobalIDString = 33CC111A2044C6BA0003C045;
  38 + remoteInfo = FLX;
  39 + };
  40 +/* End PBXContainerItemProxy section */
  41 +
  42 +/* Begin PBXCopyFilesBuildPhase section */
  43 + 33CC110E2044A8840003C045 /* Bundle Framework */ = {
  44 + isa = PBXCopyFilesBuildPhase;
  45 + buildActionMask = 2147483647;
  46 + dstPath = "";
  47 + dstSubfolderSpec = 10;
  48 + files = (
  49 + );
  50 + name = "Bundle Framework";
  51 + runOnlyForDeploymentPostprocessing = 0;
  52 + };
  53 +/* End PBXCopyFilesBuildPhase section */
  54 +
  55 +/* Begin PBXFileReference section */
  56 + 03D3C588AD14F7673BF2FA34 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
  57 + 03D6A38ACD433FEB025FC1E8 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
  58 + 1887A3778AE29A57468AF2C8 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
  59 + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
  60 + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
  61 + 33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; };
  62 + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
  63 + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
  64 + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
  65 + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = "<group>"; };
  66 + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = "<group>"; };
  67 + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = "<group>"; };
  68 + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = "<group>"; };
  69 + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = "<group>"; };
  70 + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
  71 + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
  72 + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
  73 + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
  74 + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
  75 + F3170497FD247EDDA3AC01D6 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
  76 +/* End PBXFileReference section */
  77 +
  78 +/* Begin PBXFrameworksBuildPhase section */
  79 + 33CC10EA2044A3C60003C045 /* Frameworks */ = {
  80 + isa = PBXFrameworksBuildPhase;
  81 + buildActionMask = 2147483647;
  82 + files = (
  83 + D40BB558881EF842EDB92060 /* Pods_Runner.framework in Frameworks */,
  84 + );
  85 + runOnlyForDeploymentPostprocessing = 0;
  86 + };
  87 +/* End PBXFrameworksBuildPhase section */
  88 +
  89 +/* Begin PBXGroup section */
  90 + 33BA886A226E78AF003329D5 /* Configs */ = {
  91 + isa = PBXGroup;
  92 + children = (
  93 + 33E5194F232828860026EE4D /* AppInfo.xcconfig */,
  94 + 9740EEB21CF90195004384FC /* Debug.xcconfig */,
  95 + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
  96 + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */,
  97 + );
  98 + path = Configs;
  99 + sourceTree = "<group>";
  100 + };
  101 + 33CC10E42044A3C60003C045 = {
  102 + isa = PBXGroup;
  103 + children = (
  104 + 33FAB671232836740065AC1E /* Runner */,
  105 + 33CEB47122A05771004F2AC0 /* Flutter */,
  106 + 33CC10EE2044A3C60003C045 /* Products */,
  107 + D73912EC22F37F3D000D13A0 /* Frameworks */,
  108 + E9E8FA9520AA6CB568E27DD0 /* Pods */,
  109 + );
  110 + sourceTree = "<group>";
  111 + };
  112 + 33CC10EE2044A3C60003C045 /* Products */ = {
  113 + isa = PBXGroup;
  114 + children = (
  115 + 33CC10ED2044A3C60003C045 /* example.app */,
  116 + );
  117 + name = Products;
  118 + sourceTree = "<group>";
  119 + };
  120 + 33CC11242044D66E0003C045 /* Resources */ = {
  121 + isa = PBXGroup;
  122 + children = (
  123 + 33CC10F22044A3C60003C045 /* Assets.xcassets */,
  124 + 33CC10F42044A3C60003C045 /* MainMenu.xib */,
  125 + 33CC10F72044A3C60003C045 /* Info.plist */,
  126 + );
  127 + name = Resources;
  128 + path = ..;
  129 + sourceTree = "<group>";
  130 + };
  131 + 33CEB47122A05771004F2AC0 /* Flutter */ = {
  132 + isa = PBXGroup;
  133 + children = (
  134 + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,
  135 + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
  136 + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
  137 + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,
  138 + );
  139 + path = Flutter;
  140 + sourceTree = "<group>";
  141 + };
  142 + 33FAB671232836740065AC1E /* Runner */ = {
  143 + isa = PBXGroup;
  144 + children = (
  145 + 33CC10F02044A3C60003C045 /* AppDelegate.swift */,
  146 + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */,
  147 + 33E51913231747F40026EE4D /* DebugProfile.entitlements */,
  148 + 33E51914231749380026EE4D /* Release.entitlements */,
  149 + 33CC11242044D66E0003C045 /* Resources */,
  150 + 33BA886A226E78AF003329D5 /* Configs */,
  151 + );
  152 + path = Runner;
  153 + sourceTree = "<group>";
  154 + };
  155 + D73912EC22F37F3D000D13A0 /* Frameworks */ = {
  156 + isa = PBXGroup;
  157 + children = (
  158 + 1887A3778AE29A57468AF2C8 /* Pods_Runner.framework */,
  159 + );
  160 + name = Frameworks;
  161 + sourceTree = "<group>";
  162 + };
  163 + E9E8FA9520AA6CB568E27DD0 /* Pods */ = {
  164 + isa = PBXGroup;
  165 + children = (
  166 + F3170497FD247EDDA3AC01D6 /* Pods-Runner.debug.xcconfig */,
  167 + 03D6A38ACD433FEB025FC1E8 /* Pods-Runner.release.xcconfig */,
  168 + 03D3C588AD14F7673BF2FA34 /* Pods-Runner.profile.xcconfig */,
  169 + );
  170 + name = Pods;
  171 + path = Pods;
  172 + sourceTree = "<group>";
  173 + };
  174 +/* End PBXGroup section */
  175 +
  176 +/* Begin PBXNativeTarget section */
  177 + 33CC10EC2044A3C60003C045 /* Runner */ = {
  178 + isa = PBXNativeTarget;
  179 + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
  180 + buildPhases = (
  181 + CC10C38CDFFC4919C6D9EB92 /* [CP] Check Pods Manifest.lock */,
  182 + 33CC10E92044A3C60003C045 /* Sources */,
  183 + 33CC10EA2044A3C60003C045 /* Frameworks */,
  184 + 33CC10EB2044A3C60003C045 /* Resources */,
  185 + 33CC110E2044A8840003C045 /* Bundle Framework */,
  186 + 3399D490228B24CF009A79C7 /* ShellScript */,
  187 + B9F130C126A9699CED8A0F94 /* [CP] Embed Pods Frameworks */,
  188 + );
  189 + buildRules = (
  190 + );
  191 + dependencies = (
  192 + 33CC11202044C79F0003C045 /* PBXTargetDependency */,
  193 + );
  194 + name = Runner;
  195 + productName = Runner;
  196 + productReference = 33CC10ED2044A3C60003C045 /* example.app */;
  197 + productType = "com.apple.product-type.application";
  198 + };
  199 +/* End PBXNativeTarget section */
  200 +
  201 +/* Begin PBXProject section */
  202 + 33CC10E52044A3C60003C045 /* Project object */ = {
  203 + isa = PBXProject;
  204 + attributes = {
  205 + LastSwiftUpdateCheck = 0920;
  206 + LastUpgradeCheck = 0930;
  207 + ORGANIZATIONNAME = "";
  208 + TargetAttributes = {
  209 + 33CC10EC2044A3C60003C045 = {
  210 + CreatedOnToolsVersion = 9.2;
  211 + LastSwiftMigration = 1100;
  212 + ProvisioningStyle = Automatic;
  213 + SystemCapabilities = {
  214 + com.apple.Sandbox = {
  215 + enabled = 1;
  216 + };
  217 + };
  218 + };
  219 + 33CC111A2044C6BA0003C045 = {
  220 + CreatedOnToolsVersion = 9.2;
  221 + ProvisioningStyle = Manual;
  222 + };
  223 + };
  224 + };
  225 + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */;
  226 + compatibilityVersion = "Xcode 9.3";
  227 + developmentRegion = en;
  228 + hasScannedForEncodings = 0;
  229 + knownRegions = (
  230 + en,
  231 + Base,
  232 + );
  233 + mainGroup = 33CC10E42044A3C60003C045;
  234 + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */;
  235 + projectDirPath = "";
  236 + projectRoot = "";
  237 + targets = (
  238 + 33CC10EC2044A3C60003C045 /* Runner */,
  239 + 33CC111A2044C6BA0003C045 /* Flutter Assemble */,
  240 + );
  241 + };
  242 +/* End PBXProject section */
  243 +
  244 +/* Begin PBXResourcesBuildPhase section */
  245 + 33CC10EB2044A3C60003C045 /* Resources */ = {
  246 + isa = PBXResourcesBuildPhase;
  247 + buildActionMask = 2147483647;
  248 + files = (
  249 + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */,
  250 + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */,
  251 + );
  252 + runOnlyForDeploymentPostprocessing = 0;
  253 + };
  254 +/* End PBXResourcesBuildPhase section */
  255 +
  256 +/* Begin PBXShellScriptBuildPhase section */
  257 + 3399D490228B24CF009A79C7 /* ShellScript */ = {
  258 + isa = PBXShellScriptBuildPhase;
  259 + buildActionMask = 2147483647;
  260 + files = (
  261 + );
  262 + inputFileListPaths = (
  263 + );
  264 + inputPaths = (
  265 + );
  266 + outputFileListPaths = (
  267 + );
  268 + outputPaths = (
  269 + );
  270 + runOnlyForDeploymentPostprocessing = 0;
  271 + shellPath = /bin/sh;
  272 + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n";
  273 + };
  274 + 33CC111E2044C6BF0003C045 /* ShellScript */ = {
  275 + isa = PBXShellScriptBuildPhase;
  276 + buildActionMask = 2147483647;
  277 + files = (
  278 + );
  279 + inputFileListPaths = (
  280 + Flutter/ephemeral/FlutterInputs.xcfilelist,
  281 + );
  282 + inputPaths = (
  283 + Flutter/ephemeral/tripwire,
  284 + );
  285 + outputFileListPaths = (
  286 + Flutter/ephemeral/FlutterOutputs.xcfilelist,
  287 + );
  288 + outputPaths = (
  289 + );
  290 + runOnlyForDeploymentPostprocessing = 0;
  291 + shellPath = /bin/sh;
  292 + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
  293 + };
  294 + B9F130C126A9699CED8A0F94 /* [CP] Embed Pods Frameworks */ = {
  295 + isa = PBXShellScriptBuildPhase;
  296 + buildActionMask = 2147483647;
  297 + files = (
  298 + );
  299 + inputFileListPaths = (
  300 + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
  301 + );
  302 + name = "[CP] Embed Pods Frameworks";
  303 + outputFileListPaths = (
  304 + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
  305 + );
  306 + runOnlyForDeploymentPostprocessing = 0;
  307 + shellPath = /bin/sh;
  308 + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
  309 + showEnvVarsInLog = 0;
  310 + };
  311 + CC10C38CDFFC4919C6D9EB92 /* [CP] Check Pods Manifest.lock */ = {
  312 + isa = PBXShellScriptBuildPhase;
  313 + buildActionMask = 2147483647;
  314 + files = (
  315 + );
  316 + inputFileListPaths = (
  317 + );
  318 + inputPaths = (
  319 + "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
  320 + "${PODS_ROOT}/Manifest.lock",
  321 + );
  322 + name = "[CP] Check Pods Manifest.lock";
  323 + outputFileListPaths = (
  324 + );
  325 + outputPaths = (
  326 + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
  327 + );
  328 + runOnlyForDeploymentPostprocessing = 0;
  329 + shellPath = /bin/sh;
  330 + 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";
  331 + showEnvVarsInLog = 0;
  332 + };
  333 +/* End PBXShellScriptBuildPhase section */
  334 +
  335 +/* Begin PBXSourcesBuildPhase section */
  336 + 33CC10E92044A3C60003C045 /* Sources */ = {
  337 + isa = PBXSourcesBuildPhase;
  338 + buildActionMask = 2147483647;
  339 + files = (
  340 + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */,
  341 + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */,
  342 + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */,
  343 + );
  344 + runOnlyForDeploymentPostprocessing = 0;
  345 + };
  346 +/* End PBXSourcesBuildPhase section */
  347 +
  348 +/* Begin PBXTargetDependency section */
  349 + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = {
  350 + isa = PBXTargetDependency;
  351 + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;
  352 + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */;
  353 + };
  354 +/* End PBXTargetDependency section */
  355 +
  356 +/* Begin PBXVariantGroup section */
  357 + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = {
  358 + isa = PBXVariantGroup;
  359 + children = (
  360 + 33CC10F52044A3C60003C045 /* Base */,
  361 + );
  362 + name = MainMenu.xib;
  363 + path = Runner;
  364 + sourceTree = "<group>";
  365 + };
  366 +/* End PBXVariantGroup section */
  367 +
  368 +/* Begin XCBuildConfiguration section */
  369 + 338D0CE9231458BD00FA5F75 /* Profile */ = {
  370 + isa = XCBuildConfiguration;
  371 + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
  372 + buildSettings = {
  373 + ALWAYS_SEARCH_USER_PATHS = NO;
  374 + CLANG_ANALYZER_NONNULL = YES;
  375 + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
  376 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
  377 + CLANG_CXX_LIBRARY = "libc++";
  378 + CLANG_ENABLE_MODULES = YES;
  379 + CLANG_ENABLE_OBJC_ARC = YES;
  380 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  381 + CLANG_WARN_BOOL_CONVERSION = YES;
  382 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  383 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  384 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  385 + CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
  386 + CLANG_WARN_EMPTY_BODY = YES;
  387 + CLANG_WARN_ENUM_CONVERSION = YES;
  388 + CLANG_WARN_INFINITE_RECURSION = YES;
  389 + CLANG_WARN_INT_CONVERSION = YES;
  390 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  391 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  392 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  393 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  394 + CLANG_WARN_SUSPICIOUS_MOVE = YES;
  395 + CODE_SIGN_IDENTITY = "-";
  396 + COPY_PHASE_STRIP = NO;
  397 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
  398 + ENABLE_NS_ASSERTIONS = NO;
  399 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  400 + GCC_C_LANGUAGE_STANDARD = gnu11;
  401 + GCC_NO_COMMON_BLOCKS = YES;
  402 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  403 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  404 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  405 + GCC_WARN_UNUSED_FUNCTION = YES;
  406 + GCC_WARN_UNUSED_VARIABLE = YES;
  407 + MACOSX_DEPLOYMENT_TARGET = 10.11;
  408 + MTL_ENABLE_DEBUG_INFO = NO;
  409 + SDKROOT = macosx;
  410 + SWIFT_COMPILATION_MODE = wholemodule;
  411 + SWIFT_OPTIMIZATION_LEVEL = "-O";
  412 + };
  413 + name = Profile;
  414 + };
  415 + 338D0CEA231458BD00FA5F75 /* Profile */ = {
  416 + isa = XCBuildConfiguration;
  417 + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
  418 + buildSettings = {
  419 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  420 + CLANG_ENABLE_MODULES = YES;
  421 + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
  422 + CODE_SIGN_STYLE = Automatic;
  423 + COMBINE_HIDPI_IMAGES = YES;
  424 + INFOPLIST_FILE = Runner/Info.plist;
  425 + LD_RUNPATH_SEARCH_PATHS = (
  426 + "$(inherited)",
  427 + "@executable_path/../Frameworks",
  428 + );
  429 + PROVISIONING_PROFILE_SPECIFIER = "";
  430 + SWIFT_VERSION = 5.0;
  431 + };
  432 + name = Profile;
  433 + };
  434 + 338D0CEB231458BD00FA5F75 /* Profile */ = {
  435 + isa = XCBuildConfiguration;
  436 + buildSettings = {
  437 + CODE_SIGN_STYLE = Manual;
  438 + PRODUCT_NAME = "$(TARGET_NAME)";
  439 + };
  440 + name = Profile;
  441 + };
  442 + 33CC10F92044A3C60003C045 /* Debug */ = {
  443 + isa = XCBuildConfiguration;
  444 + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
  445 + buildSettings = {
  446 + ALWAYS_SEARCH_USER_PATHS = NO;
  447 + CLANG_ANALYZER_NONNULL = YES;
  448 + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
  449 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
  450 + CLANG_CXX_LIBRARY = "libc++";
  451 + CLANG_ENABLE_MODULES = YES;
  452 + CLANG_ENABLE_OBJC_ARC = YES;
  453 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  454 + CLANG_WARN_BOOL_CONVERSION = YES;
  455 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  456 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  457 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  458 + CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
  459 + CLANG_WARN_EMPTY_BODY = YES;
  460 + CLANG_WARN_ENUM_CONVERSION = YES;
  461 + CLANG_WARN_INFINITE_RECURSION = YES;
  462 + CLANG_WARN_INT_CONVERSION = YES;
  463 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  464 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  465 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  466 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  467 + CLANG_WARN_SUSPICIOUS_MOVE = YES;
  468 + CODE_SIGN_IDENTITY = "-";
  469 + COPY_PHASE_STRIP = NO;
  470 + DEBUG_INFORMATION_FORMAT = dwarf;
  471 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  472 + ENABLE_TESTABILITY = YES;
  473 + GCC_C_LANGUAGE_STANDARD = gnu11;
  474 + GCC_DYNAMIC_NO_PIC = NO;
  475 + GCC_NO_COMMON_BLOCKS = YES;
  476 + GCC_OPTIMIZATION_LEVEL = 0;
  477 + GCC_PREPROCESSOR_DEFINITIONS = (
  478 + "DEBUG=1",
  479 + "$(inherited)",
  480 + );
  481 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  482 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  483 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  484 + GCC_WARN_UNUSED_FUNCTION = YES;
  485 + GCC_WARN_UNUSED_VARIABLE = YES;
  486 + MACOSX_DEPLOYMENT_TARGET = 10.11;
  487 + MTL_ENABLE_DEBUG_INFO = YES;
  488 + ONLY_ACTIVE_ARCH = YES;
  489 + SDKROOT = macosx;
  490 + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
  491 + SWIFT_OPTIMIZATION_LEVEL = "-Onone";
  492 + };
  493 + name = Debug;
  494 + };
  495 + 33CC10FA2044A3C60003C045 /* Release */ = {
  496 + isa = XCBuildConfiguration;
  497 + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
  498 + buildSettings = {
  499 + ALWAYS_SEARCH_USER_PATHS = NO;
  500 + CLANG_ANALYZER_NONNULL = YES;
  501 + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
  502 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
  503 + CLANG_CXX_LIBRARY = "libc++";
  504 + CLANG_ENABLE_MODULES = YES;
  505 + CLANG_ENABLE_OBJC_ARC = YES;
  506 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  507 + CLANG_WARN_BOOL_CONVERSION = YES;
  508 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  509 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  510 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  511 + CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
  512 + CLANG_WARN_EMPTY_BODY = YES;
  513 + CLANG_WARN_ENUM_CONVERSION = YES;
  514 + CLANG_WARN_INFINITE_RECURSION = YES;
  515 + CLANG_WARN_INT_CONVERSION = YES;
  516 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  517 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  518 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  519 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  520 + CLANG_WARN_SUSPICIOUS_MOVE = YES;
  521 + CODE_SIGN_IDENTITY = "-";
  522 + COPY_PHASE_STRIP = NO;
  523 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
  524 + ENABLE_NS_ASSERTIONS = NO;
  525 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  526 + GCC_C_LANGUAGE_STANDARD = gnu11;
  527 + GCC_NO_COMMON_BLOCKS = YES;
  528 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  529 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  530 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  531 + GCC_WARN_UNUSED_FUNCTION = YES;
  532 + GCC_WARN_UNUSED_VARIABLE = YES;
  533 + MACOSX_DEPLOYMENT_TARGET = 10.11;
  534 + MTL_ENABLE_DEBUG_INFO = NO;
  535 + SDKROOT = macosx;
  536 + SWIFT_COMPILATION_MODE = wholemodule;
  537 + SWIFT_OPTIMIZATION_LEVEL = "-O";
  538 + };
  539 + name = Release;
  540 + };
  541 + 33CC10FC2044A3C60003C045 /* Debug */ = {
  542 + isa = XCBuildConfiguration;
  543 + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
  544 + buildSettings = {
  545 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  546 + CLANG_ENABLE_MODULES = YES;
  547 + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
  548 + CODE_SIGN_STYLE = Automatic;
  549 + COMBINE_HIDPI_IMAGES = YES;
  550 + INFOPLIST_FILE = Runner/Info.plist;
  551 + LD_RUNPATH_SEARCH_PATHS = (
  552 + "$(inherited)",
  553 + "@executable_path/../Frameworks",
  554 + );
  555 + PROVISIONING_PROFILE_SPECIFIER = "";
  556 + SWIFT_OPTIMIZATION_LEVEL = "-Onone";
  557 + SWIFT_VERSION = 5.0;
  558 + };
  559 + name = Debug;
  560 + };
  561 + 33CC10FD2044A3C60003C045 /* Release */ = {
  562 + isa = XCBuildConfiguration;
  563 + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
  564 + buildSettings = {
  565 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  566 + CLANG_ENABLE_MODULES = YES;
  567 + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
  568 + CODE_SIGN_STYLE = Automatic;
  569 + COMBINE_HIDPI_IMAGES = YES;
  570 + INFOPLIST_FILE = Runner/Info.plist;
  571 + LD_RUNPATH_SEARCH_PATHS = (
  572 + "$(inherited)",
  573 + "@executable_path/../Frameworks",
  574 + );
  575 + PROVISIONING_PROFILE_SPECIFIER = "";
  576 + SWIFT_VERSION = 5.0;
  577 + };
  578 + name = Release;
  579 + };
  580 + 33CC111C2044C6BA0003C045 /* Debug */ = {
  581 + isa = XCBuildConfiguration;
  582 + buildSettings = {
  583 + CODE_SIGN_STYLE = Manual;
  584 + PRODUCT_NAME = "$(TARGET_NAME)";
  585 + };
  586 + name = Debug;
  587 + };
  588 + 33CC111D2044C6BA0003C045 /* Release */ = {
  589 + isa = XCBuildConfiguration;
  590 + buildSettings = {
  591 + CODE_SIGN_STYLE = Automatic;
  592 + PRODUCT_NAME = "$(TARGET_NAME)";
  593 + };
  594 + name = Release;
  595 + };
  596 +/* End XCBuildConfiguration section */
  597 +
  598 +/* Begin XCConfigurationList section */
  599 + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = {
  600 + isa = XCConfigurationList;
  601 + buildConfigurations = (
  602 + 33CC10F92044A3C60003C045 /* Debug */,
  603 + 33CC10FA2044A3C60003C045 /* Release */,
  604 + 338D0CE9231458BD00FA5F75 /* Profile */,
  605 + );
  606 + defaultConfigurationIsVisible = 0;
  607 + defaultConfigurationName = Release;
  608 + };
  609 + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = {
  610 + isa = XCConfigurationList;
  611 + buildConfigurations = (
  612 + 33CC10FC2044A3C60003C045 /* Debug */,
  613 + 33CC10FD2044A3C60003C045 /* Release */,
  614 + 338D0CEA231458BD00FA5F75 /* Profile */,
  615 + );
  616 + defaultConfigurationIsVisible = 0;
  617 + defaultConfigurationName = Release;
  618 + };
  619 + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = {
  620 + isa = XCConfigurationList;
  621 + buildConfigurations = (
  622 + 33CC111C2044C6BA0003C045 /* Debug */,
  623 + 33CC111D2044C6BA0003C045 /* Release */,
  624 + 338D0CEB231458BD00FA5F75 /* Profile */,
  625 + );
  626 + defaultConfigurationIsVisible = 0;
  627 + defaultConfigurationName = Release;
  628 + };
  629 +/* End XCConfigurationList section */
  630 + };
  631 + rootObject = 33CC10E52044A3C60003C045 /* Project object */;
  632 +}
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>IDEDidComputeMac32BitWarning</key>
  6 + <true/>
  7 +</dict>
  8 +</plist>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "1000"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForTesting = "YES"
  11 + buildForRunning = "YES"
  12 + buildForProfiling = "YES"
  13 + buildForArchiving = "YES"
  14 + buildForAnalyzing = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = "primary"
  17 + BlueprintIdentifier = "33CC10EC2044A3C60003C045"
  18 + BuildableName = "example.app"
  19 + BlueprintName = "Runner"
  20 + ReferencedContainer = "container:Runner.xcodeproj">
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + buildConfiguration = "Debug"
  27 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  28 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  29 + shouldUseLaunchSchemeArgsEnv = "YES">
  30 + <MacroExpansion>
  31 + <BuildableReference
  32 + BuildableIdentifier = "primary"
  33 + BlueprintIdentifier = "33CC10EC2044A3C60003C045"
  34 + BuildableName = "example.app"
  35 + BlueprintName = "Runner"
  36 + ReferencedContainer = "container:Runner.xcodeproj">
  37 + </BuildableReference>
  38 + </MacroExpansion>
  39 + <AdditionalOptions>
  40 + </AdditionalOptions>
  41 + </TestAction>
  42 + <LaunchAction
  43 + buildConfiguration = "Debug"
  44 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  45 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  46 + launchStyle = "0"
  47 + useCustomWorkingDirectory = "NO"
  48 + ignoresPersistentStateOnLaunch = "NO"
  49 + debugDocumentVersioning = "YES"
  50 + debugServiceExtension = "internal"
  51 + allowLocationSimulation = "YES">
  52 + <BuildableProductRunnable
  53 + runnableDebuggingMode = "0">
  54 + <BuildableReference
  55 + BuildableIdentifier = "primary"
  56 + BlueprintIdentifier = "33CC10EC2044A3C60003C045"
  57 + BuildableName = "example.app"
  58 + BlueprintName = "Runner"
  59 + ReferencedContainer = "container:Runner.xcodeproj">
  60 + </BuildableReference>
  61 + </BuildableProductRunnable>
  62 + <AdditionalOptions>
  63 + </AdditionalOptions>
  64 + </LaunchAction>
  65 + <ProfileAction
  66 + buildConfiguration = "Profile"
  67 + shouldUseLaunchSchemeArgsEnv = "YES"
  68 + savedToolIdentifier = ""
  69 + useCustomWorkingDirectory = "NO"
  70 + debugDocumentVersioning = "YES">
  71 + <BuildableProductRunnable
  72 + runnableDebuggingMode = "0">
  73 + <BuildableReference
  74 + BuildableIdentifier = "primary"
  75 + BlueprintIdentifier = "33CC10EC2044A3C60003C045"
  76 + BuildableName = "example.app"
  77 + BlueprintName = "Runner"
  78 + ReferencedContainer = "container:Runner.xcodeproj">
  79 + </BuildableReference>
  80 + </BuildableProductRunnable>
  81 + </ProfileAction>
  82 + <AnalyzeAction
  83 + buildConfiguration = "Debug">
  84 + </AnalyzeAction>
  85 + <ArchiveAction
  86 + buildConfiguration = "Release"
  87 + revealArchiveInOrganizer = "YES">
  88 + </ArchiveAction>
  89 +</Scheme>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Workspace
  3 + version = "1.0">
  4 + <FileRef
  5 + location = "group:Runner.xcodeproj">
  6 + </FileRef>
  7 + <FileRef
  8 + location = "group:Pods/Pods.xcodeproj">
  9 + </FileRef>
  10 +</Workspace>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>IDEDidComputeMac32BitWarning</key>
  6 + <true/>
  7 +</dict>
  8 +</plist>
  1 +import Cocoa
  2 +import FlutterMacOS
  3 +
  4 +@NSApplicationMain
  5 +class AppDelegate: FlutterAppDelegate {
  6 + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
  7 + return true
  8 + }
  9 +}
  1 +{
  2 + "images" : [
  3 + {
  4 + "size" : "16x16",
  5 + "idiom" : "mac",
  6 + "filename" : "app_icon_16.png",
  7 + "scale" : "1x"
  8 + },
  9 + {
  10 + "size" : "16x16",
  11 + "idiom" : "mac",
  12 + "filename" : "app_icon_32.png",
  13 + "scale" : "2x"
  14 + },
  15 + {
  16 + "size" : "32x32",
  17 + "idiom" : "mac",
  18 + "filename" : "app_icon_32.png",
  19 + "scale" : "1x"
  20 + },
  21 + {
  22 + "size" : "32x32",
  23 + "idiom" : "mac",
  24 + "filename" : "app_icon_64.png",
  25 + "scale" : "2x"
  26 + },
  27 + {
  28 + "size" : "128x128",
  29 + "idiom" : "mac",
  30 + "filename" : "app_icon_128.png",
  31 + "scale" : "1x"
  32 + },
  33 + {
  34 + "size" : "128x128",
  35 + "idiom" : "mac",
  36 + "filename" : "app_icon_256.png",
  37 + "scale" : "2x"
  38 + },
  39 + {
  40 + "size" : "256x256",
  41 + "idiom" : "mac",
  42 + "filename" : "app_icon_256.png",
  43 + "scale" : "1x"
  44 + },
  45 + {
  46 + "size" : "256x256",
  47 + "idiom" : "mac",
  48 + "filename" : "app_icon_512.png",
  49 + "scale" : "2x"
  50 + },
  51 + {
  52 + "size" : "512x512",
  53 + "idiom" : "mac",
  54 + "filename" : "app_icon_512.png",
  55 + "scale" : "1x"
  56 + },
  57 + {
  58 + "size" : "512x512",
  59 + "idiom" : "mac",
  60 + "filename" : "app_icon_1024.png",
  61 + "scale" : "2x"
  62 + }
  63 + ],
  64 + "info" : {
  65 + "version" : 1,
  66 + "author" : "xcode"
  67 + }
  68 +}
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
  3 + <dependencies>
  4 + <deployment identifier="macosx"/>
  5 + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
  6 + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
  7 + </dependencies>
  8 + <objects>
  9 + <customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
  10 + <connections>
  11 + <outlet property="delegate" destination="Voe-Tx-rLC" id="GzC-gU-4Uq"/>
  12 + </connections>
  13 + </customObject>
  14 + <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
  15 + <customObject id="-3" userLabel="Application" customClass="NSObject"/>
  16 + <customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="Runner" customModuleProvider="target">
  17 + <connections>
  18 + <outlet property="applicationMenu" destination="uQy-DD-JDr" id="XBo-yE-nKs"/>
  19 + <outlet property="mainFlutterWindow" destination="QvC-M9-y7g" id="gIp-Ho-8D9"/>
  20 + </connections>
  21 + </customObject>
  22 + <customObject id="YLy-65-1bz" customClass="NSFontManager"/>
  23 + <menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
  24 + <items>
  25 + <menuItem title="APP_NAME" id="1Xt-HY-uBw">
  26 + <modifierMask key="keyEquivalentModifierMask"/>
  27 + <menu key="submenu" title="APP_NAME" systemMenu="apple" id="uQy-DD-JDr">
  28 + <items>
  29 + <menuItem title="About APP_NAME" id="5kV-Vb-QxS">
  30 + <modifierMask key="keyEquivalentModifierMask"/>
  31 + <connections>
  32 + <action selector="orderFrontStandardAboutPanel:" target="-1" id="Exp-CZ-Vem"/>
  33 + </connections>
  34 + </menuItem>
  35 + <menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
  36 + <menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/>
  37 + <menuItem isSeparatorItem="YES" id="wFC-TO-SCJ"/>
  38 + <menuItem title="Services" id="NMo-om-nkz">
  39 + <modifierMask key="keyEquivalentModifierMask"/>
  40 + <menu key="submenu" title="Services" systemMenu="services" id="hz9-B4-Xy5"/>
  41 + </menuItem>
  42 + <menuItem isSeparatorItem="YES" id="4je-JR-u6R"/>
  43 + <menuItem title="Hide APP_NAME" keyEquivalent="h" id="Olw-nP-bQN">
  44 + <connections>
  45 + <action selector="hide:" target="-1" id="PnN-Uc-m68"/>
  46 + </connections>
  47 + </menuItem>
  48 + <menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
  49 + <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
  50 + <connections>
  51 + <action selector="hideOtherApplications:" target="-1" id="VT4-aY-XCT"/>
  52 + </connections>
  53 + </menuItem>
  54 + <menuItem title="Show All" id="Kd2-mp-pUS">
  55 + <modifierMask key="keyEquivalentModifierMask"/>
  56 + <connections>
  57 + <action selector="unhideAllApplications:" target="-1" id="Dhg-Le-xox"/>
  58 + </connections>
  59 + </menuItem>
  60 + <menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
  61 + <menuItem title="Quit APP_NAME" keyEquivalent="q" id="4sb-4s-VLi">
  62 + <connections>
  63 + <action selector="terminate:" target="-1" id="Te7-pn-YzF"/>
  64 + </connections>
  65 + </menuItem>
  66 + </items>
  67 + </menu>
  68 + </menuItem>
  69 + <menuItem title="Edit" id="5QF-Oa-p0T">
  70 + <modifierMask key="keyEquivalentModifierMask"/>
  71 + <menu key="submenu" title="Edit" id="W48-6f-4Dl">
  72 + <items>
  73 + <menuItem title="Undo" keyEquivalent="z" id="dRJ-4n-Yzg">
  74 + <connections>
  75 + <action selector="undo:" target="-1" id="M6e-cu-g7V"/>
  76 + </connections>
  77 + </menuItem>
  78 + <menuItem title="Redo" keyEquivalent="Z" id="6dh-zS-Vam">
  79 + <connections>
  80 + <action selector="redo:" target="-1" id="oIA-Rs-6OD"/>
  81 + </connections>
  82 + </menuItem>
  83 + <menuItem isSeparatorItem="YES" id="WRV-NI-Exz"/>
  84 + <menuItem title="Cut" keyEquivalent="x" id="uRl-iY-unG">
  85 + <connections>
  86 + <action selector="cut:" target="-1" id="YJe-68-I9s"/>
  87 + </connections>
  88 + </menuItem>
  89 + <menuItem title="Copy" keyEquivalent="c" id="x3v-GG-iWU">
  90 + <connections>
  91 + <action selector="copy:" target="-1" id="G1f-GL-Joy"/>
  92 + </connections>
  93 + </menuItem>
  94 + <menuItem title="Paste" keyEquivalent="v" id="gVA-U4-sdL">
  95 + <connections>
  96 + <action selector="paste:" target="-1" id="UvS-8e-Qdg"/>
  97 + </connections>
  98 + </menuItem>
  99 + <menuItem title="Paste and Match Style" keyEquivalent="V" id="WeT-3V-zwk">
  100 + <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
  101 + <connections>
  102 + <action selector="pasteAsPlainText:" target="-1" id="cEh-KX-wJQ"/>
  103 + </connections>
  104 + </menuItem>
  105 + <menuItem title="Delete" id="pa3-QI-u2k">
  106 + <modifierMask key="keyEquivalentModifierMask"/>
  107 + <connections>
  108 + <action selector="delete:" target="-1" id="0Mk-Ml-PaM"/>
  109 + </connections>
  110 + </menuItem>
  111 + <menuItem title="Select All" keyEquivalent="a" id="Ruw-6m-B2m">
  112 + <connections>
  113 + <action selector="selectAll:" target="-1" id="VNm-Mi-diN"/>
  114 + </connections>
  115 + </menuItem>
  116 + <menuItem isSeparatorItem="YES" id="uyl-h8-XO2"/>
  117 + <menuItem title="Find" id="4EN-yA-p0u">
  118 + <modifierMask key="keyEquivalentModifierMask"/>
  119 + <menu key="submenu" title="Find" id="1b7-l0-nxx">
  120 + <items>
  121 + <menuItem title="Find…" tag="1" keyEquivalent="f" id="Xz5-n4-O0W">
  122 + <connections>
  123 + <action selector="performFindPanelAction:" target="-1" id="cD7-Qs-BN4"/>
  124 + </connections>
  125 + </menuItem>
  126 + <menuItem title="Find and Replace…" tag="12" keyEquivalent="f" id="YEy-JH-Tfz">
  127 + <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
  128 + <connections>
  129 + <action selector="performFindPanelAction:" target="-1" id="WD3-Gg-5AJ"/>
  130 + </connections>
  131 + </menuItem>
  132 + <menuItem title="Find Next" tag="2" keyEquivalent="g" id="q09-fT-Sye">
  133 + <connections>
  134 + <action selector="performFindPanelAction:" target="-1" id="NDo-RZ-v9R"/>
  135 + </connections>
  136 + </menuItem>
  137 + <menuItem title="Find Previous" tag="3" keyEquivalent="G" id="OwM-mh-QMV">
  138 + <connections>
  139 + <action selector="performFindPanelAction:" target="-1" id="HOh-sY-3ay"/>
  140 + </connections>
  141 + </menuItem>
  142 + <menuItem title="Use Selection for Find" tag="7" keyEquivalent="e" id="buJ-ug-pKt">
  143 + <connections>
  144 + <action selector="performFindPanelAction:" target="-1" id="U76-nv-p5D"/>
  145 + </connections>
  146 + </menuItem>
  147 + <menuItem title="Jump to Selection" keyEquivalent="j" id="S0p-oC-mLd">
  148 + <connections>
  149 + <action selector="centerSelectionInVisibleArea:" target="-1" id="IOG-6D-g5B"/>
  150 + </connections>
  151 + </menuItem>
  152 + </items>
  153 + </menu>
  154 + </menuItem>
  155 + <menuItem title="Spelling and Grammar" id="Dv1-io-Yv7">
  156 + <modifierMask key="keyEquivalentModifierMask"/>
  157 + <menu key="submenu" title="Spelling" id="3IN-sU-3Bg">
  158 + <items>
  159 + <menuItem title="Show Spelling and Grammar" keyEquivalent=":" id="HFo-cy-zxI">
  160 + <connections>
  161 + <action selector="showGuessPanel:" target="-1" id="vFj-Ks-hy3"/>
  162 + </connections>
  163 + </menuItem>
  164 + <menuItem title="Check Document Now" keyEquivalent=";" id="hz2-CU-CR7">
  165 + <connections>
  166 + <action selector="checkSpelling:" target="-1" id="fz7-VC-reM"/>
  167 + </connections>
  168 + </menuItem>
  169 + <menuItem isSeparatorItem="YES" id="bNw-od-mp5"/>
  170 + <menuItem title="Check Spelling While Typing" id="rbD-Rh-wIN">
  171 + <modifierMask key="keyEquivalentModifierMask"/>
  172 + <connections>
  173 + <action selector="toggleContinuousSpellChecking:" target="-1" id="7w6-Qz-0kB"/>
  174 + </connections>
  175 + </menuItem>
  176 + <menuItem title="Check Grammar With Spelling" id="mK6-2p-4JG">
  177 + <modifierMask key="keyEquivalentModifierMask"/>
  178 + <connections>
  179 + <action selector="toggleGrammarChecking:" target="-1" id="muD-Qn-j4w"/>
  180 + </connections>
  181 + </menuItem>
  182 + <menuItem title="Correct Spelling Automatically" id="78Y-hA-62v">
  183 + <modifierMask key="keyEquivalentModifierMask"/>
  184 + <connections>
  185 + <action selector="toggleAutomaticSpellingCorrection:" target="-1" id="2lM-Qi-WAP"/>
  186 + </connections>
  187 + </menuItem>
  188 + </items>
  189 + </menu>
  190 + </menuItem>
  191 + <menuItem title="Substitutions" id="9ic-FL-obx">
  192 + <modifierMask key="keyEquivalentModifierMask"/>
  193 + <menu key="submenu" title="Substitutions" id="FeM-D8-WVr">
  194 + <items>
  195 + <menuItem title="Show Substitutions" id="z6F-FW-3nz">
  196 + <modifierMask key="keyEquivalentModifierMask"/>
  197 + <connections>
  198 + <action selector="orderFrontSubstitutionsPanel:" target="-1" id="oku-mr-iSq"/>
  199 + </connections>
  200 + </menuItem>
  201 + <menuItem isSeparatorItem="YES" id="gPx-C9-uUO"/>
  202 + <menuItem title="Smart Copy/Paste" id="9yt-4B-nSM">
  203 + <modifierMask key="keyEquivalentModifierMask"/>
  204 + <connections>
  205 + <action selector="toggleSmartInsertDelete:" target="-1" id="3IJ-Se-DZD"/>
  206 + </connections>
  207 + </menuItem>
  208 + <menuItem title="Smart Quotes" id="hQb-2v-fYv">
  209 + <modifierMask key="keyEquivalentModifierMask"/>
  210 + <connections>
  211 + <action selector="toggleAutomaticQuoteSubstitution:" target="-1" id="ptq-xd-QOA"/>
  212 + </connections>
  213 + </menuItem>
  214 + <menuItem title="Smart Dashes" id="rgM-f4-ycn">
  215 + <modifierMask key="keyEquivalentModifierMask"/>
  216 + <connections>
  217 + <action selector="toggleAutomaticDashSubstitution:" target="-1" id="oCt-pO-9gS"/>
  218 + </connections>
  219 + </menuItem>
  220 + <menuItem title="Smart Links" id="cwL-P1-jid">
  221 + <modifierMask key="keyEquivalentModifierMask"/>
  222 + <connections>
  223 + <action selector="toggleAutomaticLinkDetection:" target="-1" id="Gip-E3-Fov"/>
  224 + </connections>
  225 + </menuItem>
  226 + <menuItem title="Data Detectors" id="tRr-pd-1PS">
  227 + <modifierMask key="keyEquivalentModifierMask"/>
  228 + <connections>
  229 + <action selector="toggleAutomaticDataDetection:" target="-1" id="R1I-Nq-Kbl"/>
  230 + </connections>
  231 + </menuItem>
  232 + <menuItem title="Text Replacement" id="HFQ-gK-NFA">
  233 + <modifierMask key="keyEquivalentModifierMask"/>
  234 + <connections>
  235 + <action selector="toggleAutomaticTextReplacement:" target="-1" id="DvP-Fe-Py6"/>
  236 + </connections>
  237 + </menuItem>
  238 + </items>
  239 + </menu>
  240 + </menuItem>
  241 + <menuItem title="Transformations" id="2oI-Rn-ZJC">
  242 + <modifierMask key="keyEquivalentModifierMask"/>
  243 + <menu key="submenu" title="Transformations" id="c8a-y6-VQd">
  244 + <items>
  245 + <menuItem title="Make Upper Case" id="vmV-6d-7jI">
  246 + <modifierMask key="keyEquivalentModifierMask"/>
  247 + <connections>
  248 + <action selector="uppercaseWord:" target="-1" id="sPh-Tk-edu"/>
  249 + </connections>
  250 + </menuItem>
  251 + <menuItem title="Make Lower Case" id="d9M-CD-aMd">
  252 + <modifierMask key="keyEquivalentModifierMask"/>
  253 + <connections>
  254 + <action selector="lowercaseWord:" target="-1" id="iUZ-b5-hil"/>
  255 + </connections>
  256 + </menuItem>
  257 + <menuItem title="Capitalize" id="UEZ-Bs-lqG">
  258 + <modifierMask key="keyEquivalentModifierMask"/>
  259 + <connections>
  260 + <action selector="capitalizeWord:" target="-1" id="26H-TL-nsh"/>
  261 + </connections>
  262 + </menuItem>
  263 + </items>
  264 + </menu>
  265 + </menuItem>
  266 + <menuItem title="Speech" id="xrE-MZ-jX0">
  267 + <modifierMask key="keyEquivalentModifierMask"/>
  268 + <menu key="submenu" title="Speech" id="3rS-ZA-NoH">
  269 + <items>
  270 + <menuItem title="Start Speaking" id="Ynk-f8-cLZ">
  271 + <modifierMask key="keyEquivalentModifierMask"/>
  272 + <connections>
  273 + <action selector="startSpeaking:" target="-1" id="654-Ng-kyl"/>
  274 + </connections>
  275 + </menuItem>
  276 + <menuItem title="Stop Speaking" id="Oyz-dy-DGm">
  277 + <modifierMask key="keyEquivalentModifierMask"/>
  278 + <connections>
  279 + <action selector="stopSpeaking:" target="-1" id="dX8-6p-jy9"/>
  280 + </connections>
  281 + </menuItem>
  282 + </items>
  283 + </menu>
  284 + </menuItem>
  285 + </items>
  286 + </menu>
  287 + </menuItem>
  288 + <menuItem title="View" id="H8h-7b-M4v">
  289 + <modifierMask key="keyEquivalentModifierMask"/>
  290 + <menu key="submenu" title="View" id="HyV-fh-RgO">
  291 + <items>
  292 + <menuItem title="Enter Full Screen" keyEquivalent="f" id="4J7-dP-txa">
  293 + <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
  294 + <connections>
  295 + <action selector="toggleFullScreen:" target="-1" id="dU3-MA-1Rq"/>
  296 + </connections>
  297 + </menuItem>
  298 + </items>
  299 + </menu>
  300 + </menuItem>
  301 + <menuItem title="Window" id="aUF-d1-5bR">
  302 + <modifierMask key="keyEquivalentModifierMask"/>
  303 + <menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
  304 + <items>
  305 + <menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
  306 + <connections>
  307 + <action selector="performMiniaturize:" target="-1" id="VwT-WD-YPe"/>
  308 + </connections>
  309 + </menuItem>
  310 + <menuItem title="Zoom" id="R4o-n2-Eq4">
  311 + <modifierMask key="keyEquivalentModifierMask"/>
  312 + <connections>
  313 + <action selector="performZoom:" target="-1" id="DIl-cC-cCs"/>
  314 + </connections>
  315 + </menuItem>
  316 + <menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
  317 + <menuItem title="Bring All to Front" id="LE2-aR-0XJ">
  318 + <modifierMask key="keyEquivalentModifierMask"/>
  319 + <connections>
  320 + <action selector="arrangeInFront:" target="-1" id="DRN-fu-gQh"/>
  321 + </connections>
  322 + </menuItem>
  323 + </items>
  324 + </menu>
  325 + </menuItem>
  326 + </items>
  327 + <point key="canvasLocation" x="142" y="-258"/>
  328 + </menu>
  329 + <window title="APP_NAME" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="QvC-M9-y7g" customClass="MainFlutterWindow" customModule="Runner" customModuleProvider="target">
  330 + <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
  331 + <rect key="contentRect" x="335" y="390" width="800" height="600"/>
  332 + <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1577"/>
  333 + <view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
  334 + <rect key="frame" x="0.0" y="0.0" width="800" height="600"/>
  335 + <autoresizingMask key="autoresizingMask"/>
  336 + </view>
  337 + </window>
  338 + </objects>
  339 +</document>
  1 +// Application-level settings for the Runner target.
  2 +//
  3 +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
  4 +// future. If not, the values below would default to using the project name when this becomes a
  5 +// 'flutter create' template.
  6 +
  7 +// The application's name. By default this is also the title of the Flutter window.
  8 +PRODUCT_NAME = example
  9 +
  10 +// The application's bundle identifier
  11 +PRODUCT_BUNDLE_IDENTIFIER = creativemaybeno.example
  12 +
  13 +// The copyright displayed in application information
  14 +PRODUCT_COPYRIGHT = Copyright © 2021 creativemaybeno. All rights reserved.
  1 +#include "../../Flutter/Flutter-Debug.xcconfig"
  2 +#include "Warnings.xcconfig"
  1 +#include "../../Flutter/Flutter-Release.xcconfig"
  2 +#include "Warnings.xcconfig"
  1 +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings
  2 +GCC_WARN_UNDECLARED_SELECTOR = YES
  3 +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES
  4 +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
  5 +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
  6 +CLANG_WARN_PRAGMA_PACK = YES
  7 +CLANG_WARN_STRICT_PROTOTYPES = YES
  8 +CLANG_WARN_COMMA = YES
  9 +GCC_WARN_STRICT_SELECTOR_MATCH = YES
  10 +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
  11 +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
  12 +GCC_WARN_SHADOW = YES
  13 +CLANG_WARN_UNREACHABLE_CODE = YES
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>com.apple.security.app-sandbox</key>
  6 + <true/>
  7 + <key>com.apple.security.cs.allow-jit</key>
  8 + <true/>
  9 + <key>com.apple.security.network.server</key>
  10 + <true/>
  11 +</dict>
  12 +</plist>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>CFBundleDevelopmentRegion</key>
  6 + <string>$(DEVELOPMENT_LANGUAGE)</string>
  7 + <key>CFBundleExecutable</key>
  8 + <string>$(EXECUTABLE_NAME)</string>
  9 + <key>CFBundleIconFile</key>
  10 + <string></string>
  11 + <key>CFBundleIdentifier</key>
  12 + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
  13 + <key>CFBundleInfoDictionaryVersion</key>
  14 + <string>6.0</string>
  15 + <key>CFBundleName</key>
  16 + <string>$(PRODUCT_NAME)</string>
  17 + <key>CFBundlePackageType</key>
  18 + <string>APPL</string>
  19 + <key>CFBundleShortVersionString</key>
  20 + <string>$(FLUTTER_BUILD_NAME)</string>
  21 + <key>CFBundleVersion</key>
  22 + <string>$(FLUTTER_BUILD_NUMBER)</string>
  23 + <key>LSMinimumSystemVersion</key>
  24 + <string>$(MACOSX_DEPLOYMENT_TARGET)</string>
  25 + <key>NSHumanReadableCopyright</key>
  26 + <string>$(PRODUCT_COPYRIGHT)</string>
  27 + <key>NSMainNibFile</key>
  28 + <string>MainMenu</string>
  29 + <key>NSPrincipalClass</key>
  30 + <string>NSApplication</string>
  31 +</dict>
  32 +</plist>
  1 +import Cocoa
  2 +import FlutterMacOS
  3 +
  4 +class MainFlutterWindow: NSWindow {
  5 + override func awakeFromNib() {
  6 + let flutterViewController = FlutterViewController.init()
  7 + let windowFrame = self.frame
  8 + self.contentViewController = flutterViewController
  9 + self.setFrame(windowFrame, display: true)
  10 +
  11 + RegisterGeneratedPlugins(registry: flutterViewController)
  12 +
  13 + super.awakeFromNib()
  14 + }
  15 +}
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>com.apple.security.app-sandbox</key>
  6 + <true/>
  7 +</dict>
  8 +</plist>
@@ -26,7 +26,18 @@ dev_dependencies: @@ -26,7 +26,18 @@ dev_dependencies:
26 flutter_driver: 26 flutter_driver:
27 sdk: flutter 27 sdk: flutter
28 28
29 - integration_test: ^0.9.2+2 29 + integration_test: ^1.0.1
30 test: any 30 test: any
31 31
32 pedantic: ^1.10.0-nullsafety.3 32 pedantic: ^1.10.0-nullsafety.3
  33 +
  34 +dependency_overrides:
  35 + # We override the platform dependencies of wakelock here because we use the example app for
  36 + # integration testing and want to make sure that the CI always runs integration tests using the
  37 + # current platform implementations.
  38 + wakelock_macos:
  39 + path: ../../wakelock_macos
  40 + wakelock_platform_interface:
  41 + path: ../../wakelock_platform_interface
  42 + wakelock_web:
  43 + path: ../../wakelock_web
  1 +import 'dart:io';
  2 +
  3 +import 'package:flutter/foundation.dart';
  4 +import 'package:wakelock_macos/wakelock_macos.dart';
1 import 'package:wakelock_platform_interface/wakelock_platform_interface.dart'; 5 import 'package:wakelock_platform_interface/wakelock_platform_interface.dart';
2 6
3 -final _wakelockPlatformInstance = WakelockPlatformInterface.instance; 7 +final _wakelockPlatformInstance = !kIsWeb &&
  8 + // Assigning the macOS platform instance like this is not optimal.
  9 + // Ideally, we would use the default method channel instance on macOS,
  10 + // however, it is not yet entirely clear how to integrate with pigeon.
  11 + // This should just work fine and the io reference should be tree shaken
  12 + // on web.
  13 + Platform.isMacOS
  14 + ? WakelockMacOS()
  15 + : WakelockPlatformInterface.instance;
4 16
5 /// Class providing all wakelock functionality using static members. 17 /// Class providing all wakelock functionality using static members.
6 /// 18 ///
@@ -15,6 +15,8 @@ dependencies: @@ -15,6 +15,8 @@ dependencies:
15 15
16 meta: ^1.2.0 16 meta: ^1.2.0
17 17
  18 + # Include in a followup version when wakelock_macos has been published.
  19 + wakelock_macos: ^0.1.0-nullsafety.0
18 wakelock_platform_interface: ^0.2.0-nullsafety.2 20 wakelock_platform_interface: ^0.2.0-nullsafety.2
19 wakelock_web: ^0.2.0-nullsafety.0 21 wakelock_web: ^0.2.0-nullsafety.0
20 22
@@ -33,5 +35,7 @@ flutter: @@ -33,5 +35,7 @@ flutter:
33 pluginClass: WakelockPlugin 35 pluginClass: WakelockPlugin
34 ios: 36 ios:
35 pluginClass: WakelockPlugin 37 pluginClass: WakelockPlugin
  38 + macos:
  39 + default_package: wakelock_macos
36 web: 40 web:
37 default_package: wakelock_web 41 default_package: wakelock_web
1 -## 0.2.0-nullsafety.0 1 +## 0.1.0-nullsafety.0
2 2
3 * Initial release 3 * Initial release
1 -# wakelock_web [![Pub version](https://img.shields.io/pub/v/wakelock_platform_interface.svg)](https://pub.dev/packages/wakelock_web) [![GitHub stars](https://img.shields.io/github/stars/creativecreatorormaybenot/wakelock.svg)](https://github.com/creativecreatorormaybenot/wakelock) [![Twitter Follow](https://img.shields.io/twitter/follow/creativemaybeno?label=Follow&style=social)](https://twitter.com/creativemaybeno) 1 +# wakelock_macos [![Pub version](https://img.shields.io/pub/v/wakelock_macos.svg)](https://pub.dev/packages/wakelock_macos) [![GitHub stars](https://img.shields.io/github/stars/creativecreatorormaybenot/wakelock.svg)](https://github.com/creativecreatorormaybenot/wakelock) [![Twitter Follow](https://img.shields.io/twitter/follow/creativemaybeno?label=Follow&style=social)](https://twitter.com/creativemaybeno)
2 2
3 -macOS platform implementation of the `wakelock_platform_interface` for the 3 +macOS platform implementation of the `wakelock_platform_interface` for the
4 [wakelock plugin][wakelock GitHub]. 4 [wakelock plugin][wakelock GitHub].
5 5
6 ## Getting started 6 ## Getting started
7 7
8 If you want to use the wakelock plugin on macOS, see the [main `wakelock` plugin package](https://pub.dev/packages/wakelock). 8 If you want to use the wakelock plugin on macOS, see the [main `wakelock` plugin package](https://pub.dev/packages/wakelock).
9 9
  10 +## Implementation
  11 +
  12 +Note that the implementation currently uses manual `MethodChannel`s instead of the `pigeon` generated
  13 +message until https://github.com/flutter/flutter/issues/73738 is properly resolved.
  14 +
  15 +### Testing
  16 +
  17 +Because of the aforementioned limitation, testing for `wakelock_macos` is currently also only conducted
  18 +using the integration tests in `wakelock/example`.
  19 +
10 [wakelock GitHub]: https://github.com/creativecreatorormaybenot/wakelock 20 [wakelock GitHub]: https://github.com/creativecreatorormaybenot/wakelock
  1 +#
  2 +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html.
  3 +# Run `pod lib lint wakelock_macos.podspec' to validate before publishing.
  4 +#
  5 +Pod::Spec.new do |s|
  6 + s.name = 'wakelock_macos'
  7 + s.version = '0.0.1'
  8 + s.summary = 'Stub Podspec'
  9 + s.description = <<-DESC
  10 +Stub Podspec that makes wakelock_macos builds on iOS work.
  11 + DESC
  12 + s.homepage = 'http://example.com'
  13 + s.license = { :file => '../LICENSE' }
  14 + s.author = { 'Your Company' => 'email@example.com' }
  15 + s.source = { :path => '.' }
  16 + s.source_files = 'Classes/**/*'
  17 + s.public_header_files = 'Classes/**/*.h'
  18 + s.dependency 'Flutter'
  19 + s.platform = :ios, '8.0'
  20 +
  21 + # Flutter.framework does not contain a i386 slice.
  22 + s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
  23 +end
@@ -3,8 +3,17 @@ import 'dart:async'; @@ -3,8 +3,17 @@ import 'dart:async';
3 import 'package:flutter/services.dart'; 3 import 'package:flutter/services.dart';
4 import 'package:wakelock_platform_interface/wakelock_platform_interface.dart'; 4 import 'package:wakelock_platform_interface/wakelock_platform_interface.dart';
5 5
6 -class WakelockMacos extends WakelockPlatformInterface {  
7 - static const MethodChannel _channel = const MethodChannel('wakelock_macos'); 6 +/// The macOS implementation of the [WakelockPlatformInterface].
  7 +///
  8 +/// This class implements the `wakelock` plugin functionality for macOS.
  9 +///
  10 +/// Note that this is *also* a method channel implementation (like the default
  11 +/// instance). We use manual method channel calls instead of `pigeon` for the
  12 +/// moment because macOS support for `pigeon` is not clear yet.
  13 +/// See https://github.com/flutter/flutter/issues/73738.
  14 +class WakelockMacOS extends WakelockPlatformInterface {
  15 + // todo(creativecreatorormaybenot): use default method channel instance.
  16 + static const MethodChannel _channel = MethodChannel('wakelock_macos');
8 17
9 @override 18 @override
10 Future<void> toggle({required bool enable}) async { 19 Future<void> toggle({required bool enable}) async {
@@ -14,8 +23,6 @@ class WakelockMacos extends WakelockPlatformInterface { @@ -14,8 +23,6 @@ class WakelockMacos extends WakelockPlatformInterface {
14 } 23 }
15 24
16 @override 25 @override
17 - Future<bool> get enabled async {  
18 - final enabled = await _channel.invokeMethod('enabled');  
19 - return enabled;  
20 - } 26 + Future<bool> get enabled async =>
  27 + await _channel.invokeMethod('enabled') as bool;
21 } 28 }
@@ -11,37 +11,38 @@ public class WakelockMacosPlugin: NSObject, FlutterPlugin { @@ -11,37 +11,38 @@ public class WakelockMacosPlugin: NSObject, FlutterPlugin {
11 11
12 var assertionID: IOPMAssertionID = 0 12 var assertionID: IOPMAssertionID = 0
13 var wakelockEnabled = false 13 var wakelockEnabled = false
  14 +
14 public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) { 15 public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
15 switch call.method { 16 switch call.method {
16 case "toggle": 17 case "toggle":
17 - let args = call.arguments as? Dictionary<String, Any>  
18 - let enable = args!["enable"] as! Bool  
19 - if(enable){  
20 - enableWakelock()  
21 - }else {  
22 - disableWakelock();  
23 - }  
24 - result(true) 18 + let args = call.arguments as? Dictionary<String, Any>
  19 + let enable = args!["enable"] as! Bool
  20 + if enable {
  21 + enableWakelock()
  22 + } else {
  23 + disableWakelock();
  24 + }
  25 + result(true)
25 case "enabled": 26 case "enabled":
26 result(wakelockEnabled) 27 result(wakelockEnabled)
27 default: 28 default:
28 result(FlutterMethodNotImplemented) 29 result(FlutterMethodNotImplemented)
29 } 30 }
30 } 31 }
31 -  
32 - func enableWakelock(reason: String = "Disabling Screen Sleep") {  
33 - if(!wakelockEnabled){ 32 +
  33 + func enableWakelock(reason: String = "Disabling display sleep") {
  34 + if !wakelockEnabled {
34 wakelockEnabled = IOPMAssertionCreateWithName( kIOPMAssertionTypeNoDisplaySleep as CFString, 35 wakelockEnabled = IOPMAssertionCreateWithName( kIOPMAssertionTypeNoDisplaySleep as CFString,
35 IOPMAssertionLevel(kIOPMAssertionLevelOn), 36 IOPMAssertionLevel(kIOPMAssertionLevelOn),
36 reason as CFString, 37 reason as CFString,
37 &assertionID) == kIOReturnSuccess 38 &assertionID) == kIOReturnSuccess
38 } 39 }
39 } 40 }
40 -  
41 -func disableWakelock() { 41 +
  42 + func disableWakelock() {
42 if wakelockEnabled { 43 if wakelockEnabled {
43 - IOPMAssertionRelease(assertionID)  
44 - wakelockEnabled = false 44 + IOPMAssertionRelease(assertionID)
  45 + wakelockEnabled = false
45 } 46 }
46 } 47 }
47 } 48 }
1 -//  
2 -// Generated file. Do not edit.  
3 -//  
4 -  
5 -import FlutterMacOS  
6 -import Foundation  
7 -  
8 -import wakelock_macos  
9 -  
10 -func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {  
11 - WakelockMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockMacosPlugin"))  
12 -}  
1 -// This is a generated file; do not edit or check into version control.  
2 -FLUTTER_ROOT=/Users/wilson/Developer/flutter  
3 -FLUTTER_APPLICATION_PATH=/Users/wilson/Flutter Projects/wakelock/wakelock_macos  
4 -FLUTTER_BUILD_DIR=build  
5 -FLUTTER_BUILD_NAME=0.2.0.0  
6 -FLUTTER_BUILD_NUMBER=0.2.0.0  
7 -EXCLUDED_ARCHS=arm64  
8 -DART_OBFUSCATION=false  
9 -TRACK_WIDGET_CREATION=false  
10 -TREE_SHAKE_ICONS=false  
11 -PACKAGE_CONFIG=.packages  
1 -#!/bin/sh  
2 -# This is a generated file; do not edit or check into version control.  
3 -export "FLUTTER_ROOT=/Users/wilson/Developer/flutter"  
4 -export "FLUTTER_APPLICATION_PATH=/Users/wilson/Flutter Projects/wakelock/wakelock_macos"  
5 -export "FLUTTER_BUILD_DIR=build"  
6 -export "FLUTTER_BUILD_NAME=0.2.0.0"  
7 -export "FLUTTER_BUILD_NUMBER=0.2.0.0"  
8 -export "EXCLUDED_ARCHS=arm64"  
9 -export "DART_OBFUSCATION=false"  
10 -export "TRACK_WIDGET_CREATION=false"  
11 -export "TREE_SHAKE_ICONS=false"  
12 -export "PACKAGE_CONFIG=.packages"  
1 # 1 #
2 -# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html.  
3 -# Run `pod lib lint wakelock_macos.podspec' to validate before publishing. 2 +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
4 # 3 #
5 Pod::Spec.new do |s| 4 Pod::Spec.new do |s|
6 - s.name = 'wakelock' 5 + s.name = 'wakelock_macos'
7 s.version = '0.0.1' 6 s.version = '0.0.1'
8 - s.summary = 'Plugin that allows you to keep the device screen awake, i.e. prevent the screen from sleeping on Android, iOS, macOS, and web.' 7 + s.summary = 'Plugin that allows you to keep the device screen awake, i.e. prevent the screen from sleeping on Android, iOS, and web.'
9 s.description = <<-DESC 8 s.description = <<-DESC
10 -Plugin that allows you to keep the device screen awake, i.e. prevent the screen from sleeping on Android, iOS, macOS, and web. 9 + Plugin that allows you to keep the device screen awake, i.e. prevent the screen from sleeping on Android, iOS, and web.
11 DESC 10 DESC
12 - s.homepage = 'http://example.com'  
13 - s.license = { :file => '../LICENSE' } 11 + s.homepage = 'https://github.com/creativecreatorormaybenot/wakelock/tree/master/packages/wakelock_macos'
  12 + s.license = { :type => 'BSD', :file => '../LICENSE' }
14 s.author = { 'Your Company' => 'email@example.com' } 13 s.author = { 'Your Company' => 'email@example.com' }
15 - s.source = { :path => '.' }  
16 - s.source_files = 'Classes/**/*'  
17 - s.dependency 'Flutter'  
18 - s.platform = :ios, '8.0' 14 + s.source = { :http => 'https://github.com/creativecreatorormaybenot/wakelock/tree/master/packages/wakelock_macos' }
  15 + s.source_files = 'Classes/**/*'
  16 + s.dependency 'FlutterMacOS'
  17 +
  18 + s.platform = :osx, '10.11'
  19 + s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
  20 + s.swift_version = '5.0'
  21 + end
19 22
20 - # Flutter.framework does not contain a i386 slice.  
21 - s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }  
22 -end  
1 name: wakelock_macos 1 name: wakelock_macos
2 description: macOS platform implementation of the wakelock_platform_interface for the wakelock plugin. 2 description: macOS platform implementation of the wakelock_platform_interface for the wakelock plugin.
3 -version: 0.2.0-nullsafety.0 3 +version: 0.1.0-nullsafety.0
4 homepage: https://github.com/creativecreatorormaybenot/wakelock/tree/master/wakelock_macos 4 homepage: https://github.com/creativecreatorormaybenot/wakelock/tree/master/wakelock_macos
5 5
6 environment: 6 environment:
@@ -2,17 +2,14 @@ import 'package:flutter/services.dart'; @@ -2,17 +2,14 @@ import 'package:flutter/services.dart';
2 import 'package:flutter_test/flutter_test.dart'; 2 import 'package:flutter_test/flutter_test.dart';
3 3
4 void main() { 4 void main() {
5 - const MethodChannel channel = MethodChannel('wakelock_macos');  
6 -  
7 - TestWidgetsFlutterBinding.ensureInitialized();  
8 -  
9 - setUp(() {  
10 - channel.setMockMethodCallHandler((MethodCall methodCall) async {  
11 - return '42';  
12 - });  
13 - });  
14 -  
15 - tearDown(() {  
16 - channel.setMockMethodCallHandler(null);  
17 - }); 5 + // There are currently no unit tests for the macOS implementation as we
  6 + // ideally want to integrate with pigeon and write tests for that instead.
  7 + // Testing for macOS is currently done using the integration tests in
  8 + // wakelock/example.
  9 + // This means that every change to the wakelock_macos package should be
  10 + // tested using a local dependency in the wakelock example integration test
  11 + // before being published. For that, we use dependency overrides in the
  12 + // example app.
  13 + // Consequently, the macOS implementation will be tested in CI via the
  14 + // example integration test running on -d macos.
18 } 15 }
  1 +## 0.2.0-nullsafety.1
  2 +
  3 +* Correct Pub badge in README.
  4 +
1 ## 0.2.0-nullsafety.0 5 ## 0.2.0-nullsafety.0
2 6
3 * Migrated to null safety. 7 * Migrated to null safety.
1 -# wakelock_web [![Pub version](https://img.shields.io/pub/v/wakelock_platform_interface.svg)](https://pub.dev/packages/wakelock_web) [![GitHub stars](https://img.shields.io/github/stars/creativecreatorormaybenot/wakelock.svg)](https://github.com/creativecreatorormaybenot/wakelock) [![Twitter Follow](https://img.shields.io/twitter/follow/creativemaybeno?label=Follow&style=social)](https://twitter.com/creativemaybeno) 1 +# wakelock_web [![Pub version](https://img.shields.io/pub/v/wakelock_web.svg)](https://pub.dev/packages/wakelock_web) [![GitHub stars](https://img.shields.io/github/stars/creativecreatorormaybenot/wakelock.svg)](https://github.com/creativecreatorormaybenot/wakelock) [![Twitter Follow](https://img.shields.io/twitter/follow/creativemaybeno?label=Follow&style=social)](https://twitter.com/creativemaybeno)
2 2
3 Web platform implementation of the `wakelock_platform_interface` for the 3 Web platform implementation of the `wakelock_platform_interface` for the
4 [wakelock plugin][wakelock GitHub]. 4 [wakelock plugin][wakelock GitHub].
1 name: wakelock_web 1 name: wakelock_web
2 description: Web platform implementation of the wakelock_platform_interface for the wakelock plugin. 2 description: Web platform implementation of the wakelock_platform_interface for the wakelock plugin.
3 -version: 0.2.0-nullsafety.0 3 +version: 0.2.0-nullsafety.1
4 homepage: https://github.com/creativecreatorormaybenot/wakelock/tree/master/wakelock_web 4 homepage: https://github.com/creativecreatorormaybenot/wakelock/tree/master/wakelock_web
5 5
6 environment: 6 environment: