Skip to content

Commit 924b663

Browse files
loic-sharmaandroidseb
authored andcommitted
[various] Add Swift Package Manager integration to image picker examp… (flutter#8227)
This migrates the following plugins' example apps to have Swift Package Manager integration: 1. image_picker 2. image_picker_ios 3. image_picker_macos This also checks-in CocoaPods integration stuff that was missing. This raises the example apps' Flutter SDK requirement to 3.24.0 or higher. I will get a text exemption for this change. The example apps were migrated using the following commands: ``` dart run script/tool/bin/flutter_plugin_tools.dart build-examples --ios --swift-package-manager dart run script/tool/bin/flutter_plugin_tools.dart build-examples --macos --swift-package-manager ``` Part of: flutter/flutter#159173
1 parent ce48580 commit 924b663

File tree

9 files changed

+212
-68
lines changed

9 files changed

+212
-68
lines changed

packages/image_picker/image_picker/example/ios/Runner.xcodeproj/project.pbxproj

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
/* Begin PBXBuildFile section */
1010
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
1111
5C9513011EC38BD300040975 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C9513001EC38BD300040975 /* GeneratedPluginRegistrant.m */; };
12+
78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; };
1213
978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; };
1314
97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; };
1415
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
@@ -62,6 +63,7 @@
6263
isa = PBXFrameworksBuildPhase;
6364
buildActionMask = 2147483647;
6465
files = (
66+
78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */,
6567
F4F7A436CCA4BF276270A3AE /* libPods-Runner.a in Frameworks */,
6668
);
6769
runOnlyForDeploymentPostprocessing = 0;
@@ -169,13 +171,15 @@
169171
97C146EC1CF9000F007C117D /* Resources */,
170172
9705A1C41CF9048500538489 /* Embed Frameworks */,
171173
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
172-
4E2B287455E42F1E5CEE81C5 /* [CP] Copy Pods Resources */,
173174
);
174175
buildRules = (
175176
);
176177
dependencies = (
177178
);
178179
name = Runner;
180+
packageProductDependencies = (
181+
78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */,
182+
);
179183
productName = Runner;
180184
productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
181185
productType = "com.apple.product-type.application";
@@ -187,7 +191,7 @@
187191
isa = PBXProject;
188192
attributes = {
189193
DefaultBuildSystemTypeForWorkspace = Original;
190-
LastUpgradeCheck = 1430;
194+
LastUpgradeCheck = 1510;
191195
ORGANIZATIONNAME = "The Flutter Authors";
192196
TargetAttributes = {
193197
97C146ED1CF9000F007C117D = {
@@ -209,6 +213,9 @@
209213
Base,
210214
);
211215
mainGroup = 97C146E51CF9000F007C117D;
216+
packageReferences = (
217+
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */,
218+
);
212219
productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
213220
projectDirPath = "";
214221
projectRoot = "";
@@ -249,26 +256,6 @@
249256
shellPath = /bin/sh;
250257
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
251258
};
252-
4E2B287455E42F1E5CEE81C5 /* [CP] Copy Pods Resources */ = {
253-
isa = PBXShellScriptBuildPhase;
254-
buildActionMask = 2147483647;
255-
files = (
256-
);
257-
inputPaths = (
258-
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh",
259-
"${PODS_CONFIGURATION_BUILD_DIR}/image_picker_ios/image_picker_ios_privacy.bundle",
260-
"${PODS_CONFIGURATION_BUILD_DIR}/video_player_avfoundation/video_player_avfoundation_privacy.bundle",
261-
);
262-
name = "[CP] Copy Pods Resources";
263-
outputPaths = (
264-
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/image_picker_ios_privacy.bundle",
265-
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/video_player_avfoundation_privacy.bundle",
266-
);
267-
runOnlyForDeploymentPostprocessing = 0;
268-
shellPath = /bin/sh;
269-
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
270-
showEnvVarsInLog = 0;
271-
};
272259
9740EEB61CF901F6004384FC /* Run Script */ = {
273260
isa = PBXShellScriptBuildPhase;
274261
alwaysOutOfDate = 1;
@@ -513,6 +500,20 @@
513500
defaultConfigurationName = Release;
514501
};
515502
/* End XCConfigurationList section */
503+
504+
/* Begin XCLocalSwiftPackageReference section */
505+
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = {
506+
isa = XCLocalSwiftPackageReference;
507+
relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage;
508+
};
509+
/* End XCLocalSwiftPackageReference section */
510+
511+
/* Begin XCSwiftPackageProductDependency section */
512+
78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = {
513+
isa = XCSwiftPackageProductDependency;
514+
productName = FlutterGeneratedPluginSwiftPackage;
515+
};
516+
/* End XCSwiftPackageProductDependency section */
516517
};
517518
rootObject = 97C146E61CF9000F007C117D /* Project object */;
518519
}

packages/image_picker/image_picker/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,28 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "1430"
3+
LastUpgradeVersion = "1510"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"
77
buildImplicitDependencies = "YES">
8+
<PreActions>
9+
<ExecutionAction
10+
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
11+
<ActionContent
12+
title = "Run Prepare Flutter Framework Script"
13+
scriptText = "/bin/sh &quot;$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh&quot; prepare&#10;">
14+
<EnvironmentBuildable>
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
18+
BuildableName = "Runner.app"
19+
BlueprintName = "Runner"
20+
ReferencedContainer = "container:Runner.xcodeproj">
21+
</BuildableReference>
22+
</EnvironmentBuildable>
23+
</ActionContent>
24+
</ExecutionAction>
25+
</PreActions>
826
<BuildActionEntries>
927
<BuildActionEntry
1028
buildForTesting = "YES"
@@ -78,6 +96,7 @@
7896
ignoresPersistentStateOnLaunch = "NO"
7997
debugDocumentVersioning = "YES"
8098
debugServiceExtension = "internal"
99+
enableGPUValidationMode = "1"
81100
allowLocationSimulation = "YES">
82101
<BuildableProductRunnable
83102
runnableDebuggingMode = "0">

packages/image_picker/image_picker/example/macos/Runner.xcodeproj/project.pbxproj

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
2727
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
2828
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
29+
78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; };
2930
E752A8CC1D9387A266D93ED4 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 686DC79A64D670F5C504FD08 /* Pods_Runner.framework */; };
3031
/* End PBXBuildFile section */
3132

@@ -80,6 +81,7 @@
8081
isa = PBXFrameworksBuildPhase;
8182
buildActionMask = 2147483647;
8283
files = (
84+
78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */,
8385
E752A8CC1D9387A266D93ED4 /* Pods_Runner.framework in Frameworks */,
8486
);
8587
runOnlyForDeploymentPostprocessing = 0;
@@ -184,14 +186,16 @@
184186
33CC10EB2044A3C60003C045 /* Resources */,
185187
33CC110E2044A8840003C045 /* Bundle Framework */,
186188
3399D490228B24CF009A79C7 /* ShellScript */,
187-
3472B1913B7D85CC661265B6 /* [CP] Embed Pods Frameworks */,
188189
);
189190
buildRules = (
190191
);
191192
dependencies = (
192193
33CC11202044C79F0003C045 /* PBXTargetDependency */,
193194
);
194195
name = Runner;
196+
packageProductDependencies = (
197+
78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */,
198+
);
195199
productName = Runner;
196200
productReference = 33CC10ED2044A3C60003C045 /* image_picker_example.app */;
197201
productType = "com.apple.product-type.application";
@@ -203,7 +207,7 @@
203207
isa = PBXProject;
204208
attributes = {
205209
LastSwiftUpdateCheck = 0920;
206-
LastUpgradeCheck = 1430;
210+
LastUpgradeCheck = 1510;
207211
ORGANIZATIONNAME = "";
208212
TargetAttributes = {
209213
33CC10EC2044A3C60003C045 = {
@@ -231,6 +235,9 @@
231235
Base,
232236
);
233237
mainGroup = 33CC10E42044A3C60003C045;
238+
packageReferences = (
239+
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */,
240+
);
234241
productRefGroup = 33CC10EE2044A3C60003C045 /* Products */;
235242
projectDirPath = "";
236243
projectRoot = "";
@@ -292,23 +299,6 @@
292299
shellPath = /bin/sh;
293300
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
294301
};
295-
3472B1913B7D85CC661265B6 /* [CP] Embed Pods Frameworks */ = {
296-
isa = PBXShellScriptBuildPhase;
297-
buildActionMask = 2147483647;
298-
files = (
299-
);
300-
inputFileListPaths = (
301-
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
302-
);
303-
name = "[CP] Embed Pods Frameworks";
304-
outputFileListPaths = (
305-
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
306-
);
307-
runOnlyForDeploymentPostprocessing = 0;
308-
shellPath = /bin/sh;
309-
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
310-
showEnvVarsInLog = 0;
311-
};
312302
D4E5037333BDDE606E4946C1 /* [CP] Check Pods Manifest.lock */ = {
313303
isa = PBXShellScriptBuildPhase;
314304
buildActionMask = 2147483647;
@@ -628,6 +618,20 @@
628618
defaultConfigurationName = Release;
629619
};
630620
/* End XCConfigurationList section */
621+
622+
/* Begin XCLocalSwiftPackageReference section */
623+
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = {
624+
isa = XCLocalSwiftPackageReference;
625+
relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage;
626+
};
627+
/* End XCLocalSwiftPackageReference section */
628+
629+
/* Begin XCSwiftPackageProductDependency section */
630+
78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = {
631+
isa = XCSwiftPackageProductDependency;
632+
productName = FlutterGeneratedPluginSwiftPackage;
633+
};
634+
/* End XCSwiftPackageProductDependency section */
631635
};
632636
rootObject = 33CC10E52044A3C60003C045 /* Project object */;
633637
}

packages/image_picker/image_picker/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,28 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "1430"
3+
LastUpgradeVersion = "1510"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"
77
buildImplicitDependencies = "YES">
8+
<PreActions>
9+
<ExecutionAction
10+
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
11+
<ActionContent
12+
title = "Run Prepare Flutter Framework Script"
13+
scriptText = "&quot;$FLUTTER_ROOT&quot;/packages/flutter_tools/bin/macos_assemble.sh prepare&#10;">
14+
<EnvironmentBuildable>
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
18+
BuildableName = "image_picker_example.app"
19+
BlueprintName = "Runner"
20+
ReferencedContainer = "container:Runner.xcodeproj">
21+
</BuildableReference>
22+
</EnvironmentBuildable>
23+
</ActionContent>
24+
</ExecutionAction>
25+
</PreActions>
826
<BuildActionEntries>
927
<BuildActionEntry
1028
buildForTesting = "YES"
@@ -48,6 +66,7 @@
4866
ignoresPersistentStateOnLaunch = "NO"
4967
debugDocumentVersioning = "YES"
5068
debugServiceExtension = "internal"
69+
enableGPUValidationMode = "1"
5170
allowLocationSimulation = "YES">
5271
<BuildableProductRunnable
5372
runnableDebuggingMode = "0">

packages/image_picker/image_picker_ios/example/ios/Runner.xcodeproj/project.pbxproj

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
7865C5FD294157BC0010E17F /* icnsImage.icns in Resources */ = {isa = PBXBuildFile; fileRef = 7865C5FB294157BB0010E17F /* icnsImage.icns */; };
3333
7865C5FF294252A60010E17F /* proRawImage.dng in Resources */ = {isa = PBXBuildFile; fileRef = 7865C5FE294252A60010E17F /* proRawImage.dng */; };
3434
7865C600294252A60010E17F /* proRawImage.dng in Resources */ = {isa = PBXBuildFile; fileRef = 7865C5FE294252A60010E17F /* proRawImage.dng */; };
35+
78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; };
3536
78CF8D862BC5E7070051231B /* OCMock in Frameworks */ = {isa = PBXBuildFile; productRef = 78CF8D852BC5E7070051231B /* OCMock */; };
3637
86430DF9272D71E9002D9D6C /* gifImage.gif in Resources */ = {isa = PBXBuildFile; fileRef = 9FC8F0E8229FA49E00C8D58F /* gifImage.gif */; };
3738
86E9A893272754860017E6E0 /* PickerSaveImageToPathOperationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 86E9A892272754860017E6E0 /* PickerSaveImageToPathOperationTests.m */; };
@@ -146,6 +147,7 @@
146147
isa = PBXFrameworksBuildPhase;
147148
buildActionMask = 2147483647;
148149
files = (
150+
78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */,
149151
F4F7A436CCA4BF276270A3AE /* libPods-Runner.a in Frameworks */,
150152
);
151153
runOnlyForDeploymentPostprocessing = 0;
@@ -329,13 +331,15 @@
329331
97C146EC1CF9000F007C117D /* Resources */,
330332
9705A1C41CF9048500538489 /* Embed Frameworks */,
331333
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
332-
6BD37CAC9EAC69E93E541F56 /* [CP] Copy Pods Resources */,
333334
);
334335
buildRules = (
335336
);
336337
dependencies = (
337338
);
338339
name = Runner;
340+
packageProductDependencies = (
341+
78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */,
342+
);
339343
productName = Runner;
340344
productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
341345
productType = "com.apple.product-type.application";
@@ -380,6 +384,7 @@
380384
);
381385
mainGroup = 97C146E51CF9000F007C117D;
382386
packageReferences = (
387+
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */,
383388
78CF8D842BC5E7070051231B /* XCRemoteSwiftPackageReference "ocmock" */,
384389
);
385390
productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
@@ -459,26 +464,6 @@
459464
shellPath = /bin/sh;
460465
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
461466
};
462-
6BD37CAC9EAC69E93E541F56 /* [CP] Copy Pods Resources */ = {
463-
isa = PBXShellScriptBuildPhase;
464-
buildActionMask = 2147483647;
465-
files = (
466-
);
467-
inputPaths = (
468-
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh",
469-
"${PODS_CONFIGURATION_BUILD_DIR}/image_picker_ios/image_picker_ios_privacy.bundle",
470-
"${PODS_CONFIGURATION_BUILD_DIR}/video_player_avfoundation/video_player_avfoundation_privacy.bundle",
471-
);
472-
name = "[CP] Copy Pods Resources";
473-
outputPaths = (
474-
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/image_picker_ios_privacy.bundle",
475-
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/video_player_avfoundation_privacy.bundle",
476-
);
477-
runOnlyForDeploymentPostprocessing = 0;
478-
shellPath = /bin/sh;
479-
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
480-
showEnvVarsInLog = 0;
481-
};
482467
9740EEB61CF901F6004384FC /* Run Script */ = {
483468
isa = PBXShellScriptBuildPhase;
484469
alwaysOutOfDate = 1;
@@ -888,6 +873,13 @@
888873
};
889874
/* End XCConfigurationList section */
890875

876+
/* Begin XCLocalSwiftPackageReference section */
877+
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = {
878+
isa = XCLocalSwiftPackageReference;
879+
relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage;
880+
};
881+
/* End XCLocalSwiftPackageReference section */
882+
891883
/* Begin XCRemoteSwiftPackageReference section */
892884
78CF8D842BC5E7070051231B /* XCRemoteSwiftPackageReference "ocmock" */ = {
893885
isa = XCRemoteSwiftPackageReference;
@@ -900,6 +892,10 @@
900892
/* End XCRemoteSwiftPackageReference section */
901893

902894
/* Begin XCSwiftPackageProductDependency section */
895+
78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = {
896+
isa = XCSwiftPackageProductDependency;
897+
productName = FlutterGeneratedPluginSwiftPackage;
898+
};
903899
78CF8D852BC5E7070051231B /* OCMock */ = {
904900
isa = XCSwiftPackageProductDependency;
905901
package = 78CF8D842BC5E7070051231B /* XCRemoteSwiftPackageReference "ocmock" */;

0 commit comments

Comments
 (0)