From ea35fc6fb86a76675030581d745221d32f80226b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Sharma?= <737941+loic-sharma@users.noreply.github.com> Date: Wed, 10 Jul 2024 11:26:08 -0700 Subject: [PATCH] [camera_avfoundation] Adds Swift Package Manager compatibility (#7080) Adds Swift Package Manager support to `camera_avfoundation`. This does not migrate the example app's Xcode project to use Swift Package Manager, that's tracked by https://github.com/flutter/flutter/issues/148021. Fixes https://github.com/flutter/flutter/issues/146902 --- .../camera/camera_avfoundation/CHANGELOG.md | 4 +++ .../camera_avfoundation/example/ios/Podfile | 2 -- .../ios/Runner.xcodeproj/project.pbxproj | 27 ++++++++++++++++ .../ios/RunnerTests/AvailableCamerasTest.m | 2 ++ ...eraCaptureSessionQueueRaceConditionTests.m | 2 ++ .../ios/RunnerTests/CameraFocusTests.m | 2 ++ .../RunnerTests/CameraMethodChannelTests.m | 2 ++ .../ios/RunnerTests/CameraOrientationTests.m | 2 ++ .../ios/RunnerTests/CameraPermissionTests.m | 2 ++ .../ios/RunnerTests/CameraPreviewPauseTests.m | 2 ++ .../ios/RunnerTests/CameraPropertiesTests.m | 2 ++ .../RunnerTests/CameraSessionPresetsTests.m | 2 ++ .../ios/RunnerTests/CameraSettingsTests.m | 2 ++ .../example/ios/RunnerTests/CameraTestUtils.h | 2 ++ .../ios/RunnerTests/FLTCamPhotoCaptureTests.m | 2 ++ .../ios/RunnerTests/FLTCamSampleBufferTests.m | 2 ++ .../RunnerTests/FLTSavePhotoDelegateTests.m | 2 ++ .../example/ios/RunnerTests/QueueUtilsTests.m | 2 ++ .../example/ios/RunnerTests/StreamingTest.m | 2 ++ .../RunnerTests/ThreadSafeEventChannelTests.m | 2 ++ .../camera_avfoundation/ios/Assets/.gitkeep | 0 .../ios/camera_avfoundation.podspec | 8 ++--- .../ios/camera_avfoundation/Package.swift | 31 +++++++++++++++++++ .../CameraPermissionUtils.m | 2 +- .../camera_avfoundation}/CameraPlugin.m | 16 +++++----- .../camera_avfoundation}/CameraProperties.m | 2 +- .../Sources/camera_avfoundation}/FLTCam.m | 12 +++---- .../FLTCamMediaSettingsAVWrapper.m | 2 +- .../FLTSavePhotoDelegate.m | 4 +-- .../FLTThreadSafeEventChannel.m | 4 +-- .../Sources/camera_avfoundation}/QueueUtils.m | 2 +- .../Resources/PrivacyInfo.xcprivacy | 0 .../include}/CameraPlugin.modulemap | 0 .../include}/camera_avfoundation-umbrella.h | 0 .../CameraPermissionUtils.h | 0 .../camera_avfoundation}/CameraPlugin.h | 0 .../camera_avfoundation}/CameraPlugin_Test.h | 0 .../camera_avfoundation}/CameraProperties.h | 1 + .../include/camera_avfoundation}/FLTCam.h | 0 .../FLTCamMediaSettingsAVWrapper.h | 0 .../camera_avfoundation}/FLTCam_Test.h | 0 .../FLTSavePhotoDelegate.h | 0 .../FLTSavePhotoDelegate_Test.h | 0 .../FLTThreadSafeEventChannel.h | 0 .../include/camera_avfoundation}/QueueUtils.h | 0 .../include/camera_avfoundation}/messages.g.h | 0 .../Sources/camera_avfoundation}/messages.g.m | 2 +- .../camera_avfoundation/pigeons/messages.dart | 11 +++++-- .../camera/camera_avfoundation/pubspec.yaml | 2 +- 49 files changed, 133 insertions(+), 33 deletions(-) delete mode 100644 packages/camera/camera_avfoundation/ios/Assets/.gitkeep create mode 100644 packages/camera/camera_avfoundation/ios/camera_avfoundation/Package.swift rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation}/CameraPermissionUtils.m (98%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation}/CameraPlugin.m (97%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation}/CameraProperties.m (97%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation}/FLTCam.m (99%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation}/FLTCamMediaSettingsAVWrapper.m (96%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation}/FLTSavePhotoDelegate.m (93%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation}/FLTThreadSafeEventChannel.m (90%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation}/QueueUtils.m (88%) rename packages/camera/camera_avfoundation/ios/{ => camera_avfoundation/Sources/camera_avfoundation}/Resources/PrivacyInfo.xcprivacy (100%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation/include}/CameraPlugin.modulemap (100%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation/include}/camera_avfoundation-umbrella.h (100%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation}/CameraPermissionUtils.h (100%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation}/CameraPlugin.h (100%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation}/CameraPlugin_Test.h (100%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation}/CameraProperties.h (98%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation}/FLTCam.h (100%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation}/FLTCamMediaSettingsAVWrapper.h (100%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation}/FLTCam_Test.h (100%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation}/FLTSavePhotoDelegate.h (100%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation}/FLTSavePhotoDelegate_Test.h (100%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation}/FLTThreadSafeEventChannel.h (100%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation}/QueueUtils.h (100%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation}/messages.g.h (100%) rename packages/camera/camera_avfoundation/ios/{Classes => camera_avfoundation/Sources/camera_avfoundation}/messages.g.m (99%) diff --git a/packages/camera/camera_avfoundation/CHANGELOG.md b/packages/camera/camera_avfoundation/CHANGELOG.md index cb1d18389425..767f9a75e0a2 100644 --- a/packages/camera/camera_avfoundation/CHANGELOG.md +++ b/packages/camera/camera_avfoundation/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.9.17 + +* Adds Swift Package Manager compatibility. + ## 0.9.16+3 * Removes unused `maxVideoDuration` code. diff --git a/packages/camera/camera_avfoundation/example/ios/Podfile b/packages/camera/camera_avfoundation/example/ios/Podfile index d20d11ee5ab9..bcdae34190c9 100644 --- a/packages/camera/camera_avfoundation/example/ios/Podfile +++ b/packages/camera/camera_avfoundation/example/ios/Podfile @@ -32,8 +32,6 @@ target 'Runner' do target 'RunnerTests' do inherit! :search_paths - # Pods for testing - pod 'OCMock', '~> 3.8.1' end end diff --git a/packages/camera/camera_avfoundation/example/ios/Runner.xcodeproj/project.pbxproj b/packages/camera/camera_avfoundation/example/ios/Runner.xcodeproj/project.pbxproj index 3ca0527f6015..3a1ce1ee25e2 100644 --- a/packages/camera/camera_avfoundation/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/camera/camera_avfoundation/example/ios/Runner.xcodeproj/project.pbxproj @@ -14,6 +14,7 @@ 25C3919135C3D981E6F800D0 /* libPods-RunnerTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1944D8072499F3B5E7653D44 /* libPods-RunnerTests.a */; }; 334733EA2668111C00DCC49E /* CameraOrientationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 03BB767226653ABE00CE5A93 /* CameraOrientationTests.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 408D7A792C3C9CD000B71F9A /* OCMock in Frameworks */ = {isa = PBXBuildFile; productRef = 408D7A782C3C9CD000B71F9A /* OCMock */; }; 43ED1537282570DE00EB00DE /* AvailableCamerasTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 43ED1536282570DE00EB00DE /* AvailableCamerasTest.m */; }; 788A065A27B0E02900533D74 /* StreamingTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 788A065927B0E02900533D74 /* StreamingTest.m */; }; 7D5FCCD42AEF9D0200FB7108 /* CameraSettingsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D5FCCD32AEF9D0200FB7108 /* CameraSettingsTests.m */; }; @@ -106,6 +107,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 408D7A792C3C9CD000B71F9A /* OCMock in Frameworks */, 25C3919135C3D981E6F800D0 /* libPods-RunnerTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -241,6 +243,9 @@ 03BB766E2665316900CE5A93 /* PBXTargetDependency */, ); name = RunnerTests; + packageProductDependencies = ( + 408D7A782C3C9CD000B71F9A /* OCMock */, + ); productName = camera_exampleTests; productReference = 03BB76682665316900CE5A93 /* RunnerTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; @@ -295,6 +300,9 @@ Base, ); mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + 408D7A772C3C9CD000B71F9A /* XCRemoteSwiftPackageReference "ocmock" */, + ); productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; projectRoot = ""; @@ -733,6 +741,25 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + 408D7A772C3C9CD000B71F9A /* XCRemoteSwiftPackageReference "ocmock" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/erikdoe/ocmock"; + requirement = { + kind = revision; + revision = fe1661a3efed11831a6452f4b1a0c5e6ddc08c3d; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 408D7A782C3C9CD000B71F9A /* OCMock */ = { + isa = XCSwiftPackageProductDependency; + package = 408D7A772C3C9CD000B71F9A /* XCRemoteSwiftPackageReference "ocmock" */; + productName = OCMock; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 97C146E61CF9000F007C117D /* Project object */; } diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/AvailableCamerasTest.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/AvailableCamerasTest.m index af7855afa857..f26a8dc48f16 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/AvailableCamerasTest.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/AvailableCamerasTest.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import XCTest; @import AVFoundation; #import diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraCaptureSessionQueueRaceConditionTests.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraCaptureSessionQueueRaceConditionTests.m index 226d6bfb1a5a..5892e1d4b797 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraCaptureSessionQueueRaceConditionTests.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraCaptureSessionQueueRaceConditionTests.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import XCTest; @interface CameraCaptureSessionQueueRaceConditionTests : XCTestCase diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraFocusTests.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraFocusTests.m index d13f5a77ceda..0cb8333345ab 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraFocusTests.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraFocusTests.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import XCTest; @import AVFoundation; #import diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraMethodChannelTests.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraMethodChannelTests.m index 55fc44e10cb8..0558e733f26f 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraMethodChannelTests.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraMethodChannelTests.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import XCTest; @import AVFoundation; #import diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraOrientationTests.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraOrientationTests.m index 57787a968a2d..e6ce8d48bc5b 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraOrientationTests.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraOrientationTests.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import XCTest; @import Flutter; diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPermissionTests.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPermissionTests.m index 24ca5b6525c9..02a610affaa5 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPermissionTests.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPermissionTests.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import AVFoundation; @import XCTest; #import diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPreviewPauseTests.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPreviewPauseTests.m index 96ae19ff14d0..04bdd0795dab 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPreviewPauseTests.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPreviewPauseTests.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import XCTest; @import AVFoundation; #import diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPropertiesTests.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPropertiesTests.m index 5b865d464dc9..6778efb4132f 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPropertiesTests.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraPropertiesTests.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import AVFoundation; @import XCTest; diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraSessionPresetsTests.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraSessionPresetsTests.m index 28f8d5de4e93..08cba70bf3a2 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraSessionPresetsTests.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraSessionPresetsTests.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import AVFoundation; @import XCTest; diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraSettingsTests.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraSettingsTests.m index da8fe2647f74..039ce122174e 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraSettingsTests.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraSettingsTests.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import XCTest; @import AVFoundation; #import diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraTestUtils.h b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraTestUtils.h index 295cbce36497..2bbb56c51a79 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraTestUtils.h +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/CameraTestUtils.h @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif NS_ASSUME_NONNULL_BEGIN diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/FLTCamPhotoCaptureTests.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/FLTCamPhotoCaptureTests.m index 20d0836ac7d7..7f17e39a6b0b 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/FLTCamPhotoCaptureTests.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/FLTCamPhotoCaptureTests.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import AVFoundation; @import XCTest; #import diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/FLTCamSampleBufferTests.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/FLTCamSampleBufferTests.m index ecf3a896957d..65f19cdc7b7d 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/FLTCamSampleBufferTests.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/FLTCamSampleBufferTests.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import AVFoundation; @import XCTest; #import diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/FLTSavePhotoDelegateTests.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/FLTSavePhotoDelegateTests.m index f7633591ccb6..c92d824e4696 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/FLTSavePhotoDelegateTests.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/FLTSavePhotoDelegateTests.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import AVFoundation; @import XCTest; #import diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/QueueUtilsTests.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/QueueUtilsTests.m index 128b47b9089d..57b508093d9f 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/QueueUtilsTests.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/QueueUtilsTests.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import XCTest; @interface QueueUtilsTests : XCTestCase diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/StreamingTest.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/StreamingTest.m index 14a611852dcc..53c7c1da2c70 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/StreamingTest.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/StreamingTest.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import XCTest; @import AVFoundation; #import diff --git a/packages/camera/camera_avfoundation/example/ios/RunnerTests/ThreadSafeEventChannelTests.m b/packages/camera/camera_avfoundation/example/ios/RunnerTests/ThreadSafeEventChannelTests.m index e445697d8053..169b75ddfbb1 100644 --- a/packages/camera/camera_avfoundation/example/ios/RunnerTests/ThreadSafeEventChannelTests.m +++ b/packages/camera/camera_avfoundation/example/ios/RunnerTests/ThreadSafeEventChannelTests.m @@ -3,7 +3,9 @@ // found in the LICENSE file. @import camera_avfoundation; +#if __has_include() @import camera_avfoundation.Test; +#endif @import XCTest; #import diff --git a/packages/camera/camera_avfoundation/ios/Assets/.gitkeep b/packages/camera/camera_avfoundation/ios/Assets/.gitkeep deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/packages/camera/camera_avfoundation/ios/camera_avfoundation.podspec b/packages/camera/camera_avfoundation/ios/camera_avfoundation.podspec index db0c87951c63..74594ff30e6c 100644 --- a/packages/camera/camera_avfoundation/ios/camera_avfoundation.podspec +++ b/packages/camera/camera_avfoundation/ios/camera_avfoundation.podspec @@ -13,12 +13,12 @@ A Flutter plugin to use the camera from your Flutter app. s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' } s.source = { :http => 'https://github.com/flutter/packages/tree/main/packages/camera_avfoundation' } s.documentation_url = 'https://pub.dev/packages/camera_avfoundation' - s.source_files = 'Classes/**/*.{h,m}' - s.public_header_files = 'Classes/**/*.h' - s.module_map = 'Classes/CameraPlugin.modulemap' + s.source_files = 'camera_avfoundation/Sources/camera_avfoundation/**/*.{h,m}' + s.public_header_files = 'camera_avfoundation/Sources/camera_avfoundation/include/**/*.h' + s.module_map = 'camera_avfoundation/Sources/camera_avfoundation/include/CameraPlugin.modulemap' s.dependency 'Flutter' s.platform = :ios, '12.0' s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } - s.resource_bundles = {'camera_avfoundation_privacy' => ['Resources/PrivacyInfo.xcprivacy']} + s.resource_bundles = {'camera_avfoundation_privacy' => ['camera_avfoundation/Sources/camera_avfoundation/Resources/PrivacyInfo.xcprivacy']} end diff --git a/packages/camera/camera_avfoundation/ios/camera_avfoundation/Package.swift b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Package.swift new file mode 100644 index 000000000000..48050b6b788b --- /dev/null +++ b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Package.swift @@ -0,0 +1,31 @@ +// swift-tools-version: 5.9 + +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import PackageDescription + +let package = Package( + name: "camera_avfoundation", + platforms: [ + .iOS("12.0") + ], + products: [ + .library(name: "camera-avfoundation", targets: ["camera_avfoundation"]) + ], + dependencies: [], + targets: [ + .target( + name: "camera_avfoundation", + dependencies: [], + exclude: ["include/camera_avfoundation-umbrella.h", "include/CameraPlugin.modulemap"], + resources: [ + .process("Resources") + ], + cSettings: [ + .headerSearchPath("include/camera_avfoundation") + ] + ) + ] +) diff --git a/packages/camera/camera_avfoundation/ios/Classes/CameraPermissionUtils.m b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/CameraPermissionUtils.m similarity index 98% rename from packages/camera/camera_avfoundation/ios/Classes/CameraPermissionUtils.m rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/CameraPermissionUtils.m index 098265a6b74d..b63a1d684e00 100644 --- a/packages/camera/camera_avfoundation/ios/Classes/CameraPermissionUtils.m +++ b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/CameraPermissionUtils.m @@ -3,7 +3,7 @@ // found in the LICENSE file. @import AVFoundation; -#import "CameraPermissionUtils.h" +#import "./include/camera_avfoundation/CameraPermissionUtils.h" void FLTRequestPermission(BOOL forAudio, FLTCameraPermissionRequestCompletionHandler handler) { AVMediaType mediaType; diff --git a/packages/camera/camera_avfoundation/ios/Classes/CameraPlugin.m b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/CameraPlugin.m similarity index 97% rename from packages/camera/camera_avfoundation/ios/Classes/CameraPlugin.m rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/CameraPlugin.m index de89aecce224..151883c71e91 100644 --- a/packages/camera/camera_avfoundation/ios/Classes/CameraPlugin.m +++ b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/CameraPlugin.m @@ -2,18 +2,18 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "CameraPlugin.h" -#import "CameraPlugin_Test.h" +#import "./include/camera_avfoundation/CameraPlugin.h" +#import "./include/camera_avfoundation/CameraPlugin_Test.h" @import AVFoundation; @import Flutter; -#import "CameraPermissionUtils.h" -#import "CameraProperties.h" -#import "FLTCam.h" -#import "FLTThreadSafeEventChannel.h" -#import "QueueUtils.h" -#import "messages.g.h" +#import "./include/camera_avfoundation/CameraPermissionUtils.h" +#import "./include/camera_avfoundation/CameraProperties.h" +#import "./include/camera_avfoundation/FLTCam.h" +#import "./include/camera_avfoundation/FLTThreadSafeEventChannel.h" +#import "./include/camera_avfoundation/QueueUtils.h" +#import "./include/camera_avfoundation/messages.g.h" static FlutterError *FlutterErrorFromNSError(NSError *error) { return [FlutterError errorWithCode:[NSString stringWithFormat:@"Error %d", (int)error.code] diff --git a/packages/camera/camera_avfoundation/ios/Classes/CameraProperties.m b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/CameraProperties.m similarity index 97% rename from packages/camera/camera_avfoundation/ios/Classes/CameraProperties.m rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/CameraProperties.m index 5aa1f25bb037..8ef61b43fc85 100644 --- a/packages/camera/camera_avfoundation/ios/Classes/CameraProperties.m +++ b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/CameraProperties.m @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "CameraProperties.h" +#import "./include/camera_avfoundation/CameraProperties.h" AVCaptureFlashMode FCPGetAVCaptureFlashModeForPigeonFlashMode(FCPPlatformFlashMode mode) { switch (mode) { diff --git a/packages/camera/camera_avfoundation/ios/Classes/FLTCam.m b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/FLTCam.m similarity index 99% rename from packages/camera/camera_avfoundation/ios/Classes/FLTCam.m rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/FLTCam.m index 42383a98d31c..6cfe47b86fb0 100644 --- a/packages/camera/camera_avfoundation/ios/Classes/FLTCam.m +++ b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/FLTCam.m @@ -2,17 +2,17 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "FLTCam.h" -#import "FLTCam_Test.h" +#import "./include/camera_avfoundation/FLTCam.h" +#import "./include/camera_avfoundation/FLTCam_Test.h" @import CoreMotion; @import Flutter; #import -#import "FLTSavePhotoDelegate.h" -#import "FLTThreadSafeEventChannel.h" -#import "QueueUtils.h" -#import "messages.g.h" +#import "./include/camera_avfoundation/FLTSavePhotoDelegate.h" +#import "./include/camera_avfoundation/FLTThreadSafeEventChannel.h" +#import "./include/camera_avfoundation/QueueUtils.h" +#import "./include/camera_avfoundation/messages.g.h" static FlutterError *FlutterErrorFromNSError(NSError *error) { return [FlutterError errorWithCode:[NSString stringWithFormat:@"Error %d", (int)error.code] diff --git a/packages/camera/camera_avfoundation/ios/Classes/FLTCamMediaSettingsAVWrapper.m b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/FLTCamMediaSettingsAVWrapper.m similarity index 96% rename from packages/camera/camera_avfoundation/ios/Classes/FLTCamMediaSettingsAVWrapper.m rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/FLTCamMediaSettingsAVWrapper.m index 636b5c7bf4c3..b975daa4b5c2 100644 --- a/packages/camera/camera_avfoundation/ios/Classes/FLTCamMediaSettingsAVWrapper.m +++ b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/FLTCamMediaSettingsAVWrapper.m @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "FLTCamMediaSettingsAVWrapper.h" +#import "./include/camera_avfoundation/FLTCamMediaSettingsAVWrapper.h" @implementation FLTCamMediaSettingsAVWrapper diff --git a/packages/camera/camera_avfoundation/ios/Classes/FLTSavePhotoDelegate.m b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/FLTSavePhotoDelegate.m similarity index 93% rename from packages/camera/camera_avfoundation/ios/Classes/FLTSavePhotoDelegate.m rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/FLTSavePhotoDelegate.m index 436c9f8f3b57..5b45f93c221c 100644 --- a/packages/camera/camera_avfoundation/ios/Classes/FLTSavePhotoDelegate.m +++ b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/FLTSavePhotoDelegate.m @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "FLTSavePhotoDelegate.h" -#import "FLTSavePhotoDelegate_Test.h" +#import "./include/camera_avfoundation/FLTSavePhotoDelegate.h" +#import "./include/camera_avfoundation/FLTSavePhotoDelegate_Test.h" @interface FLTSavePhotoDelegate () /// The file path for the captured photo. diff --git a/packages/camera/camera_avfoundation/ios/Classes/FLTThreadSafeEventChannel.m b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/FLTThreadSafeEventChannel.m similarity index 90% rename from packages/camera/camera_avfoundation/ios/Classes/FLTThreadSafeEventChannel.m rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/FLTThreadSafeEventChannel.m index 57d154c595ec..53c7273a5901 100644 --- a/packages/camera/camera_avfoundation/ios/Classes/FLTThreadSafeEventChannel.m +++ b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/FLTThreadSafeEventChannel.m @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "FLTThreadSafeEventChannel.h" -#import "QueueUtils.h" +#import "./include/camera_avfoundation/FLTThreadSafeEventChannel.h" +#import "./include/camera_avfoundation/QueueUtils.h" @interface FLTThreadSafeEventChannel () @property(nonatomic, strong) FlutterEventChannel *channel; diff --git a/packages/camera/camera_avfoundation/ios/Classes/QueueUtils.m b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/QueueUtils.m similarity index 88% rename from packages/camera/camera_avfoundation/ios/Classes/QueueUtils.m rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/QueueUtils.m index 1fd54cd52cb3..8ea83ede2b71 100644 --- a/packages/camera/camera_avfoundation/ios/Classes/QueueUtils.m +++ b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/QueueUtils.m @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "QueueUtils.h" +#import "./include/camera_avfoundation/QueueUtils.h" const char *FLTCaptureSessionQueueSpecific = "capture_session_queue"; diff --git a/packages/camera/camera_avfoundation/ios/Resources/PrivacyInfo.xcprivacy b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/Resources/PrivacyInfo.xcprivacy similarity index 100% rename from packages/camera/camera_avfoundation/ios/Resources/PrivacyInfo.xcprivacy rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/Resources/PrivacyInfo.xcprivacy diff --git a/packages/camera/camera_avfoundation/ios/Classes/CameraPlugin.modulemap b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/CameraPlugin.modulemap similarity index 100% rename from packages/camera/camera_avfoundation/ios/Classes/CameraPlugin.modulemap rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/CameraPlugin.modulemap diff --git a/packages/camera/camera_avfoundation/ios/Classes/camera_avfoundation-umbrella.h b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation-umbrella.h similarity index 100% rename from packages/camera/camera_avfoundation/ios/Classes/camera_avfoundation-umbrella.h rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation-umbrella.h diff --git a/packages/camera/camera_avfoundation/ios/Classes/CameraPermissionUtils.h b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/CameraPermissionUtils.h similarity index 100% rename from packages/camera/camera_avfoundation/ios/Classes/CameraPermissionUtils.h rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/CameraPermissionUtils.h diff --git a/packages/camera/camera_avfoundation/ios/Classes/CameraPlugin.h b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/CameraPlugin.h similarity index 100% rename from packages/camera/camera_avfoundation/ios/Classes/CameraPlugin.h rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/CameraPlugin.h diff --git a/packages/camera/camera_avfoundation/ios/Classes/CameraPlugin_Test.h b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/CameraPlugin_Test.h similarity index 100% rename from packages/camera/camera_avfoundation/ios/Classes/CameraPlugin_Test.h rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/CameraPlugin_Test.h diff --git a/packages/camera/camera_avfoundation/ios/Classes/CameraProperties.h b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/CameraProperties.h similarity index 98% rename from packages/camera/camera_avfoundation/ios/Classes/CameraProperties.h rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/CameraProperties.h index ea7a4a3438a5..a46e4f04b657 100644 --- a/packages/camera/camera_avfoundation/ios/Classes/CameraProperties.h +++ b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/CameraProperties.h @@ -4,6 +4,7 @@ @import AVFoundation; @import Foundation; +@import UIKit; #import "messages.g.h" diff --git a/packages/camera/camera_avfoundation/ios/Classes/FLTCam.h b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/FLTCam.h similarity index 100% rename from packages/camera/camera_avfoundation/ios/Classes/FLTCam.h rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/FLTCam.h diff --git a/packages/camera/camera_avfoundation/ios/Classes/FLTCamMediaSettingsAVWrapper.h b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/FLTCamMediaSettingsAVWrapper.h similarity index 100% rename from packages/camera/camera_avfoundation/ios/Classes/FLTCamMediaSettingsAVWrapper.h rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/FLTCamMediaSettingsAVWrapper.h diff --git a/packages/camera/camera_avfoundation/ios/Classes/FLTCam_Test.h b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/FLTCam_Test.h similarity index 100% rename from packages/camera/camera_avfoundation/ios/Classes/FLTCam_Test.h rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/FLTCam_Test.h diff --git a/packages/camera/camera_avfoundation/ios/Classes/FLTSavePhotoDelegate.h b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/FLTSavePhotoDelegate.h similarity index 100% rename from packages/camera/camera_avfoundation/ios/Classes/FLTSavePhotoDelegate.h rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/FLTSavePhotoDelegate.h diff --git a/packages/camera/camera_avfoundation/ios/Classes/FLTSavePhotoDelegate_Test.h b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/FLTSavePhotoDelegate_Test.h similarity index 100% rename from packages/camera/camera_avfoundation/ios/Classes/FLTSavePhotoDelegate_Test.h rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/FLTSavePhotoDelegate_Test.h diff --git a/packages/camera/camera_avfoundation/ios/Classes/FLTThreadSafeEventChannel.h b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/FLTThreadSafeEventChannel.h similarity index 100% rename from packages/camera/camera_avfoundation/ios/Classes/FLTThreadSafeEventChannel.h rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/FLTThreadSafeEventChannel.h diff --git a/packages/camera/camera_avfoundation/ios/Classes/QueueUtils.h b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/QueueUtils.h similarity index 100% rename from packages/camera/camera_avfoundation/ios/Classes/QueueUtils.h rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/QueueUtils.h diff --git a/packages/camera/camera_avfoundation/ios/Classes/messages.g.h b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/messages.g.h similarity index 100% rename from packages/camera/camera_avfoundation/ios/Classes/messages.g.h rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/messages.g.h diff --git a/packages/camera/camera_avfoundation/ios/Classes/messages.g.m b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/messages.g.m similarity index 99% rename from packages/camera/camera_avfoundation/ios/Classes/messages.g.m rename to packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/messages.g.m index d90b63d7a011..3b4355f0709d 100644 --- a/packages/camera/camera_avfoundation/ios/Classes/messages.g.m +++ b/packages/camera/camera_avfoundation/ios/camera_avfoundation/Sources/camera_avfoundation/messages.g.m @@ -4,7 +4,7 @@ // Autogenerated from Pigeon (v18.0.0), do not edit directly. // See also: https://pub.dev/packages/pigeon -#import "messages.g.h" +#import "./include/camera_avfoundation/messages.g.h" #if TARGET_OS_OSX #import diff --git a/packages/camera/camera_avfoundation/pigeons/messages.dart b/packages/camera/camera_avfoundation/pigeons/messages.dart index f99e03f2a4df..c50ecc33e408 100644 --- a/packages/camera/camera_avfoundation/pigeons/messages.dart +++ b/packages/camera/camera_avfoundation/pigeons/messages.dart @@ -6,9 +6,14 @@ import 'package:pigeon/pigeon.dart'; @ConfigurePigeon(PigeonOptions( dartOut: 'lib/src/messages.g.dart', - objcHeaderOut: 'ios/Classes/messages.g.h', - objcSourceOut: 'ios/Classes/messages.g.m', - objcOptions: ObjcOptions(prefix: 'FCP'), + objcHeaderOut: + 'ios/camera_avfoundation/Sources/camera_avfoundation/include/camera_avfoundation/messages.g.h', + objcSourceOut: + 'ios/camera_avfoundation/Sources/camera_avfoundation/messages.g.m', + objcOptions: ObjcOptions( + prefix: 'FCP', + headerIncludePath: './include/camera_avfoundation/messages.g.h', + ), copyrightHeader: 'pigeons/copyright.txt', )) diff --git a/packages/camera/camera_avfoundation/pubspec.yaml b/packages/camera/camera_avfoundation/pubspec.yaml index 897be05383af..c00b8d68df03 100644 --- a/packages/camera/camera_avfoundation/pubspec.yaml +++ b/packages/camera/camera_avfoundation/pubspec.yaml @@ -2,7 +2,7 @@ name: camera_avfoundation description: iOS implementation of the camera plugin. repository: https://github.com/flutter/packages/tree/main/packages/camera/camera_avfoundation issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 -version: 0.9.16+3 +version: 0.9.17 environment: sdk: ^3.2.3