diff --git a/.gitignore b/.gitignore index 8e028cb9b42..1e91648bbee 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,10 @@ amplify_outputs*.dart # Smithy .smithy.lsp.log +# Swift Package Manager +.build/ +.swiftpm/ + # Custom Actions output **/*.cjs.deps .flutter-plugins-dependencies diff --git a/packages/secure_storage/amplify_secure_storage/ios/.gitignore b/packages/secure_storage/amplify_secure_storage/ios/.gitignore index 0c885071e36..62859c8f398 100644 --- a/packages/secure_storage/amplify_secure_storage/ios/.gitignore +++ b/packages/secure_storage/amplify_secure_storage/ios/.gitignore @@ -7,6 +7,9 @@ *.swp profile +.build/ +.swiftpm/ + DerivedData/ build/ GeneratedPluginRegistrant.h @@ -35,4 +38,4 @@ Icon? /Flutter/Generated.xcconfig /Flutter/ephemeral/ -/Flutter/flutter_export_environment.sh \ No newline at end of file +/Flutter/flutter_export_environment.sh diff --git a/packages/secure_storage/amplify_secure_storage/ios/Classes/AmplifySecureStoragePlugin.h b/packages/secure_storage/amplify_secure_storage/ios/Classes/AmplifySecureStoragePlugin.h deleted file mode 100644 index a776702cee8..00000000000 --- a/packages/secure_storage/amplify_secure_storage/ios/Classes/AmplifySecureStoragePlugin.h +++ /dev/null @@ -1,4 +0,0 @@ -#import - -@interface AmplifySecureStoragePlugin : NSObject -@end diff --git a/packages/secure_storage/amplify_secure_storage/ios/Classes/AmplifySecureStoragePlugin.m b/packages/secure_storage/amplify_secure_storage/ios/Classes/AmplifySecureStoragePlugin.m deleted file mode 100644 index 46bd0b07130..00000000000 --- a/packages/secure_storage/amplify_secure_storage/ios/Classes/AmplifySecureStoragePlugin.m +++ /dev/null @@ -1,15 +0,0 @@ -#import "AmplifySecureStoragePlugin.h" -#if __has_include() -#import -#else -// Support project import fallback if the generated compatibility header -// is not copied when this plugin is created as a library. -// https://forums.swift.org/t/swift-static-libraries-dont-copy-generated-objective-c-header/19816 -#import "amplify_secure_storage-Swift.h" -#endif - -@implementation AmplifySecureStoragePlugin -+ (void)registerWithRegistrar:(NSObject*)registrar { - [SwiftAmplifySecureStoragePlugin registerWithRegistrar:registrar]; -} -@end diff --git a/packages/secure_storage/amplify_secure_storage/ios/Classes/amplify_secure_storage.h b/packages/secure_storage/amplify_secure_storage/ios/Classes/amplify_secure_storage.h deleted file mode 100644 index 1ce03a72e67..00000000000 --- a/packages/secure_storage/amplify_secure_storage/ios/Classes/amplify_secure_storage.h +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -#ifndef amplify_secure_storage_h -#define amplify_secure_storage_h - -#import "AmplifySecureStoragePlugin.h" - -#endif /* amplify_secure_storage_h */ diff --git a/packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage.podspec b/packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage.podspec index d7be86d38bb..69977200bd6 100644 --- a/packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage.podspec +++ b/packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage.podspec @@ -13,12 +13,12 @@ A new Flutter plugin project. s.license = { :file => '../LICENSE' } s.author = { 'Your Company' => 'email@example.com' } s.source = { :path => '.' } - s.source_files = 'Classes/**/*' + s.source_files = 'amplify_secure_storage/Sources/amplify_secure_storage/**/*.swift' s.dependency 'Flutter' s.platform = :ios, '13.0' # Flutter.framework does not contain a i386 slice. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } s.swift_version = '5.9' - s.resource_bundles = {'amplify_secure_storage_privacy' => ['Resources/PrivacyInfo.xcprivacy']} + s.resource_bundles = {'amplify_secure_storage_privacy' => ['amplify_secure_storage/Sources/amplify_secure_storage/PrivacyInfo.xcprivacy']} end diff --git a/packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Package.swift b/packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Package.swift new file mode 100644 index 00000000000..4021e92a2f6 --- /dev/null +++ b/packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Package.swift @@ -0,0 +1,27 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import PackageDescription + +let package = Package( + name: "amplify_secure_storage", + platforms: [ + .iOS("13.0") + ], + products: [ + .library(name: "amplify-secure-storage", targets: ["amplify_secure_storage"]) + ], + dependencies: [], + targets: [ + .target( + name: "amplify_secure_storage", + dependencies: [], + resources: [ + .process("PrivacyInfo.xcprivacy"), + ] + ) + ] +) diff --git a/packages/secure_storage/amplify_secure_storage/ios/Classes/SwiftAmplifySecureStoragePlugin.swift b/packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Sources/amplify_secure_storage/AmplifySecureStoragePlugin.swift similarity index 74% rename from packages/secure_storage/amplify_secure_storage/ios/Classes/SwiftAmplifySecureStoragePlugin.swift rename to packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Sources/amplify_secure_storage/AmplifySecureStoragePlugin.swift index d825f67cd85..b0981beb8e5 100644 --- a/packages/secure_storage/amplify_secure_storage/ios/Classes/SwiftAmplifySecureStoragePlugin.swift +++ b/packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Sources/amplify_secure_storage/AmplifySecureStoragePlugin.swift @@ -1,10 +1,10 @@ import Flutter import UIKit -public class SwiftAmplifySecureStoragePlugin: NSObject, FlutterPlugin, NSUserDefaultsPigeon { +public class AmplifySecureStoragePlugin: NSObject, FlutterPlugin, NSUserDefaultsPigeon { public static func register(with registrar: FlutterPluginRegistrar) { - let instance = SwiftAmplifySecureStoragePlugin() + let instance = AmplifySecureStoragePlugin() NSUserDefaultsPigeonSetup.setUp(binaryMessenger: registrar.messenger(), api: instance) } diff --git a/packages/secure_storage/amplify_secure_storage/ios/Classes/pigeons/NSUserDefaultsPigeon.swift b/packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Sources/amplify_secure_storage/NSUserDefaultsPigeon.swift similarity index 100% rename from packages/secure_storage/amplify_secure_storage/ios/Classes/pigeons/NSUserDefaultsPigeon.swift rename to packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Sources/amplify_secure_storage/NSUserDefaultsPigeon.swift diff --git a/packages/secure_storage/amplify_secure_storage/ios/Resources/PrivacyInfo.xcprivacy b/packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Sources/amplify_secure_storage/PrivacyInfo.xcprivacy similarity index 100% rename from packages/secure_storage/amplify_secure_storage/ios/Resources/PrivacyInfo.xcprivacy rename to packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Sources/amplify_secure_storage/PrivacyInfo.xcprivacy diff --git a/packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage.podspec b/packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage.podspec index 543e2164d66..5cd9f8cfe5c 100644 --- a/packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage.podspec +++ b/packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage.podspec @@ -14,11 +14,11 @@ A new Flutter plugin project. s.author = { 'Your Company' => 'email@example.com' } s.source = { :path => '.' } - s.source_files = 'Classes/**/*' + s.source_files = 'amplify_secure_storage/Sources/amplify_secure_storage/**/*' s.dependency 'FlutterMacOS' s.platform = :osx, '10.15' s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } s.swift_version = '5.9' - s.resource_bundles = {'amplify_secure_storage_privacy' => ['Resources/PrivacyInfo.xcprivacy']} + s.resource_bundles = {'amplify_secure_storage_privacy' => ['amplify_secure_storage/Sources/amplify_secure_storage/PrivacyInfo.xcprivacy']} end diff --git a/packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage/Package.swift b/packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage/Package.swift new file mode 100644 index 00000000000..87f0231f579 --- /dev/null +++ b/packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage/Package.swift @@ -0,0 +1,27 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +import PackageDescription + +let package = Package( + name: "amplify_secure_storage", + platforms: [ + .macOS("10.15") + ], + products: [ + .library(name: "amplify-secure-storage", targets: ["amplify_secure_storage"]) + ], + dependencies: [], + targets: [ + .target( + name: "amplify_secure_storage", + dependencies: [], + resources: [ + .process("PrivacyInfo.xcprivacy"), + ] + ) + ] +) diff --git a/packages/secure_storage/amplify_secure_storage/macos/Classes/AmplifySecureStoragePlugin.swift b/packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage/Sources/amplify_secure_storage/AmplifySecureStoragePlugin.swift similarity index 100% rename from packages/secure_storage/amplify_secure_storage/macos/Classes/AmplifySecureStoragePlugin.swift rename to packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage/Sources/amplify_secure_storage/AmplifySecureStoragePlugin.swift diff --git a/packages/secure_storage/amplify_secure_storage/macos/Classes/pigeons/NSUserDefaultsPigeon.swift b/packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage/Sources/amplify_secure_storage/NSUserDefaultsPigeon.swift similarity index 100% rename from packages/secure_storage/amplify_secure_storage/macos/Classes/pigeons/NSUserDefaultsPigeon.swift rename to packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage/Sources/amplify_secure_storage/NSUserDefaultsPigeon.swift diff --git a/packages/secure_storage/amplify_secure_storage/macos/Resources/PrivacyInfo.xcprivacy b/packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage/Sources/amplify_secure_storage/PrivacyInfo.xcprivacy similarity index 100% rename from packages/secure_storage/amplify_secure_storage/macos/Resources/PrivacyInfo.xcprivacy rename to packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage/Sources/amplify_secure_storage/PrivacyInfo.xcprivacy diff --git a/packages/secure_storage/amplify_secure_storage/macos/Classes/amplify_secure_storage.h b/packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage/Sources/amplify_secure_storage/amplify_secure_storage.h similarity index 100% rename from packages/secure_storage/amplify_secure_storage/macos/Classes/amplify_secure_storage.h rename to packages/secure_storage/amplify_secure_storage/macos/amplify_secure_storage/Sources/amplify_secure_storage/amplify_secure_storage.h diff --git a/packages/secure_storage/amplify_secure_storage/pigeons/ns_user_defaults.dart b/packages/secure_storage/amplify_secure_storage/pigeons/ns_user_defaults.dart index b151e352bb8..d9e3cddb5c0 100644 --- a/packages/secure_storage/amplify_secure_storage/pigeons/ns_user_defaults.dart +++ b/packages/secure_storage/amplify_secure_storage/pigeons/ns_user_defaults.dart @@ -10,7 +10,8 @@ import 'package:pigeon/pigeon.dart'; @ConfigurePigeon( PigeonOptions( dartOut: 'lib/src/pigeons/ns_user_defaults_pigeon.g.dart', - swiftOut: 'ios/Classes/pigeons/NSUserDefaultsPigeon.swift', + swiftOut: + 'ios/amplify_secure_storage/Sources/amplify_secure_storage/NSUserDefaultsPigeon.swift', copyrightHeader: 'pigeons/copyright.txt', ), )