Navaron Bracke
Committed by GitHub

Merge pull request #812 from navaronbracke/example_app_ios_macos_cleanup

feat: RunnerTests for iOS/MacOS
1 # Uncomment this line to define a global platform for your project 1 # Uncomment this line to define a global platform for your project
2 -platform :ios, '11.0' 2 +# platform :ios, '11.0'
3 3
4 # CocoaPods analytics sends network stats synchronously affecting flutter build latency. 4 # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
5 ENV['COCOAPODS_DISABLE_STATS'] = 'true' 5 ENV['COCOAPODS_DISABLE_STATS'] = 'true'
@@ -32,14 +32,16 @@ target 'Runner' do @@ -32,14 +32,16 @@ target 'Runner' do
32 use_modular_headers! 32 use_modular_headers!
33 33
34 flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) 34 flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
  35 + target 'RunnerTests' do
  36 + inherit! :search_paths
  37 + end
35 end 38 end
36 39
37 post_install do |installer| 40 post_install do |installer|
38 installer.pods_project.targets.each do |target| 41 installer.pods_project.targets.each do |target|
39 flutter_additional_ios_build_settings(target) 42 flutter_additional_ios_build_settings(target)
40 target.build_configurations.each do |config| 43 target.build_configurations.each do |config|
41 - config.build_settings['ENABLE_BITCODE'] = 'NO'  
42 - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0' 44 + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
43 end 45 end
44 end 46 end
45 end 47 end
@@ -8,14 +8,26 @@ @@ -8,14 +8,26 @@
8 8
9 /* Begin PBXBuildFile section */ 9 /* Begin PBXBuildFile section */
10 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 10 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
  11 + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
11 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 12 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
12 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 13 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
13 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 14 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
14 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 15 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
15 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; 16 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
16 - A5A2C2B73A9F26060DE9FB22 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54E006799E73DEAB41FD3623 /* Pods_Runner.framework */; }; 17 + A277671F4E603C31E191FCBF /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FB50C06655B1959BAA8EAF64 /* Pods_Runner.framework */; };
  18 + F8C489EFA0FC3A131EBA1838 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F20A7A668B7797BBB5443C1 /* Pods_RunnerTests.framework */; };
17 /* End PBXBuildFile section */ 19 /* End PBXBuildFile section */
18 20
  21 +/* Begin PBXContainerItemProxy section */
  22 + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = {
  23 + isa = PBXContainerItemProxy;
  24 + containerPortal = 97C146E61CF9000F007C117D /* Project object */;
  25 + proxyType = 1;
  26 + remoteGlobalIDString = 97C146ED1CF9000F007C117D;
  27 + remoteInfo = Runner;
  28 + };
  29 +/* End PBXContainerItemProxy section */
  30 +
19 /* Begin PBXCopyFilesBuildPhase section */ 31 /* Begin PBXCopyFilesBuildPhase section */
20 9705A1C41CF9048500538489 /* Embed Frameworks */ = { 32 9705A1C41CF9048500538489 /* Embed Frameworks */ = {
21 isa = PBXCopyFilesBuildPhase; 33 isa = PBXCopyFilesBuildPhase;
@@ -32,12 +44,14 @@ @@ -32,12 +44,14 @@
32 /* Begin PBXFileReference section */ 44 /* Begin PBXFileReference section */
33 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; }; 45 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
34 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; }; 46 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
35 - 32FD382A786B3A0080FE63FD /* 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>"; }; 47 + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
  48 + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
  49 + 337C24E5CFDB233CDBA51D9D /* 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>"; };
36 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; }; 50 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
37 - 54E006799E73DEAB41FD3623 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };  
38 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; }; 51 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
39 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; 52 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
40 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; }; 53 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
  54 + 7F6B8553738879C25774B609 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
41 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; }; 55 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
42 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; }; 56 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
43 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 57 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -45,30 +59,40 @@ @@ -45,30 +59,40 @@
45 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 59 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
46 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 60 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
47 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 61 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
48 - D5B36FCD262B39F867CFDEEE /* 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>"; };  
49 - F0D5742F0690BE32D07B033A /* 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>"; }; 62 + 9F20A7A668B7797BBB5443C1 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
  63 + A5A24D61913C510FB38A434E /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
  64 + ADC5B74E7E0BCF65C9CD3AA9 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
  65 + CB190BADFE09EBDD6E5B44BE /* 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>"; };
  66 + F3732C1D66ACA2383B88CDC2 /* 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>"; };
  67 + FB50C06655B1959BAA8EAF64 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
50 /* End PBXFileReference section */ 68 /* End PBXFileReference section */
51 69
52 /* Begin PBXFrameworksBuildPhase section */ 70 /* Begin PBXFrameworksBuildPhase section */
  71 + 0F3F7D03C80D20F6F18A5A17 /* Frameworks */ = {
  72 + isa = PBXFrameworksBuildPhase;
  73 + buildActionMask = 2147483647;
  74 + files = (
  75 + F8C489EFA0FC3A131EBA1838 /* Pods_RunnerTests.framework in Frameworks */,
  76 + );
  77 + runOnlyForDeploymentPostprocessing = 0;
  78 + };
53 97C146EB1CF9000F007C117D /* Frameworks */ = { 79 97C146EB1CF9000F007C117D /* Frameworks */ = {
54 isa = PBXFrameworksBuildPhase; 80 isa = PBXFrameworksBuildPhase;
55 buildActionMask = 2147483647; 81 buildActionMask = 2147483647;
56 files = ( 82 files = (
57 - A5A2C2B73A9F26060DE9FB22 /* Pods_Runner.framework in Frameworks */, 83 + A277671F4E603C31E191FCBF /* Pods_Runner.framework in Frameworks */,
58 ); 84 );
59 runOnlyForDeploymentPostprocessing = 0; 85 runOnlyForDeploymentPostprocessing = 0;
60 }; 86 };
61 /* End PBXFrameworksBuildPhase section */ 87 /* End PBXFrameworksBuildPhase section */
62 88
63 /* Begin PBXGroup section */ 89 /* Begin PBXGroup section */
64 - 203D5C95A734778D93D18369 /* Pods */ = { 90 + 331C8082294A63A400263BE5 /* RunnerTests */ = {
65 isa = PBXGroup; 91 isa = PBXGroup;
66 children = ( 92 children = (
67 - D5B36FCD262B39F867CFDEEE /* Pods-Runner.debug.xcconfig */,  
68 - 32FD382A786B3A0080FE63FD /* Pods-Runner.release.xcconfig */,  
69 - F0D5742F0690BE32D07B033A /* Pods-Runner.profile.xcconfig */, 93 + 331C807B294A618700263BE5 /* RunnerTests.swift */,
70 ); 94 );
71 - path = Pods; 95 + path = RunnerTests;
72 sourceTree = "<group>"; 96 sourceTree = "<group>";
73 }; 97 };
74 9740EEB11CF90186004384FC /* Flutter */ = { 98 9740EEB11CF90186004384FC /* Flutter */ = {
@@ -88,8 +112,9 @@ @@ -88,8 +112,9 @@
88 9740EEB11CF90186004384FC /* Flutter */, 112 9740EEB11CF90186004384FC /* Flutter */,
89 97C146F01CF9000F007C117D /* Runner */, 113 97C146F01CF9000F007C117D /* Runner */,
90 97C146EF1CF9000F007C117D /* Products */, 114 97C146EF1CF9000F007C117D /* Products */,
91 - 203D5C95A734778D93D18369 /* Pods */,  
92 - FF36E403CAC9E06A5A96BB9F /* Frameworks */, 115 + 331C8082294A63A400263BE5 /* RunnerTests */,
  116 + C3326B04728E979C0CAEA680 /* Pods */,
  117 + E31F04DB28A3D0F29210F29D /* Frameworks */,
93 ); 118 );
94 sourceTree = "<group>"; 119 sourceTree = "<group>";
95 }; 120 };
@@ -97,6 +122,7 @@ @@ -97,6 +122,7 @@
97 isa = PBXGroup; 122 isa = PBXGroup;
98 children = ( 123 children = (
99 97C146EE1CF9000F007C117D /* Runner.app */, 124 97C146EE1CF9000F007C117D /* Runner.app */,
  125 + 331C8081294A63A400263BE5 /* RunnerTests.xctest */,
100 ); 126 );
101 name = Products; 127 name = Products;
102 sourceTree = "<group>"; 128 sourceTree = "<group>";
@@ -116,10 +142,24 @@ @@ -116,10 +142,24 @@
116 path = Runner; 142 path = Runner;
117 sourceTree = "<group>"; 143 sourceTree = "<group>";
118 }; 144 };
119 - FF36E403CAC9E06A5A96BB9F /* Frameworks */ = { 145 + C3326B04728E979C0CAEA680 /* Pods */ = {
120 isa = PBXGroup; 146 isa = PBXGroup;
121 children = ( 147 children = (
122 - 54E006799E73DEAB41FD3623 /* Pods_Runner.framework */, 148 + CB190BADFE09EBDD6E5B44BE /* Pods-Runner.debug.xcconfig */,
  149 + F3732C1D66ACA2383B88CDC2 /* Pods-Runner.release.xcconfig */,
  150 + 337C24E5CFDB233CDBA51D9D /* Pods-Runner.profile.xcconfig */,
  151 + A5A24D61913C510FB38A434E /* Pods-RunnerTests.debug.xcconfig */,
  152 + ADC5B74E7E0BCF65C9CD3AA9 /* Pods-RunnerTests.release.xcconfig */,
  153 + 7F6B8553738879C25774B609 /* Pods-RunnerTests.profile.xcconfig */,
  154 + );
  155 + path = Pods;
  156 + sourceTree = "<group>";
  157 + };
  158 + E31F04DB28A3D0F29210F29D /* Frameworks */ = {
  159 + isa = PBXGroup;
  160 + children = (
  161 + FB50C06655B1959BAA8EAF64 /* Pods_Runner.framework */,
  162 + 9F20A7A668B7797BBB5443C1 /* Pods_RunnerTests.framework */,
123 ); 163 );
124 name = Frameworks; 164 name = Frameworks;
125 sourceTree = "<group>"; 165 sourceTree = "<group>";
@@ -127,18 +167,37 @@ @@ -127,18 +167,37 @@
127 /* End PBXGroup section */ 167 /* End PBXGroup section */
128 168
129 /* Begin PBXNativeTarget section */ 169 /* Begin PBXNativeTarget section */
  170 + 331C8080294A63A400263BE5 /* RunnerTests */ = {
  171 + isa = PBXNativeTarget;
  172 + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
  173 + buildPhases = (
  174 + C7DE006A696F551C4E067E41 /* [CP] Check Pods Manifest.lock */,
  175 + 331C807D294A63A400263BE5 /* Sources */,
  176 + 331C807F294A63A400263BE5 /* Resources */,
  177 + 0F3F7D03C80D20F6F18A5A17 /* Frameworks */,
  178 + );
  179 + buildRules = (
  180 + );
  181 + dependencies = (
  182 + 331C8086294A63A400263BE5 /* PBXTargetDependency */,
  183 + );
  184 + name = RunnerTests;
  185 + productName = RunnerTests;
  186 + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */;
  187 + productType = "com.apple.product-type.bundle.unit-test";
  188 + };
130 97C146ED1CF9000F007C117D /* Runner */ = { 189 97C146ED1CF9000F007C117D /* Runner */ = {
131 isa = PBXNativeTarget; 190 isa = PBXNativeTarget;
132 buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; 191 buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
133 buildPhases = ( 192 buildPhases = (
134 - B086C54F5791A4E759CB6822 /* [CP] Check Pods Manifest.lock */, 193 + C8221F629E52D01B6ABC23B2 /* [CP] Check Pods Manifest.lock */,
135 9740EEB61CF901F6004384FC /* Run Script */, 194 9740EEB61CF901F6004384FC /* Run Script */,
136 97C146EA1CF9000F007C117D /* Sources */, 195 97C146EA1CF9000F007C117D /* Sources */,
137 97C146EB1CF9000F007C117D /* Frameworks */, 196 97C146EB1CF9000F007C117D /* Frameworks */,
138 97C146EC1CF9000F007C117D /* Resources */, 197 97C146EC1CF9000F007C117D /* Resources */,
139 9705A1C41CF9048500538489 /* Embed Frameworks */, 198 9705A1C41CF9048500538489 /* Embed Frameworks */,
140 3B06AD1E1E4923F5004D2608 /* Thin Binary */, 199 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
141 - F825A499E8C466DB9DC6247D /* [CP] Embed Pods Frameworks */, 200 + 3DBCC0215D7BED1D9A756EA3 /* [CP] Embed Pods Frameworks */,
142 ); 201 );
143 buildRules = ( 202 buildRules = (
144 ); 203 );
@@ -155,9 +214,14 @@ @@ -155,9 +214,14 @@
155 97C146E61CF9000F007C117D /* Project object */ = { 214 97C146E61CF9000F007C117D /* Project object */ = {
156 isa = PBXProject; 215 isa = PBXProject;
157 attributes = { 216 attributes = {
  217 + BuildIndependentTargetsInParallel = YES;
158 LastUpgradeCheck = 1430; 218 LastUpgradeCheck = 1430;
159 ORGANIZATIONNAME = ""; 219 ORGANIZATIONNAME = "";
160 TargetAttributes = { 220 TargetAttributes = {
  221 + 331C8080294A63A400263BE5 = {
  222 + CreatedOnToolsVersion = 14.0;
  223 + TestTargetID = 97C146ED1CF9000F007C117D;
  224 + };
161 97C146ED1CF9000F007C117D = { 225 97C146ED1CF9000F007C117D = {
162 CreatedOnToolsVersion = 7.3.1; 226 CreatedOnToolsVersion = 7.3.1;
163 LastSwiftMigration = 1100; 227 LastSwiftMigration = 1100;
@@ -178,11 +242,19 @@ @@ -178,11 +242,19 @@
178 projectRoot = ""; 242 projectRoot = "";
179 targets = ( 243 targets = (
180 97C146ED1CF9000F007C117D /* Runner */, 244 97C146ED1CF9000F007C117D /* Runner */,
  245 + 331C8080294A63A400263BE5 /* RunnerTests */,
181 ); 246 );
182 }; 247 };
183 /* End PBXProject section */ 248 /* End PBXProject section */
184 249
185 /* Begin PBXResourcesBuildPhase section */ 250 /* Begin PBXResourcesBuildPhase section */
  251 + 331C807F294A63A400263BE5 /* Resources */ = {
  252 + isa = PBXResourcesBuildPhase;
  253 + buildActionMask = 2147483647;
  254 + files = (
  255 + );
  256 + runOnlyForDeploymentPostprocessing = 0;
  257 + };
186 97C146EC1CF9000F007C117D /* Resources */ = { 258 97C146EC1CF9000F007C117D /* Resources */ = {
187 isa = PBXResourcesBuildPhase; 259 isa = PBXResourcesBuildPhase;
188 buildActionMask = 2147483647; 260 buildActionMask = 2147483647;
@@ -213,6 +285,23 @@ @@ -213,6 +285,23 @@
213 shellPath = /bin/sh; 285 shellPath = /bin/sh;
214 shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; 286 shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
215 }; 287 };
  288 + 3DBCC0215D7BED1D9A756EA3 /* [CP] Embed Pods Frameworks */ = {
  289 + isa = PBXShellScriptBuildPhase;
  290 + buildActionMask = 2147483647;
  291 + files = (
  292 + );
  293 + inputFileListPaths = (
  294 + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
  295 + );
  296 + name = "[CP] Embed Pods Frameworks";
  297 + outputFileListPaths = (
  298 + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
  299 + );
  300 + runOnlyForDeploymentPostprocessing = 0;
  301 + shellPath = /bin/sh;
  302 + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
  303 + showEnvVarsInLog = 0;
  304 + };
216 9740EEB61CF901F6004384FC /* Run Script */ = { 305 9740EEB61CF901F6004384FC /* Run Script */ = {
217 isa = PBXShellScriptBuildPhase; 306 isa = PBXShellScriptBuildPhase;
218 alwaysOutOfDate = 1; 307 alwaysOutOfDate = 1;
@@ -228,7 +317,7 @@ @@ -228,7 +317,7 @@
228 shellPath = /bin/sh; 317 shellPath = /bin/sh;
229 shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; 318 shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
230 }; 319 };
231 - B086C54F5791A4E759CB6822 /* [CP] Check Pods Manifest.lock */ = { 320 + C7DE006A696F551C4E067E41 /* [CP] Check Pods Manifest.lock */ = {
232 isa = PBXShellScriptBuildPhase; 321 isa = PBXShellScriptBuildPhase;
233 buildActionMask = 2147483647; 322 buildActionMask = 2147483647;
234 files = ( 323 files = (
@@ -243,33 +332,46 @@ @@ -243,33 +332,46 @@
243 outputFileListPaths = ( 332 outputFileListPaths = (
244 ); 333 );
245 outputPaths = ( 334 outputPaths = (
246 - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", 335 + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
247 ); 336 );
248 runOnlyForDeploymentPostprocessing = 0; 337 runOnlyForDeploymentPostprocessing = 0;
249 shellPath = /bin/sh; 338 shellPath = /bin/sh;
250 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"; 339 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";
251 showEnvVarsInLog = 0; 340 showEnvVarsInLog = 0;
252 }; 341 };
253 - F825A499E8C466DB9DC6247D /* [CP] Embed Pods Frameworks */ = { 342 + C8221F629E52D01B6ABC23B2 /* [CP] Check Pods Manifest.lock */ = {
254 isa = PBXShellScriptBuildPhase; 343 isa = PBXShellScriptBuildPhase;
255 buildActionMask = 2147483647; 344 buildActionMask = 2147483647;
256 files = ( 345 files = (
257 ); 346 );
258 inputFileListPaths = ( 347 inputFileListPaths = (
259 - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",  
260 ); 348 );
261 - name = "[CP] Embed Pods Frameworks"; 349 + inputPaths = (
  350 + "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
  351 + "${PODS_ROOT}/Manifest.lock",
  352 + );
  353 + name = "[CP] Check Pods Manifest.lock";
262 outputFileListPaths = ( 354 outputFileListPaths = (
263 - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", 355 + );
  356 + outputPaths = (
  357 + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
264 ); 358 );
265 runOnlyForDeploymentPostprocessing = 0; 359 runOnlyForDeploymentPostprocessing = 0;
266 shellPath = /bin/sh; 360 shellPath = /bin/sh;
267 - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; 361 + 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";
268 showEnvVarsInLog = 0; 362 showEnvVarsInLog = 0;
269 }; 363 };
270 /* End PBXShellScriptBuildPhase section */ 364 /* End PBXShellScriptBuildPhase section */
271 365
272 /* Begin PBXSourcesBuildPhase section */ 366 /* Begin PBXSourcesBuildPhase section */
  367 + 331C807D294A63A400263BE5 /* Sources */ = {
  368 + isa = PBXSourcesBuildPhase;
  369 + buildActionMask = 2147483647;
  370 + files = (
  371 + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */,
  372 + );
  373 + runOnlyForDeploymentPostprocessing = 0;
  374 + };
273 97C146EA1CF9000F007C117D /* Sources */ = { 375 97C146EA1CF9000F007C117D /* Sources */ = {
274 isa = PBXSourcesBuildPhase; 376 isa = PBXSourcesBuildPhase;
275 buildActionMask = 2147483647; 377 buildActionMask = 2147483647;
@@ -281,6 +383,14 @@ @@ -281,6 +383,14 @@
281 }; 383 };
282 /* End PBXSourcesBuildPhase section */ 384 /* End PBXSourcesBuildPhase section */
283 385
  386 +/* Begin PBXTargetDependency section */
  387 + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = {
  388 + isa = PBXTargetDependency;
  389 + target = 97C146ED1CF9000F007C117D /* Runner */;
  390 + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */;
  391 + };
  392 +/* End PBXTargetDependency section */
  393 +
284 /* Begin PBXVariantGroup section */ 394 /* Begin PBXVariantGroup section */
285 97C146FA1CF9000F007C117D /* Main.storyboard */ = { 395 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
286 isa = PBXVariantGroup; 396 isa = PBXVariantGroup;
@@ -376,6 +486,56 @@ @@ -376,6 +486,56 @@
376 }; 486 };
377 name = Profile; 487 name = Profile;
378 }; 488 };
  489 + 331C8088294A63A400263BE5 /* Debug */ = {
  490 + isa = XCBuildConfiguration;
  491 + baseConfigurationReference = A5A24D61913C510FB38A434E /* Pods-RunnerTests.debug.xcconfig */;
  492 + buildSettings = {
  493 + BUNDLE_LOADER = "$(TEST_HOST)";
  494 + CODE_SIGN_STYLE = Automatic;
  495 + CURRENT_PROJECT_VERSION = 1;
  496 + GENERATE_INFOPLIST_FILE = YES;
  497 + MARKETING_VERSION = 1.0;
  498 + PRODUCT_BUNDLE_IDENTIFIER = com.example.mobile-scanner.RunnerTests;
  499 + PRODUCT_NAME = "$(TARGET_NAME)";
  500 + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
  501 + SWIFT_OPTIMIZATION_LEVEL = "-Onone";
  502 + SWIFT_VERSION = 5.0;
  503 + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
  504 + };
  505 + name = Debug;
  506 + };
  507 + 331C8089294A63A400263BE5 /* Release */ = {
  508 + isa = XCBuildConfiguration;
  509 + baseConfigurationReference = ADC5B74E7E0BCF65C9CD3AA9 /* Pods-RunnerTests.release.xcconfig */;
  510 + buildSettings = {
  511 + BUNDLE_LOADER = "$(TEST_HOST)";
  512 + CODE_SIGN_STYLE = Automatic;
  513 + CURRENT_PROJECT_VERSION = 1;
  514 + GENERATE_INFOPLIST_FILE = YES;
  515 + MARKETING_VERSION = 1.0;
  516 + PRODUCT_BUNDLE_IDENTIFIER = com.example.mobile-scanner.RunnerTests;
  517 + PRODUCT_NAME = "$(TARGET_NAME)";
  518 + SWIFT_VERSION = 5.0;
  519 + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
  520 + };
  521 + name = Release;
  522 + };
  523 + 331C808A294A63A400263BE5 /* Profile */ = {
  524 + isa = XCBuildConfiguration;
  525 + baseConfigurationReference = 7F6B8553738879C25774B609 /* Pods-RunnerTests.profile.xcconfig */;
  526 + buildSettings = {
  527 + BUNDLE_LOADER = "$(TEST_HOST)";
  528 + CODE_SIGN_STYLE = Automatic;
  529 + CURRENT_PROJECT_VERSION = 1;
  530 + GENERATE_INFOPLIST_FILE = YES;
  531 + MARKETING_VERSION = 1.0;
  532 + PRODUCT_BUNDLE_IDENTIFIER = com.example.mobile-scanner.RunnerTests;
  533 + PRODUCT_NAME = "$(TARGET_NAME)";
  534 + SWIFT_VERSION = 5.0;
  535 + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
  536 + };
  537 + name = Profile;
  538 + };
379 97C147031CF9000F007C117D /* Debug */ = { 539 97C147031CF9000F007C117D /* Debug */ = {
380 isa = XCBuildConfiguration; 540 isa = XCBuildConfiguration;
381 buildSettings = { 541 buildSettings = {
@@ -537,6 +697,16 @@ @@ -537,6 +697,16 @@
537 /* End XCBuildConfiguration section */ 697 /* End XCBuildConfiguration section */
538 698
539 /* Begin XCConfigurationList section */ 699 /* Begin XCConfigurationList section */
  700 + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
  701 + isa = XCConfigurationList;
  702 + buildConfigurations = (
  703 + 331C8088294A63A400263BE5 /* Debug */,
  704 + 331C8089294A63A400263BE5 /* Release */,
  705 + 331C808A294A63A400263BE5 /* Profile */,
  706 + );
  707 + defaultConfigurationIsVisible = 0;
  708 + defaultConfigurationName = Release;
  709 + };
540 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { 710 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
541 isa = XCConfigurationList; 711 isa = XCConfigurationList;
542 buildConfigurations = ( 712 buildConfigurations = (
@@ -37,6 +37,17 @@ @@ -37,6 +37,17 @@
37 </BuildableReference> 37 </BuildableReference>
38 </MacroExpansion> 38 </MacroExpansion>
39 <Testables> 39 <Testables>
  40 + <TestableReference
  41 + skipped = "NO"
  42 + parallelizable = "YES">
  43 + <BuildableReference
  44 + BuildableIdentifier = "primary"
  45 + BlueprintIdentifier = "331C8080294A63A400263BE5"
  46 + BuildableName = "RunnerTests.xctest"
  47 + BlueprintName = "RunnerTests"
  48 + ReferencedContainer = "container:Runner.xcodeproj">
  49 + </BuildableReference>
  50 + </TestableReference>
40 </Testables> 51 </Testables>
41 </TestAction> 52 </TestAction>
42 <LaunchAction 53 <LaunchAction
@@ -2,8 +2,6 @@ @@ -2,8 +2,6 @@
2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3 <plist version="1.0"> 3 <plist version="1.0">
4 <dict> 4 <dict>
5 - <key>CADisableMinimumFrameDurationOnPhone</key>  
6 - <true/>  
7 <key>CFBundleDevelopmentRegion</key> 5 <key>CFBundleDevelopmentRegion</key>
8 <string>$(DEVELOPMENT_LANGUAGE)</string> 6 <string>$(DEVELOPMENT_LANGUAGE)</string>
9 <key>CFBundleDisplayName</key> 7 <key>CFBundleDisplayName</key>
@@ -30,8 +28,6 @@ @@ -30,8 +28,6 @@
30 <string>This app needs camera access to scan QR codes</string> 28 <string>This app needs camera access to scan QR codes</string>
31 <key>NSPhotoLibraryUsageDescription</key> 29 <key>NSPhotoLibraryUsageDescription</key>
32 <string>This app needs photos access to get QR code from photo library</string> 30 <string>This app needs photos access to get QR code from photo library</string>
33 - <key>UIApplicationSupportsIndirectInputEvents</key>  
34 - <true/>  
35 <key>UILaunchStoryboardName</key> 31 <key>UILaunchStoryboardName</key>
36 <string>LaunchScreen</string> 32 <string>LaunchScreen</string>
37 <key>UIMainStoryboardFile</key> 33 <key>UIMainStoryboardFile</key>
@@ -51,5 +47,9 @@ @@ -51,5 +47,9 @@
51 </array> 47 </array>
52 <key>UIViewControllerBasedStatusBarAppearance</key> 48 <key>UIViewControllerBasedStatusBarAppearance</key>
53 <false/> 49 <false/>
  50 + <key>CADisableMinimumFrameDurationOnPhone</key>
  51 + <true/>
  52 + <key>UIApplicationSupportsIndirectInputEvents</key>
  53 + <true/>
54 </dict> 54 </dict>
55 </plist> 55 </plist>
  1 +import Flutter
  2 +import UIKit
  3 +import XCTest
  4 +
  5 +@testable import mobile_scanner
  6 +
  7 +// This demonstrates a simple unit test of the Swift portion of this plugin's implementation.
  8 +//
  9 +// See https://developer.apple.com/documentation/xctest for more information about using XCTest.
  10 +
  11 +class RunnerTests: XCTestCase {
  12 +
  13 + // TODO: this test was left as-is from the template, but it obviuosly fails for now.
  14 + // Add new tests later.
  15 + /*
  16 + func testGetPlatformVersion() {
  17 + let plugin = MobileScannerPlugin()
  18 +
  19 + let call = FlutterMethodCall(methodName: "getPlatformVersion", arguments: [])
  20 +
  21 + let resultExpectation = expectation(description: "result block must be called.")
  22 + plugin.handle(call) { result in
  23 + XCTAssertEqual(result as! String, "iOS " + UIDevice.current.systemVersion)
  24 + resultExpectation.fulfill()
  25 + }
  26 + waitForExpectations(timeout: 1)
  27 + }*/
  28 +
  29 +}
@@ -31,13 +31,16 @@ target 'Runner' do @@ -31,13 +31,16 @@ target 'Runner' do
31 use_modular_headers! 31 use_modular_headers!
32 32
33 flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) 33 flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
  34 + target 'RunnerTests' do
  35 + inherit! :search_paths
  36 + end
34 end 37 end
35 38
36 post_install do |installer| 39 post_install do |installer|
37 installer.pods_project.targets.each do |target| 40 installer.pods_project.targets.each do |target|
38 flutter_additional_macos_build_settings(target) 41 flutter_additional_macos_build_settings(target)
39 - target.build_configurations.each do |config|  
40 - config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '10.14'  
41 - end 42 + target.build_configurations.each do |config|
  43 + config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '10.14'
  44 + end
42 end 45 end
43 end 46 end
@@ -21,15 +21,24 @@ @@ -21,15 +21,24 @@
21 /* End PBXAggregateTarget section */ 21 /* End PBXAggregateTarget section */
22 22
23 /* Begin PBXBuildFile section */ 23 /* Begin PBXBuildFile section */
  24 + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; };
24 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; 25 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
25 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; 26 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
26 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 27 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
27 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 28 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
28 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; 29 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
29 - 5348E36EDC155A01222C3599 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41950513928B2DA794C685E3 /* Pods_Runner.framework */; }; 30 + 58A22AC50A792ECA6D027507 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 419C3BC9593F6DE903D740F0 /* Pods_RunnerTests.framework */; };
  31 + F209F1436A19CBC32BFFB26A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EEB40B96A6FFC92607527710 /* Pods_Runner.framework */; };
30 /* End PBXBuildFile section */ 32 /* End PBXBuildFile section */
31 33
32 /* Begin PBXContainerItemProxy section */ 34 /* Begin PBXContainerItemProxy section */
  35 + 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = {
  36 + isa = PBXContainerItemProxy;
  37 + containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
  38 + proxyType = 1;
  39 + remoteGlobalIDString = 33CC10EC2044A3C60003C045;
  40 + remoteInfo = Runner;
  41 + };
33 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { 42 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {
34 isa = PBXContainerItemProxy; 43 isa = PBXContainerItemProxy;
35 containerPortal = 33CC10E52044A3C60003C045 /* Project object */; 44 containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
@@ -53,6 +62,9 @@ @@ -53,6 +62,9 @@
53 /* End PBXCopyFilesBuildPhase section */ 62 /* End PBXCopyFilesBuildPhase section */
54 63
55 /* Begin PBXFileReference section */ 64 /* Begin PBXFileReference section */
  65 + 23E216AF8BD40EB8E52863BE /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
  66 + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
  67 + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
56 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; }; 68 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
57 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; }; 69 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
58 33CC10ED2044A3C60003C045 /* mobile_scanner_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = mobile_scanner_example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 70 33CC10ED2044A3C60003C045 /* mobile_scanner_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = mobile_scanner_example.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -67,34 +79,43 @@ @@ -67,34 +79,43 @@
67 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; }; 79 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
68 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; }; 80 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
69 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; }; 81 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
70 - 41950513928B2DA794C685E3 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };  
71 - 433FCBF2B1E3F653F96B3C79 /* 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>"; }; 82 + 419C3BC9593F6DE903D740F0 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
72 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; }; 83 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
  84 + 8201964090D9F78BC65FF5D2 /* 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>"; };
73 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; }; 85 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
74 - 97D4F0103EE99761EF216A9C /* 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>"; };  
75 - B67CB61EED45BF13A197D997 /* 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>"; }; 86 + 9AB9A83BADC7F755AA147D15 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
  87 + AA0CC45DA8C7F4A77CA80A2E /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
  88 + CAEA4D71BCF9158847C4F6AC /* 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>"; };
  89 + E1DC1D18B8C13B1C75763506 /* 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>"; };
  90 + EEB40B96A6FFC92607527710 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
76 /* End PBXFileReference section */ 91 /* End PBXFileReference section */
77 92
78 /* Begin PBXFrameworksBuildPhase section */ 93 /* Begin PBXFrameworksBuildPhase section */
  94 + 331C80D2294CF70F00263BE5 /* Frameworks */ = {
  95 + isa = PBXFrameworksBuildPhase;
  96 + buildActionMask = 2147483647;
  97 + files = (
  98 + 58A22AC50A792ECA6D027507 /* Pods_RunnerTests.framework in Frameworks */,
  99 + );
  100 + runOnlyForDeploymentPostprocessing = 0;
  101 + };
79 33CC10EA2044A3C60003C045 /* Frameworks */ = { 102 33CC10EA2044A3C60003C045 /* Frameworks */ = {
80 isa = PBXFrameworksBuildPhase; 103 isa = PBXFrameworksBuildPhase;
81 buildActionMask = 2147483647; 104 buildActionMask = 2147483647;
82 files = ( 105 files = (
83 - 5348E36EDC155A01222C3599 /* Pods_Runner.framework in Frameworks */, 106 + F209F1436A19CBC32BFFB26A /* Pods_Runner.framework in Frameworks */,
84 ); 107 );
85 runOnlyForDeploymentPostprocessing = 0; 108 runOnlyForDeploymentPostprocessing = 0;
86 }; 109 };
87 /* End PBXFrameworksBuildPhase section */ 110 /* End PBXFrameworksBuildPhase section */
88 111
89 /* Begin PBXGroup section */ 112 /* Begin PBXGroup section */
90 - 20F8C9AA20C2A495C125E194 /* Pods */ = { 113 + 331C80D6294CF71000263BE5 /* RunnerTests */ = {
91 isa = PBXGroup; 114 isa = PBXGroup;
92 children = ( 115 children = (
93 - B67CB61EED45BF13A197D997 /* Pods-Runner.debug.xcconfig */,  
94 - 97D4F0103EE99761EF216A9C /* Pods-Runner.release.xcconfig */,  
95 - 433FCBF2B1E3F653F96B3C79 /* Pods-Runner.profile.xcconfig */, 116 + 331C80D7294CF71000263BE5 /* RunnerTests.swift */,
96 ); 117 );
97 - path = Pods; 118 + path = RunnerTests;
98 sourceTree = "<group>"; 119 sourceTree = "<group>";
99 }; 120 };
100 33BA886A226E78AF003329D5 /* Configs */ = { 121 33BA886A226E78AF003329D5 /* Configs */ = {
@@ -113,9 +134,10 @@ @@ -113,9 +134,10 @@
113 children = ( 134 children = (
114 33FAB671232836740065AC1E /* Runner */, 135 33FAB671232836740065AC1E /* Runner */,
115 33CEB47122A05771004F2AC0 /* Flutter */, 136 33CEB47122A05771004F2AC0 /* Flutter */,
  137 + 331C80D6294CF71000263BE5 /* RunnerTests */,
116 33CC10EE2044A3C60003C045 /* Products */, 138 33CC10EE2044A3C60003C045 /* Products */,
117 - 20F8C9AA20C2A495C125E194 /* Pods */,  
118 - 64FFE901A03ED70F67D8DCD6 /* Frameworks */, 139 + D73912EC22F37F3D000D13A0 /* Frameworks */,
  140 + 48C702343BA8440B9F0C4C3B /* Pods */,
119 ); 141 );
120 sourceTree = "<group>"; 142 sourceTree = "<group>";
121 }; 143 };
@@ -123,6 +145,7 @@ @@ -123,6 +145,7 @@
123 isa = PBXGroup; 145 isa = PBXGroup;
124 children = ( 146 children = (
125 33CC10ED2044A3C60003C045 /* mobile_scanner_example.app */, 147 33CC10ED2044A3C60003C045 /* mobile_scanner_example.app */,
  148 + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */,
126 ); 149 );
127 name = Products; 150 name = Products;
128 sourceTree = "<group>"; 151 sourceTree = "<group>";
@@ -162,10 +185,25 @@ @@ -162,10 +185,25 @@
162 path = Runner; 185 path = Runner;
163 sourceTree = "<group>"; 186 sourceTree = "<group>";
164 }; 187 };
165 - 64FFE901A03ED70F67D8DCD6 /* Frameworks */ = { 188 + 48C702343BA8440B9F0C4C3B /* Pods */ = {
166 isa = PBXGroup; 189 isa = PBXGroup;
167 children = ( 190 children = (
168 - 41950513928B2DA794C685E3 /* Pods_Runner.framework */, 191 + E1DC1D18B8C13B1C75763506 /* Pods-Runner.debug.xcconfig */,
  192 + CAEA4D71BCF9158847C4F6AC /* Pods-Runner.release.xcconfig */,
  193 + 8201964090D9F78BC65FF5D2 /* Pods-Runner.profile.xcconfig */,
  194 + AA0CC45DA8C7F4A77CA80A2E /* Pods-RunnerTests.debug.xcconfig */,
  195 + 23E216AF8BD40EB8E52863BE /* Pods-RunnerTests.release.xcconfig */,
  196 + 9AB9A83BADC7F755AA147D15 /* Pods-RunnerTests.profile.xcconfig */,
  197 + );
  198 + name = Pods;
  199 + path = Pods;
  200 + sourceTree = "<group>";
  201 + };
  202 + D73912EC22F37F3D000D13A0 /* Frameworks */ = {
  203 + isa = PBXGroup;
  204 + children = (
  205 + EEB40B96A6FFC92607527710 /* Pods_Runner.framework */,
  206 + 419C3BC9593F6DE903D740F0 /* Pods_RunnerTests.framework */,
169 ); 207 );
170 name = Frameworks; 208 name = Frameworks;
171 sourceTree = "<group>"; 209 sourceTree = "<group>";
@@ -173,17 +211,36 @@ @@ -173,17 +211,36 @@
173 /* End PBXGroup section */ 211 /* End PBXGroup section */
174 212
175 /* Begin PBXNativeTarget section */ 213 /* Begin PBXNativeTarget section */
  214 + 331C80D4294CF70F00263BE5 /* RunnerTests */ = {
  215 + isa = PBXNativeTarget;
  216 + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
  217 + buildPhases = (
  218 + 26566874B4D5506B07E5CB72 /* [CP] Check Pods Manifest.lock */,
  219 + 331C80D1294CF70F00263BE5 /* Sources */,
  220 + 331C80D2294CF70F00263BE5 /* Frameworks */,
  221 + 331C80D3294CF70F00263BE5 /* Resources */,
  222 + );
  223 + buildRules = (
  224 + );
  225 + dependencies = (
  226 + 331C80DA294CF71000263BE5 /* PBXTargetDependency */,
  227 + );
  228 + name = RunnerTests;
  229 + productName = RunnerTests;
  230 + productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */;
  231 + productType = "com.apple.product-type.bundle.unit-test";
  232 + };
176 33CC10EC2044A3C60003C045 /* Runner */ = { 233 33CC10EC2044A3C60003C045 /* Runner */ = {
177 isa = PBXNativeTarget; 234 isa = PBXNativeTarget;
178 buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; 235 buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
179 buildPhases = ( 236 buildPhases = (
180 - 11C0752B00246A027DB2D859 /* [CP] Check Pods Manifest.lock */, 237 + FF04EF1310CEA88A9000CF01 /* [CP] Check Pods Manifest.lock */,
181 33CC10E92044A3C60003C045 /* Sources */, 238 33CC10E92044A3C60003C045 /* Sources */,
182 33CC10EA2044A3C60003C045 /* Frameworks */, 239 33CC10EA2044A3C60003C045 /* Frameworks */,
183 33CC10EB2044A3C60003C045 /* Resources */, 240 33CC10EB2044A3C60003C045 /* Resources */,
184 33CC110E2044A8840003C045 /* Bundle Framework */, 241 33CC110E2044A8840003C045 /* Bundle Framework */,
185 3399D490228B24CF009A79C7 /* ShellScript */, 242 3399D490228B24CF009A79C7 /* ShellScript */,
186 - E6424ECF3C1308BAAF6E5E67 /* [CP] Embed Pods Frameworks */, 243 + 861067CDDCB0554984369B14 /* [CP] Embed Pods Frameworks */,
187 ); 244 );
188 buildRules = ( 245 buildRules = (
189 ); 246 );
@@ -205,6 +262,10 @@ @@ -205,6 +262,10 @@
205 LastUpgradeCheck = 1430; 262 LastUpgradeCheck = 1430;
206 ORGANIZATIONNAME = ""; 263 ORGANIZATIONNAME = "";
207 TargetAttributes = { 264 TargetAttributes = {
  265 + 331C80D4294CF70F00263BE5 = {
  266 + CreatedOnToolsVersion = 14.0;
  267 + TestTargetID = 33CC10EC2044A3C60003C045;
  268 + };
208 33CC10EC2044A3C60003C045 = { 269 33CC10EC2044A3C60003C045 = {
209 CreatedOnToolsVersion = 9.2; 270 CreatedOnToolsVersion = 9.2;
210 LastSwiftMigration = 1100; 271 LastSwiftMigration = 1100;
@@ -235,12 +296,20 @@ @@ -235,12 +296,20 @@
235 projectRoot = ""; 296 projectRoot = "";
236 targets = ( 297 targets = (
237 33CC10EC2044A3C60003C045 /* Runner */, 298 33CC10EC2044A3C60003C045 /* Runner */,
  299 + 331C80D4294CF70F00263BE5 /* RunnerTests */,
238 33CC111A2044C6BA0003C045 /* Flutter Assemble */, 300 33CC111A2044C6BA0003C045 /* Flutter Assemble */,
239 ); 301 );
240 }; 302 };
241 /* End PBXProject section */ 303 /* End PBXProject section */
242 304
243 /* Begin PBXResourcesBuildPhase section */ 305 /* Begin PBXResourcesBuildPhase section */
  306 + 331C80D3294CF70F00263BE5 /* Resources */ = {
  307 + isa = PBXResourcesBuildPhase;
  308 + buildActionMask = 2147483647;
  309 + files = (
  310 + );
  311 + runOnlyForDeploymentPostprocessing = 0;
  312 + };
244 33CC10EB2044A3C60003C045 /* Resources */ = { 313 33CC10EB2044A3C60003C045 /* Resources */ = {
245 isa = PBXResourcesBuildPhase; 314 isa = PBXResourcesBuildPhase;
246 buildActionMask = 2147483647; 315 buildActionMask = 2147483647;
@@ -253,7 +322,7 @@ @@ -253,7 +322,7 @@
253 /* End PBXResourcesBuildPhase section */ 322 /* End PBXResourcesBuildPhase section */
254 323
255 /* Begin PBXShellScriptBuildPhase section */ 324 /* Begin PBXShellScriptBuildPhase section */
256 - 11C0752B00246A027DB2D859 /* [CP] Check Pods Manifest.lock */ = { 325 + 26566874B4D5506B07E5CB72 /* [CP] Check Pods Manifest.lock */ = {
257 isa = PBXShellScriptBuildPhase; 326 isa = PBXShellScriptBuildPhase;
258 buildActionMask = 2147483647; 327 buildActionMask = 2147483647;
259 files = ( 328 files = (
@@ -268,7 +337,7 @@ @@ -268,7 +337,7 @@
268 outputFileListPaths = ( 337 outputFileListPaths = (
269 ); 338 );
270 outputPaths = ( 339 outputPaths = (
271 - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", 340 + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt",
272 ); 341 );
273 runOnlyForDeploymentPostprocessing = 0; 342 runOnlyForDeploymentPostprocessing = 0;
274 shellPath = /bin/sh; 343 shellPath = /bin/sh;
@@ -313,7 +382,7 @@ @@ -313,7 +382,7 @@
313 shellPath = /bin/sh; 382 shellPath = /bin/sh;
314 shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; 383 shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
315 }; 384 };
316 - E6424ECF3C1308BAAF6E5E67 /* [CP] Embed Pods Frameworks */ = { 385 + 861067CDDCB0554984369B14 /* [CP] Embed Pods Frameworks */ = {
317 isa = PBXShellScriptBuildPhase; 386 isa = PBXShellScriptBuildPhase;
318 buildActionMask = 2147483647; 387 buildActionMask = 2147483647;
319 files = ( 388 files = (
@@ -330,9 +399,39 @@ @@ -330,9 +399,39 @@
330 shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; 399 shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
331 showEnvVarsInLog = 0; 400 showEnvVarsInLog = 0;
332 }; 401 };
  402 + FF04EF1310CEA88A9000CF01 /* [CP] Check Pods Manifest.lock */ = {
  403 + isa = PBXShellScriptBuildPhase;
  404 + buildActionMask = 2147483647;
  405 + files = (
  406 + );
  407 + inputFileListPaths = (
  408 + );
  409 + inputPaths = (
  410 + "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
  411 + "${PODS_ROOT}/Manifest.lock",
  412 + );
  413 + name = "[CP] Check Pods Manifest.lock";
  414 + outputFileListPaths = (
  415 + );
  416 + outputPaths = (
  417 + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
  418 + );
  419 + runOnlyForDeploymentPostprocessing = 0;
  420 + shellPath = /bin/sh;
  421 + 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";
  422 + showEnvVarsInLog = 0;
  423 + };
333 /* End PBXShellScriptBuildPhase section */ 424 /* End PBXShellScriptBuildPhase section */
334 425
335 /* Begin PBXSourcesBuildPhase section */ 426 /* Begin PBXSourcesBuildPhase section */
  427 + 331C80D1294CF70F00263BE5 /* Sources */ = {
  428 + isa = PBXSourcesBuildPhase;
  429 + buildActionMask = 2147483647;
  430 + files = (
  431 + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */,
  432 + );
  433 + runOnlyForDeploymentPostprocessing = 0;
  434 + };
336 33CC10E92044A3C60003C045 /* Sources */ = { 435 33CC10E92044A3C60003C045 /* Sources */ = {
337 isa = PBXSourcesBuildPhase; 436 isa = PBXSourcesBuildPhase;
338 buildActionMask = 2147483647; 437 buildActionMask = 2147483647;
@@ -346,6 +445,11 @@ @@ -346,6 +445,11 @@
346 /* End PBXSourcesBuildPhase section */ 445 /* End PBXSourcesBuildPhase section */
347 446
348 /* Begin PBXTargetDependency section */ 447 /* Begin PBXTargetDependency section */
  448 + 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = {
  449 + isa = PBXTargetDependency;
  450 + target = 33CC10EC2044A3C60003C045 /* Runner */;
  451 + targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */;
  452 + };
349 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { 453 33CC11202044C79F0003C045 /* PBXTargetDependency */ = {
350 isa = PBXTargetDependency; 454 isa = PBXTargetDependency;
351 target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; 455 target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;
@@ -366,6 +470,51 @@ @@ -366,6 +470,51 @@
366 /* End PBXVariantGroup section */ 470 /* End PBXVariantGroup section */
367 471
368 /* Begin XCBuildConfiguration section */ 472 /* Begin XCBuildConfiguration section */
  473 + 331C80DB294CF71000263BE5 /* Debug */ = {
  474 + isa = XCBuildConfiguration;
  475 + baseConfigurationReference = AA0CC45DA8C7F4A77CA80A2E /* Pods-RunnerTests.debug.xcconfig */;
  476 + buildSettings = {
  477 + BUNDLE_LOADER = "$(TEST_HOST)";
  478 + CURRENT_PROJECT_VERSION = 1;
  479 + GENERATE_INFOPLIST_FILE = YES;
  480 + MARKETING_VERSION = 1.0;
  481 + PRODUCT_BUNDLE_IDENTIFIER = dev.steenbakker.mobileScannerExample.RunnerTests;
  482 + PRODUCT_NAME = "$(TARGET_NAME)";
  483 + SWIFT_VERSION = 5.0;
  484 + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/mobile_scanner_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/mobile_scanner_example";
  485 + };
  486 + name = Debug;
  487 + };
  488 + 331C80DC294CF71000263BE5 /* Release */ = {
  489 + isa = XCBuildConfiguration;
  490 + baseConfigurationReference = 23E216AF8BD40EB8E52863BE /* Pods-RunnerTests.release.xcconfig */;
  491 + buildSettings = {
  492 + BUNDLE_LOADER = "$(TEST_HOST)";
  493 + CURRENT_PROJECT_VERSION = 1;
  494 + GENERATE_INFOPLIST_FILE = YES;
  495 + MARKETING_VERSION = 1.0;
  496 + PRODUCT_BUNDLE_IDENTIFIER = dev.steenbakker.mobileScannerExample.RunnerTests;
  497 + PRODUCT_NAME = "$(TARGET_NAME)";
  498 + SWIFT_VERSION = 5.0;
  499 + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/mobile_scanner_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/mobile_scanner_example";
  500 + };
  501 + name = Release;
  502 + };
  503 + 331C80DD294CF71000263BE5 /* Profile */ = {
  504 + isa = XCBuildConfiguration;
  505 + baseConfigurationReference = 9AB9A83BADC7F755AA147D15 /* Pods-RunnerTests.profile.xcconfig */;
  506 + buildSettings = {
  507 + BUNDLE_LOADER = "$(TEST_HOST)";
  508 + CURRENT_PROJECT_VERSION = 1;
  509 + GENERATE_INFOPLIST_FILE = YES;
  510 + MARKETING_VERSION = 1.0;
  511 + PRODUCT_BUNDLE_IDENTIFIER = dev.steenbakker.mobileScannerExample.RunnerTests;
  512 + PRODUCT_NAME = "$(TARGET_NAME)";
  513 + SWIFT_VERSION = 5.0;
  514 + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/mobile_scanner_example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/mobile_scanner_example";
  515 + };
  516 + name = Profile;
  517 + };
369 338D0CE9231458BD00FA5F75 /* Profile */ = { 518 338D0CE9231458BD00FA5F75 /* Profile */ = {
370 isa = XCBuildConfiguration; 519 isa = XCBuildConfiguration;
371 baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 520 baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
@@ -599,6 +748,16 @@ @@ -599,6 +748,16 @@
599 /* End XCBuildConfiguration section */ 748 /* End XCBuildConfiguration section */
600 749
601 /* Begin XCConfigurationList section */ 750 /* Begin XCConfigurationList section */
  751 + 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
  752 + isa = XCConfigurationList;
  753 + buildConfigurations = (
  754 + 331C80DB294CF71000263BE5 /* Debug */,
  755 + 331C80DC294CF71000263BE5 /* Release */,
  756 + 331C80DD294CF71000263BE5 /* Profile */,
  757 + );
  758 + defaultConfigurationIsVisible = 0;
  759 + defaultConfigurationName = Release;
  760 + };
602 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { 761 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = {
603 isa = XCConfigurationList; 762 isa = XCConfigurationList;
604 buildConfigurations = ( 763 buildConfigurations = (
@@ -37,6 +37,17 @@ @@ -37,6 +37,17 @@
37 </BuildableReference> 37 </BuildableReference>
38 </MacroExpansion> 38 </MacroExpansion>
39 <Testables> 39 <Testables>
  40 + <TestableReference
  41 + skipped = "NO"
  42 + parallelizable = "YES">
  43 + <BuildableReference
  44 + BuildableIdentifier = "primary"
  45 + BlueprintIdentifier = "331C80D4294CF70F00263BE5"
  46 + BuildableName = "RunnerTests.xctest"
  47 + BlueprintName = "RunnerTests"
  48 + ReferencedContainer = "container:Runner.xcodeproj">
  49 + </BuildableReference>
  50 + </TestableReference>
40 </Testables> 51 </Testables>
41 </TestAction> 52 </TestAction>
42 <LaunchAction 53 <LaunchAction
@@ -11,4 +11,4 @@ PRODUCT_NAME = mobile_scanner_example @@ -11,4 +11,4 @@ PRODUCT_NAME = mobile_scanner_example
11 PRODUCT_BUNDLE_IDENTIFIER = dev.steenbakker.mobileScannerExample 11 PRODUCT_BUNDLE_IDENTIFIER = dev.steenbakker.mobileScannerExample
12 12
13 // The copyright displayed in application information 13 // The copyright displayed in application information
14 -PRODUCT_COPYRIGHT = Copyright © 2022 dev.steenbakker. All rights reserved. 14 +PRODUCT_COPYRIGHT = Copyright © 2023 dev.steenbakker. All rights reserved.
@@ -3,7 +3,7 @@ import FlutterMacOS @@ -3,7 +3,7 @@ import FlutterMacOS
3 3
4 class MainFlutterWindow: NSWindow { 4 class MainFlutterWindow: NSWindow {
5 override func awakeFromNib() { 5 override func awakeFromNib() {
6 - let flutterViewController = FlutterViewController.init() 6 + let flutterViewController = FlutterViewController()
7 let windowFrame = self.frame 7 let windowFrame = self.frame
8 self.contentViewController = flutterViewController 8 self.contentViewController = flutterViewController
9 self.setFrame(windowFrame, display: true) 9 self.setFrame(windowFrame, display: true)
  1 +import FlutterMacOS
  2 +import Cocoa
  3 +import XCTest
  4 +
  5 +@testable import mobile_scanner
  6 +
  7 +// This demonstrates a simple unit test of the Swift portion of this plugin's implementation.
  8 +//
  9 +// See https://developer.apple.com/documentation/xctest for more information about using XCTest.
  10 +
  11 +class RunnerTests: XCTestCase {
  12 +
  13 + // TODO: this test was left as-is from the template, but it obviuosly fails for now.
  14 + // Add new tests later.
  15 + /*
  16 + func testGetPlatformVersion() {
  17 + let plugin = MobileScannerPlugin()
  18 +
  19 + let call = FlutterMethodCall(methodName: "getPlatformVersion", arguments: [])
  20 +
  21 + let resultExpectation = expectation(description: "result block must be called.")
  22 + plugin.handle(call) { result in
  23 + XCTAssertEqual(result as! String,
  24 + "macOS " + ProcessInfo.processInfo.operatingSystemVersionString)
  25 + resultExpectation.fulfill()
  26 + }
  27 + waitForExpectations(timeout: 1)
  28 + }*/
  29 +
  30 +}