Skip to content

Commit 47c4ea1

Browse files
committed
feat(secure_storage): add Swift Package Manager support to amplify_secure_storage
Migrate amplify_secure_storage iOS and macOS plugins to support Swift Package Manager while maintaining backward compatibility with CocoaPods. Changes: - Add Package.swift for both iOS and macOS platforms - Move sources from Classes/ to amplify_secure_storage/Sources/amplify_secure_storage/ - Move Obj-C public headers to include/amplify_secure_storage/ (iOS) - Move PrivacyInfo.xcprivacy to SPM Sources directory - Update podspec source_files and resource_bundles paths - Update Pigeon swiftOut path for new directory structure - Update Obj-C import path for relocated header - Add .build/ and .swiftpm/ to .gitignore"
1 parent a2a418b commit 47c4ea1

17 files changed

Lines changed: 73 additions & 7 deletions

File tree

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ amplify_outputs*.dart
4343
# Smithy
4444
.smithy.lsp.log
4545

46+
# Swift Package Manager
47+
.build/
48+
.swiftpm/
49+
4650
# Custom Actions output
4751
**/*.cjs.deps
4852
.flutter-plugins-dependencies

packages/secure_storage/amplify_secure_storage/ios/.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
*.swp
88
profile
99

10+
.build/
11+
.swiftpm/
12+
1013
DerivedData/
1114
build/
1215
GeneratedPluginRegistrant.h
@@ -35,4 +38,4 @@ Icon?
3538

3639
/Flutter/Generated.xcconfig
3740
/Flutter/ephemeral/
38-
/Flutter/flutter_export_environment.sh
41+
/Flutter/flutter_export_environment.sh

packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage.podspec

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,13 @@ A new Flutter plugin project.
1313
s.license = { :file => '../LICENSE' }
1414
s.author = { 'Your Company' => 'email@example.com' }
1515
s.source = { :path => '.' }
16-
s.source_files = 'Classes/**/*'
16+
s.source_files = 'amplify_secure_storage/Sources/amplify_secure_storage/**/*.{h,m,swift}'
17+
s.public_header_files = 'amplify_secure_storage/Sources/amplify_secure_storage/include/**/*.h'
1718
s.dependency 'Flutter'
1819
s.platform = :ios, '13.0'
1920

2021
# Flutter.framework does not contain a i386 slice.
2122
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
2223
s.swift_version = '5.9'
23-
s.resource_bundles = {'amplify_secure_storage_privacy' => ['Resources/PrivacyInfo.xcprivacy']}
24+
s.resource_bundles = {'amplify_secure_storage_privacy' => ['amplify_secure_storage/Sources/amplify_secure_storage/PrivacyInfo.xcprivacy']}
2425
end
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// swift-tools-version: 5.9
2+
// The swift-tools-version declares the minimum version of Swift required to build this package.
3+
4+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
5+
// SPDX-License-Identifier: Apache-2.0
6+
7+
import PackageDescription
8+
9+
let package = Package(
10+
name: "amplify_secure_storage",
11+
platforms: [
12+
.iOS("13.0")
13+
],
14+
products: [
15+
.library(name: "amplify-secure-storage", targets: ["amplify_secure_storage"])
16+
],
17+
dependencies: [],
18+
targets: [
19+
.target(
20+
name: "amplify_secure_storage",
21+
dependencies: [],
22+
resources: [
23+
.process("PrivacyInfo.xcprivacy"),
24+
],
25+
cSettings: [
26+
.headerSearchPath("include/amplify_secure_storage")
27+
]
28+
)
29+
]
30+
)

packages/secure_storage/amplify_secure_storage/ios/Classes/AmplifySecureStoragePlugin.m renamed to packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Sources/amplify_secure_storage/AmplifySecureStoragePlugin.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#import "AmplifySecureStoragePlugin.h"
1+
#import "./include/amplify_secure_storage/AmplifySecureStoragePlugin.h"
22
#if __has_include(<amplify_secure_storage/amplify_secure_storage-Swift.h>)
33
#import <amplify_secure_storage/amplify_secure_storage-Swift.h>
44
#else

packages/secure_storage/amplify_secure_storage/ios/Classes/pigeons/NSUserDefaultsPigeon.swift renamed to packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Sources/amplify_secure_storage/NSUserDefaultsPigeon.swift

File renamed without changes.

packages/secure_storage/amplify_secure_storage/ios/Resources/PrivacyInfo.xcprivacy renamed to packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Sources/amplify_secure_storage/PrivacyInfo.xcprivacy

File renamed without changes.

packages/secure_storage/amplify_secure_storage/ios/Classes/SwiftAmplifySecureStoragePlugin.swift renamed to packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Sources/amplify_secure_storage/SwiftAmplifySecureStoragePlugin.swift

File renamed without changes.

packages/secure_storage/amplify_secure_storage/ios/Classes/AmplifySecureStoragePlugin.h renamed to packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Sources/amplify_secure_storage/include/amplify_secure_storage/AmplifySecureStoragePlugin.h

File renamed without changes.

packages/secure_storage/amplify_secure_storage/ios/Classes/amplify_secure_storage.h renamed to packages/secure_storage/amplify_secure_storage/ios/amplify_secure_storage/Sources/amplify_secure_storage/include/amplify_secure_storage/amplify_secure_storage.h

File renamed without changes.

0 commit comments

Comments
 (0)