Skip to content

Commit e578a16

Browse files
[image_picker] Fix XCTests in Xcode 15 (#5074)
When compiled with Xcode 15, images that can't be loaded by UIImage will cause the codepaths in some XCTest tests to throw exceptions. To address this: - Replace the test ICO file with one that UIImage is able to open. - Remove the SVG test, since UIImage cannot directly load SVGs. Fixes flutter/flutter#134973
1 parent 8004a8e commit e578a16

File tree

5 files changed

+30
-26
lines changed

5 files changed

+30
-26
lines changed

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

+29-13
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
782C2B46299ECE33008DC703 /* jpgImageWithRightOrientation.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 782C2B44299ECE33008DC703 /* jpgImageWithRightOrientation.jpg */; };
2323
7865C5E12941326F0010E17F /* bmpImage.bmp in Resources */ = {isa = PBXBuildFile; fileRef = 7865C5E02941326F0010E17F /* bmpImage.bmp */; };
2424
7865C5E22941326F0010E17F /* bmpImage.bmp in Resources */ = {isa = PBXBuildFile; fileRef = 7865C5E02941326F0010E17F /* bmpImage.bmp */; };
25-
7865C5E4294132D50010E17F /* svgImage.svg in Resources */ = {isa = PBXBuildFile; fileRef = 7865C5E3294132D50010E17F /* svgImage.svg */; };
26-
7865C5E5294132D50010E17F /* svgImage.svg in Resources */ = {isa = PBXBuildFile; fileRef = 7865C5E3294132D50010E17F /* svgImage.svg */; };
2725
7865C5E72941374F0010E17F /* heicImage.heic in Resources */ = {isa = PBXBuildFile; fileRef = 7865C5E62941374F0010E17F /* heicImage.heic */; };
2826
7865C5E82941374F0010E17F /* heicImage.heic in Resources */ = {isa = PBXBuildFile; fileRef = 7865C5E62941374F0010E17F /* heicImage.heic */; };
2927
7865C5EA294137960010E17F /* icoImage.ico in Resources */ = {isa = PBXBuildFile; fileRef = 7865C5E9294137960010E17F /* icoImage.ico */; };
@@ -99,7 +97,6 @@
9997
68F4B463228B3AB500C25614 /* PhotoAssetUtilTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PhotoAssetUtilTests.m; sourceTree = "<group>"; };
10098
782C2B44299ECE33008DC703 /* jpgImageWithRightOrientation.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = jpgImageWithRightOrientation.jpg; sourceTree = "<group>"; };
10199
7865C5E02941326F0010E17F /* bmpImage.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmpImage.bmp; sourceTree = "<group>"; };
102-
7865C5E3294132D50010E17F /* svgImage.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = svgImage.svg; sourceTree = "<group>"; };
103100
7865C5E62941374F0010E17F /* heicImage.heic */ = {isa = PBXFileReference; lastKnownFileType = file; path = heicImage.heic; sourceTree = "<group>"; };
104101
7865C5E9294137960010E17F /* icoImage.ico */ = {isa = PBXFileReference; lastKnownFileType = image.ico; path = icoImage.ico; sourceTree = "<group>"; };
105102
7865C5EC294137AB0010E17F /* tiffImage.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = tiffImage.tiff; sourceTree = "<group>"; };
@@ -182,7 +179,6 @@
182179
7865C5FB294157BB0010E17F /* icnsImage.icns */,
183180
7865C5E9294137960010E17F /* icoImage.ico */,
184181
7865C5FE294252A60010E17F /* proRawImage.dng */,
185-
7865C5E3294132D50010E17F /* svgImage.svg */,
186182
7865C5EC294137AB0010E17F /* tiffImage.tiff */,
187183
);
188184
path = TestImages;
@@ -345,7 +341,7 @@
345341
isa = PBXProject;
346342
attributes = {
347343
DefaultBuildSystemTypeForWorkspace = Original;
348-
LastUpgradeCheck = 1300;
344+
LastUpgradeCheck = 1430;
349345
ORGANIZATIONNAME = "The Flutter Authors";
350346
TargetAttributes = {
351347
334733F12668136400DCC49E = {
@@ -394,7 +390,6 @@
394390
buildActionMask = 2147483647;
395391
files = (
396392
7865C5E12941326F0010E17F /* bmpImage.bmp in Resources */,
397-
7865C5E4294132D50010E17F /* svgImage.svg in Resources */,
398393
86430DF9272D71E9002D9D6C /* gifImage.gif in Resources */,
399394
7865C5FF294252A60010E17F /* proRawImage.dng in Resources */,
400395
7865C5EA294137960010E17F /* icoImage.ico in Resources */,
@@ -422,7 +417,6 @@
422417
7865C5EB294137960010E17F /* icoImage.ico in Resources */,
423418
7865C5E22941326F0010E17F /* bmpImage.bmp in Resources */,
424419
7865C600294252A60010E17F /* proRawImage.dng in Resources */,
425-
7865C5E5294132D50010E17F /* svgImage.svg in Resources */,
426420
);
427421
runOnlyForDeploymentPostprocessing = 0;
428422
};
@@ -588,7 +582,11 @@
588582
BUNDLE_LOADER = "$(TEST_HOST)";
589583
CODE_SIGN_STYLE = Automatic;
590584
INFOPLIST_FILE = RunnerTests/Info.plist;
591-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
585+
LD_RUNPATH_SEARCH_PATHS = (
586+
"$(inherited)",
587+
"@executable_path/Frameworks",
588+
"@loader_path/Frameworks",
589+
);
592590
PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.plugins.RunnerTests;
593591
PRODUCT_NAME = "$(TARGET_NAME)";
594592
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/Runner";
@@ -602,7 +600,11 @@
602600
BUNDLE_LOADER = "$(TEST_HOST)";
603601
CODE_SIGN_STYLE = Automatic;
604602
INFOPLIST_FILE = RunnerTests/Info.plist;
605-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
603+
LD_RUNPATH_SEARCH_PATHS = (
604+
"$(inherited)",
605+
"@executable_path/Frameworks",
606+
"@loader_path/Frameworks",
607+
);
606608
PRODUCT_BUNDLE_IDENTIFIER = dev.flutter.plugins.RunnerTests;
607609
PRODUCT_NAME = "$(TARGET_NAME)";
608610
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/Runner";
@@ -622,7 +624,11 @@
622624
GCC_C_LANGUAGE_STANDARD = gnu11;
623625
INFOPLIST_FILE = RunnerUITests/Info.plist;
624626
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
625-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
627+
LD_RUNPATH_SEARCH_PATHS = (
628+
"$(inherited)",
629+
"@executable_path/Frameworks",
630+
"@loader_path/Frameworks",
631+
);
626632
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
627633
MTL_FAST_MATH = YES;
628634
PRODUCT_BUNDLE_IDENTIFIER = com.google.RunnerUITests;
@@ -645,7 +651,11 @@
645651
GCC_C_LANGUAGE_STANDARD = gnu11;
646652
INFOPLIST_FILE = RunnerUITests/Info.plist;
647653
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
648-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
654+
LD_RUNPATH_SEARCH_PATHS = (
655+
"$(inherited)",
656+
"@executable_path/Frameworks",
657+
"@loader_path/Frameworks",
658+
);
649659
MTL_FAST_MATH = YES;
650660
PRODUCT_BUNDLE_IDENTIFIER = com.google.RunnerUITests;
651661
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -771,7 +781,10 @@
771781
"$(PROJECT_DIR)/Flutter",
772782
);
773783
INFOPLIST_FILE = Runner/Info.plist;
774-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
784+
LD_RUNPATH_SEARCH_PATHS = (
785+
"$(inherited)",
786+
"@executable_path/Frameworks",
787+
);
775788
LIBRARY_SEARCH_PATHS = (
776789
"$(inherited)",
777790
"$(PROJECT_DIR)/Flutter",
@@ -792,7 +805,10 @@
792805
"$(PROJECT_DIR)/Flutter",
793806
);
794807
INFOPLIST_FILE = Runner/Info.plist;
795-
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
808+
LD_RUNPATH_SEARCH_PATHS = (
809+
"$(inherited)",
810+
"@executable_path/Frameworks",
811+
);
796812
LIBRARY_SEARCH_PATHS = (
797813
"$(inherited)",
798814
"$(PROJECT_DIR)/Flutter",

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "1300"
3+
LastUpgradeVersion = "1430"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"

packages/image_picker/image_picker_ios/example/ios/RunnerTests/PickerSaveImageToPathOperationTests.m

-9
Original file line numberDiff line numberDiff line change
@@ -165,15 +165,6 @@ - (void)testSaveProRAWImage API_AVAILABLE(ios(14)) {
165165
[self verifySavingImageWithPickerResult:result fullMetadata:YES withExtension:@"jpg"];
166166
}
167167

168-
- (void)testSaveSVGImage API_AVAILABLE(ios(14)) {
169-
NSURL *imageURL = [[NSBundle bundleForClass:[self class]] URLForResource:@"svgImage"
170-
withExtension:@"svg"];
171-
NSItemProvider *itemProvider = [[NSItemProvider alloc] initWithContentsOfURL:imageURL];
172-
PHPickerResult *result = [self createPickerResultWithProvider:itemProvider];
173-
174-
[self verifySavingImageWithPickerResult:result fullMetadata:YES withExtension:@"jpg"];
175-
}
176-
177168
- (void)testSaveTIFFImage API_AVAILABLE(ios(14)) {
178169
NSURL *imageURL = [[NSBundle bundleForClass:[self class]] URLForResource:@"tiffImage"
179170
withExtension:@"tiff"];
Binary file not shown.

packages/image_picker/image_picker_ios/example/ios/TestImages/svgImage.svg

-3
This file was deleted.

0 commit comments

Comments
 (0)