From acd608e23043c36b2bc188587400b17d5eb7bb39 Mon Sep 17 00:00:00 2001 From: Shreyas Thirumalai Date: Fri, 15 May 2020 16:07:12 +0530 Subject: [PATCH] add macos files (#90) #69 --- macos/Flutter/Flutter-Debug.xcconfig | 2 + macos/Flutter/Flutter-Release.xcconfig | 2 + macos/Flutter/GeneratedPluginRegistrant.swift | 14 + macos/Podfile | 82 +++ macos/Podfile.lock | 38 + macos/Runner.xcodeproj/project.pbxproj | 654 ++++++++++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 101 +++ .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/Contents.json | 68 ++ .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 54560 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 8506 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 3158 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 7295 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 4333 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 7886 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 5768 bytes macos/Runner/Base.lproj/MainMenu.xib | 339 +++++++++ macos/Runner/Configs/AppInfo.xcconfig | 14 + macos/Runner/Configs/Debug.xcconfig | 2 + macos/Runner/Configs/Release.xcconfig | 2 + macos/Runner/Configs/Warnings.xcconfig | 13 + macos/Runner/DebugProfile.entitlements | 14 + macos/Runner/Info.plist | 32 + macos/Runner/MainFlutterWindow.swift | 15 + macos/Runner/Release.entitlements | 14 + pubspec.yaml | 2 +- 29 files changed, 1442 insertions(+), 1 deletion(-) create mode 100644 macos/Flutter/Flutter-Debug.xcconfig create mode 100644 macos/Flutter/Flutter-Release.xcconfig create mode 100644 macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 macos/Podfile create mode 100644 macos/Podfile.lock create mode 100644 macos/Runner.xcodeproj/project.pbxproj create mode 100644 macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner/AppDelegate.swift create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 macos/Runner/Base.lproj/MainMenu.xib create mode 100644 macos/Runner/Configs/AppInfo.xcconfig create mode 100644 macos/Runner/Configs/Debug.xcconfig create mode 100644 macos/Runner/Configs/Release.xcconfig create mode 100644 macos/Runner/Configs/Warnings.xcconfig create mode 100644 macos/Runner/DebugProfile.entitlements create mode 100644 macos/Runner/Info.plist create mode 100644 macos/Runner/MainFlutterWindow.swift create mode 100644 macos/Runner/Release.entitlements diff --git a/macos/Flutter/Flutter-Debug.xcconfig b/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..785633d --- /dev/null +++ b/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/Flutter-Release.xcconfig b/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..5fba960 --- /dev/null +++ b/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..8ad28b4 --- /dev/null +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,14 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import shared_preferences_macos +import url_launcher_macos + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) +} diff --git a/macos/Podfile b/macos/Podfile new file mode 100644 index 0000000..d60ec71 --- /dev/null +++ b/macos/Podfile @@ -0,0 +1,82 @@ +platform :osx, '10.11' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def parse_KV_file(file, separator='=') + file_abs_path = File.expand_path(file) + if !File.exists? file_abs_path + return []; + end + pods_ary = [] + skip_line_start_symbols = ["#", "/"] + File.foreach(file_abs_path) { |line| + next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ } + plugin = line.split(pattern=separator) + if plugin.length == 2 + podname = plugin[0].strip() + path = plugin[1].strip() + podpath = File.expand_path("#{path}", file_abs_path) + pods_ary.push({:name => podname, :path => podpath}); + else + puts "Invalid plugin specification: #{line}" + end + } + return pods_ary +end + +def pubspec_supports_macos(file) + file_abs_path = File.expand_path(file) + if !File.exists? file_abs_path + return false; + end + File.foreach(file_abs_path) { |line| + return true if line =~ /^\s*macos:/ + } + return false +end + +target 'Runner' do + use_frameworks! + use_modular_headers! + + # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock + # referring to absolute paths on developers' machines. + ephemeral_dir = File.join('Flutter', 'ephemeral') + symlink_dir = File.join(ephemeral_dir, '.symlinks') + symlink_plugins_dir = File.join(symlink_dir, 'plugins') + system("rm -rf #{symlink_dir}") + system("mkdir -p #{symlink_plugins_dir}") + + # Flutter Pods + generated_xcconfig = parse_KV_file(File.join(ephemeral_dir, 'Flutter-Generated.xcconfig')) + if generated_xcconfig.empty? + puts "Flutter-Generated.xcconfig must exist. If you're running pod install manually, make sure flutter packages get is executed first." + end + generated_xcconfig.map { |p| + if p[:name] == 'FLUTTER_FRAMEWORK_DIR' + symlink = File.join(symlink_dir, 'flutter') + File.symlink(File.dirname(p[:path]), symlink) + pod 'FlutterMacOS', :path => File.join(symlink, File.basename(p[:path])) + end + } + + # Plugin Pods + plugin_pods = parse_KV_file('../.flutter-plugins') + plugin_pods.map { |p| + symlink = File.join(symlink_plugins_dir, p[:name]) + File.symlink(p[:path], symlink) + if pubspec_supports_macos(File.join(symlink, 'pubspec.yaml')) + pod p[:name], :path => File.join(symlink, 'macos') + end + } +end + +# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system. +install! 'cocoapods', :disable_input_output_paths => true diff --git a/macos/Podfile.lock b/macos/Podfile.lock new file mode 100644 index 0000000..a59d742 --- /dev/null +++ b/macos/Podfile.lock @@ -0,0 +1,38 @@ +PODS: + - FlutterMacOS (1.0.0) + - shared_preferences (0.0.1) + - shared_preferences_macos (0.0.1): + - FlutterMacOS + - url_launcher (0.0.1) + - url_launcher_macos (0.0.1): + - FlutterMacOS + +DEPENDENCIES: + - FlutterMacOS (from `Flutter/ephemeral/.symlinks/flutter/darwin-x64`) + - shared_preferences (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences/macos`) + - shared_preferences_macos (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_macos/macos`) + - url_launcher (from `Flutter/ephemeral/.symlinks/plugins/url_launcher/macos`) + - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) + +EXTERNAL SOURCES: + FlutterMacOS: + :path: Flutter/ephemeral/.symlinks/flutter/darwin-x64 + shared_preferences: + :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences/macos + shared_preferences_macos: + :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_macos/macos + url_launcher: + :path: Flutter/ephemeral/.symlinks/plugins/url_launcher/macos + url_launcher_macos: + :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos + +SPEC CHECKSUMS: + FlutterMacOS: 15bea8a44d2fa024068daa0140371c020b4b6ff9 + shared_preferences: 9fec34d1bd906196a4da48fcf6c3ad521cc00b8d + shared_preferences_macos: 480ce071d0666e37cef23fe6c702293a3d21799e + url_launcher: af78307ef9bafff91273b34f1c6c0c86a0004fd7 + url_launcher_macos: 45af3d61de06997666568a7149c1be98b41c95d4 + +PODFILE CHECKSUM: d8ba9b3e9e93c62c74a660b46c6fcb09f03991a7 + +COCOAPODS: 1.9.1 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..1ec09ce --- /dev/null +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,654 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + 33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; }; + 33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + D73912F022F37F9E000D13A0 /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; }; + D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + EBED608B4364C47D7EE092A2 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6207DF5338542C0C28D8C925 /* Pods_Runner.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */, + 33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */, + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 0371C4A72814A31D90E55D35 /* 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 = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* Flutter.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Flutter.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FlutterMacOS.framework; path = Flutter/ephemeral/FlutterMacOS.framework; sourceTree = SOURCE_ROOT; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 6207DF5338542C0C28D8C925 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + D73912EF22F37F9E000D13A0 /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/ephemeral/App.framework; sourceTree = SOURCE_ROOT; }; + F06CA75B2E586BC95736FD43 /* 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 = ""; }; + FD2BA41C5C700B1011BEFED9 /* 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 = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D73912F022F37F9E000D13A0 /* App.framework in Frameworks */, + 33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */, + EBED608B4364C47D7EE092A2 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + 8D9F0B0FEE4CD06A50D7C248 /* Pods */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* Flutter.app */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + D73912EF22F37F9E000D13A0 /* App.framework */, + 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + 8D9F0B0FEE4CD06A50D7C248 /* Pods */ = { + isa = PBXGroup; + children = ( + 0371C4A72814A31D90E55D35 /* Pods-Runner.debug.xcconfig */, + FD2BA41C5C700B1011BEFED9 /* Pods-Runner.release.xcconfig */, + F06CA75B2E586BC95736FD43 /* Pods-Runner.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6207DF5338542C0C28D8C925 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 0B9DDDEE958E95C1569318D6 /* [CP] Check Pods Manifest.lock */, + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + 0B55EC54227DE6798C8068D3 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* Flutter.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 0930; + ORGANIZATIONNAME = "The Flutter Authors"; + TargetAttributes = { + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 8.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 0B55EC54227DE6798C8068D3 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 0B9DDDEE958E95C1569318D6 /* [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-Runner-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; + }; + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + 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_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = 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_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + 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_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter/ephemeral", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + 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_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = 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_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + 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_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + 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_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = 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_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + 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_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter/ephemeral", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter/ephemeral", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..7ddc119 --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner.xcworkspace/contents.xcworkspacedata b/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..d53ef64 --- /dev/null +++ b/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@NSApplicationMain +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..a2ec33f --- /dev/null +++ b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..b24804aa2ea76d509296317875a81c119b8573ef GIT binary patch literal 54560 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 X>6L<=%S!M6L_o<&DNELfn*{$442g87 literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000000000000000000000000000000000000..2169fa0b9dc68cf7942c124f48a1af9d90739fcd GIT binary patch literal 3158 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 w{I&o#mPT{@-J;>07*qoM6N<$f)O-7^#A|> literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png new file mode 100644 index 0000000000000000000000000000000000000000..1067483070eb324463c09f585b73a97d66b6fcfb GIT binary patch literal 7295 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 literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png new file mode 100644 index 0000000000000000000000000000000000000000..d0b59ce860a9a7ae772deeefafb179a0a8256ad7 GIT binary patch literal 4333 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 + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..cbdd255 --- /dev/null +++ b/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = Flutter + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.Flutter + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2020 com.example. All rights reserved. diff --git a/macos/Runner/Configs/Debug.xcconfig b/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Release.xcconfig b/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Warnings.xcconfig b/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/macos/Runner/DebugProfile.entitlements b/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..08c3ab1 --- /dev/null +++ b/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,14 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + com.apple.security.network.client + + + diff --git a/macos/Runner/Info.plist b/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/macos/Runner/MainFlutterWindow.swift b/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..2722837 --- /dev/null +++ b/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController.init() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Release.entitlements new file mode 100644 index 0000000..08c3ab1 --- /dev/null +++ b/macos/Runner/Release.entitlements @@ -0,0 +1,14 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + com.apple.security.network.client + + + diff --git a/pubspec.yaml b/pubspec.yaml index eaff6e7..c7f4973 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -22,7 +22,7 @@ dependencies: file_icon: ^0.3.0 http: ^0.12.0 intl: ^0.16.0 - url_launcher: ^5.0.2 + url_launcher: ^5.4.1 uni_links: ^0.2.0 flutter_markdown: ^0.3.3 shared_preferences: ^0.5.6