@au10tixorg/secureme-sdk 4.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +479 -0
- package/android/build.gradle +156 -0
- package/android/gradle.properties +4 -0
- package/android/src/main/AndroidManifest.xml +6 -0
- package/android/src/main/java/com/securemesdk/SecuremeSdkModule.kt +59 -0
- package/android/src/main/java/com/securemesdk/SecuremeSdkPackage.kt +17 -0
- package/android/src/main/java/com/securemesdk/helpers/ReadableMapExt.kt +51 -0
- package/android/src/main/java/com/securemesdk/helpers/SessionParser.kt +21 -0
- package/android/src/main/java/com/securemesdk/models/SDKError.kt +24 -0
- package/android/src/main/java/com/securemesdk/secureme/SecureMeBottomSheet.kt +308 -0
- package/ios/Extensions/DictionaryExtensions.swift +90 -0
- package/ios/Extensions/SecureMeExtensions.swift +82 -0
- package/ios/Models/SDKError.swift +36 -0
- package/ios/Secureme/SecuremeService.swift +261 -0
- package/ios/SecuremeSdk-Bridging-Header.h +2 -0
- package/ios/SecuremeSdk.m +14 -0
- package/ios/SecuremeSdk.swift +102 -0
- package/ios/SecuremeSdk.xcodeproj/project.pbxproj +317 -0
- package/ios/SecuremeSdk.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/lib/commonjs/index.js +103 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/types.js +2 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/module/index.js +85 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/index.d.ts +32 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +95 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/package.json +164 -0
- package/secureme-sdk.podspec +27 -0
- package/src/index.tsx +119 -0
- package/src/types.ts +113 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
//
|
|
2
|
+
// SecuremeService.swift
|
|
3
|
+
// SecuremeSdk
|
|
4
|
+
//
|
|
5
|
+
// Created by Ihor Konfedrat on 12.12.2025.
|
|
6
|
+
// Copyright © 2025 Facebook. All rights reserved.
|
|
7
|
+
//
|
|
8
|
+
|
|
9
|
+
import UIKit
|
|
10
|
+
import AVFoundation
|
|
11
|
+
|
|
12
|
+
import Au10tixCore
|
|
13
|
+
import Au10tixBaseUI
|
|
14
|
+
import Au10tixSecureMeKit
|
|
15
|
+
import Au10tixSmartDocumentCaptureKit
|
|
16
|
+
import Au10tixPassiveFaceLivenessKit
|
|
17
|
+
import Au10tixProofOfAddressUI
|
|
18
|
+
import Au10tixSmartDocumentCaptureUI
|
|
19
|
+
import Au10tixPassiveFaceLivenessUI
|
|
20
|
+
import Au10tixNFCPassportUI
|
|
21
|
+
import Au10tixNFCPassportKit
|
|
22
|
+
import Au10tixVoiceConsentUI
|
|
23
|
+
import Au10tixLocalDataInferenceKit
|
|
24
|
+
|
|
25
|
+
class SecuremeService: SecureMeKitDelegate {
|
|
26
|
+
|
|
27
|
+
var secureMeKit: SecureMeKit? = nil
|
|
28
|
+
var securemeVC: UIViewController? = nil
|
|
29
|
+
var flowDictionary: NSDictionary? = nil
|
|
30
|
+
var configDictionary: NSDictionary? = nil
|
|
31
|
+
|
|
32
|
+
func secureMeKit(_ kit: Au10tixSecureMeKit.SecureMeKit, hasUpdate update: Au10tixSecureMeKit.SecureMeKitUpdate) {
|
|
33
|
+
logger.debug("SecureMeKit Updated")
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
func secureMeKit(_ kit: Au10tixSecureMeKit.SecureMeKit, didCompleteWith result: Au10tixSecureMeKit.SecureMeKitResult) {
|
|
37
|
+
logger.debug("SecureMeKit Complete")
|
|
38
|
+
|
|
39
|
+
pendingCompletion?(.success(true))
|
|
40
|
+
pendingCompletion = nil
|
|
41
|
+
securemeVC?.dismiss(animated: true, completion: nil)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
func secureMeKit(_ kit: Au10tixSecureMeKit.SecureMeKit, didFailWith error: Au10tixSecureMeKit.SecureMeKitError) {
|
|
45
|
+
logger.debug("SecureMeKit Error: \(error)")
|
|
46
|
+
|
|
47
|
+
let sdkError = SDKError.secureMeFailure(error.localizedDescription)
|
|
48
|
+
pendingCompletion?(.failure(sdkError))
|
|
49
|
+
pendingCompletion = nil
|
|
50
|
+
securemeVC?.dismiss(animated: true, completion: nil)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
func secureMeKit(_ kit: Au10tixSecureMeKit.SecureMeKit, didClose viewController: UIViewController) {
|
|
54
|
+
logger.debug("SecureMeKit Close")
|
|
55
|
+
securemeVC?.dismiss(animated: true, completion: nil)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
typealias SessionCompletion = (Result<Bool, SDKError>) -> Void
|
|
59
|
+
|
|
60
|
+
private var pendingCompletion: SessionCompletion?
|
|
61
|
+
|
|
62
|
+
static let shared = SecuremeService()
|
|
63
|
+
|
|
64
|
+
private init() {
|
|
65
|
+
logger.debug("SecureService initialized")
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
private var sdkBundle: Bundle {
|
|
69
|
+
return Bundle(for: SecuremeService.self)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
private func createViewController(completion: @escaping (Result<UIViewController, Error>) -> Void) {
|
|
73
|
+
|
|
74
|
+
let sdkBundle = Bundle(for: SecuremeService.self)
|
|
75
|
+
let animationImageAsset = DynamicUIImage(
|
|
76
|
+
name: "frame",
|
|
77
|
+
source: .bundle(sdkBundle),
|
|
78
|
+
animativeUIImageInfo: DynamicAnimativeUIImageInfo(duration: 0.03)
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
Au10tix.shared.prepare { _ in
|
|
82
|
+
let secureMeKit = SecureMeKit(animationImageAsset: animationImageAsset)
|
|
83
|
+
let setClassificationTypeSelector = NSSelectorFromString("setClassificationTypeWithIsLocal:")
|
|
84
|
+
if secureMeKit.responds(to: setClassificationTypeSelector) {
|
|
85
|
+
secureMeKit.perform(setClassificationTypeSelector, with: NSNumber(booleanLiteral: false))
|
|
86
|
+
}
|
|
87
|
+
secureMeKit.prepare { [weak self] error in
|
|
88
|
+
DispatchQueue.main.async { [weak self] in
|
|
89
|
+
guard let self = self else { return }
|
|
90
|
+
if let error = error {
|
|
91
|
+
completion(
|
|
92
|
+
.failure(
|
|
93
|
+
SDKError
|
|
94
|
+
.secureMeFailure(error.localizedDescription)
|
|
95
|
+
)
|
|
96
|
+
)
|
|
97
|
+
} else {
|
|
98
|
+
|
|
99
|
+
let enableConsentPageSelector = NSSelectorFromString("setConsentPageWithEnabled:")
|
|
100
|
+
if secureMeKit.responds(to: enableConsentPageSelector) {
|
|
101
|
+
secureMeKit.perform(enableConsentPageSelector, with: NSNumber(booleanLiteral: true))
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Pass nil config to let SDK use OCS configuration when configDictionary or flowDictionary is empty
|
|
105
|
+
let config: SecureMeConfig?
|
|
106
|
+
if let flowDict = flowDictionary, flowDict.count > 0,
|
|
107
|
+
let configDict = configDictionary, configDict.count > 0 {
|
|
108
|
+
let flows = createFlow(flowDictionary: flowDict)
|
|
109
|
+
let smConfig = createConfig(configDictionary: configDict)
|
|
110
|
+
config = SecureMeConfig(flows: flows, smConfig: smConfig)
|
|
111
|
+
} else {
|
|
112
|
+
config = nil
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if let vc = try? secureMeKit.createUI(config: config, delegate: self) {
|
|
116
|
+
self.secureMeKit = secureMeKit
|
|
117
|
+
self.securemeVC = vc
|
|
118
|
+
completion(.success(vc))
|
|
119
|
+
} else {
|
|
120
|
+
completion(.failure(SDKError.secureMeFailure("SecureMeKit create UI returned nil")))
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
func checkCameraStatus() -> AVAuthorizationStatus {
|
|
129
|
+
return AVCaptureDevice.authorizationStatus(for: .video)
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
func requestCameraAccess(completion: @escaping (Bool) -> Void) {
|
|
133
|
+
AVCaptureDevice.requestAccess(for: .video, completionHandler: completion)
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
func startSession(
|
|
137
|
+
workFlowResponse: String,
|
|
138
|
+
flowDictionary: NSDictionary,
|
|
139
|
+
configDictionary: NSDictionary,
|
|
140
|
+
completion: @escaping (Result<Bool, SDKError>) -> Void
|
|
141
|
+
) {
|
|
142
|
+
|
|
143
|
+
guard let data = workFlowResponse.data(using: .utf8) else {
|
|
144
|
+
completion(.failure(SDKError.secureMeFailure("Failed to convert string to UTF8 data")))
|
|
145
|
+
return
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
self.flowDictionary = flowDictionary
|
|
149
|
+
self.configDictionary = configDictionary
|
|
150
|
+
|
|
151
|
+
do {
|
|
152
|
+
let responseDecoded = try JSONDecoder().decode(Au10tixWorkflow.self, from: data)
|
|
153
|
+
|
|
154
|
+
Au10tix.shared.updateWorkflowWrapper(responseDecoded)
|
|
155
|
+
|
|
156
|
+
Au10tix.shared.prepare { result in
|
|
157
|
+
switch result {
|
|
158
|
+
case .success(let sessionID):
|
|
159
|
+
logger.debug("Session initialized successfully: \(sessionID)")
|
|
160
|
+
completion(.success(true))
|
|
161
|
+
|
|
162
|
+
case .failure(let error):
|
|
163
|
+
logger.error("Core preparation failed: \(error)")
|
|
164
|
+
completion(.failure(SDKError.secureMeFailure("Core preparation failed: \(error)")))
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
} catch {
|
|
168
|
+
completion(.failure(SDKError.jsonParse("Failed to decode workflow: \(error.localizedDescription)")))
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
func startSecureMeKit(completion: @escaping SessionCompletion) {
|
|
173
|
+
|
|
174
|
+
DispatchQueue.main.async {
|
|
175
|
+
|
|
176
|
+
guard Au10tix.shared.workflowWrapper?.accessToken?.jwt != nil else {
|
|
177
|
+
completion(.failure(SDKError.secureMeFailure("Missing AccessToken.")))
|
|
178
|
+
return
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
self.pendingCompletion = completion
|
|
182
|
+
|
|
183
|
+
SecuremeService.shared.createViewController { result in
|
|
184
|
+
|
|
185
|
+
switch result {
|
|
186
|
+
case .success(let vc):
|
|
187
|
+
guard let keyWindow = UIApplication.shared.windows.first(where: { $0.isKeyWindow }),
|
|
188
|
+
let rootVC = keyWindow.rootViewController
|
|
189
|
+
else {
|
|
190
|
+
completion(.failure(SDKError.secureMeFailure("Root Controller Not Found.")))
|
|
191
|
+
return
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
var topController = rootVC
|
|
195
|
+
while let presented = topController.presentedViewController {
|
|
196
|
+
topController = presented
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
topController.present(vc, animated: true)
|
|
200
|
+
|
|
201
|
+
case .failure(let error):
|
|
202
|
+
if let sdkError = error as? SDKError {
|
|
203
|
+
completion(.failure(SDKError.secureMeFailure(sdkError.localizedDescription)))
|
|
204
|
+
} else {
|
|
205
|
+
let nsError = error as NSError
|
|
206
|
+
completion(.failure(SDKError.secureMeFailure(nsError.localizedDescription)))
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
private func createFlow(flowDictionary: NSDictionary) -> [SecureMeFlow] {
|
|
214
|
+
var flows: [SecureMeFlow] = []
|
|
215
|
+
|
|
216
|
+
func getParams(_ key: String) -> SecureMeFlowConfig? {
|
|
217
|
+
guard let dict = flowDictionary[key] as? NSDictionary else {
|
|
218
|
+
return nil
|
|
219
|
+
}
|
|
220
|
+
return SecureMeFlowConfig(dict: dict)
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
if let params = getParams("sdcFront") {
|
|
224
|
+
flows.append(.sdcFront(params))
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
if let params = getParams("sdcBack") {
|
|
228
|
+
flows.append(.sdcBack(params))
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
if let params = getParams("pfl") {
|
|
232
|
+
flows.append(.pfl(params))
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
if let params = getParams("vc") {
|
|
236
|
+
flows.append(.vc(params))
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
if let params = getParams("vs") {
|
|
240
|
+
flows.append(.vs(params))
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
if let params = getParams("poa") {
|
|
244
|
+
flows.append(.poa(params))
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
if let params = getParams("sdcOcr") {
|
|
248
|
+
flows.append(.sdcOcr(params))
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
return flows
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
private func createConfig(configDictionary: NSDictionary?) -> SecureMeFeaturesConfig {
|
|
255
|
+
guard let dict = configDictionary else {
|
|
256
|
+
return SecureMeFeaturesConfig(dict: [:])
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
return SecureMeFeaturesConfig(dict: dict)
|
|
260
|
+
}
|
|
261
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#import <React/RCTBridgeModule.h>
|
|
2
|
+
|
|
3
|
+
@interface RCT_EXTERN_MODULE(SecuremeSdk, NSObject)
|
|
4
|
+
|
|
5
|
+
RCT_EXTERN_METHOD(requestCameraPermission:(RCTPromiseResolveBlock)resolve
|
|
6
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
7
|
+
|
|
8
|
+
RCT_EXTERN_METHOD(start:(NSString *)workFlowResponse
|
|
9
|
+
flowMap:(NSDictionary *)flowMap
|
|
10
|
+
configMap:(NSDictionary *)configMap
|
|
11
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
12
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
13
|
+
|
|
14
|
+
@end
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import AVFoundation
|
|
2
|
+
import os.log
|
|
3
|
+
|
|
4
|
+
import Au10tixCore
|
|
5
|
+
import Au10tixBaseUI
|
|
6
|
+
import Au10tixSecureMeKit
|
|
7
|
+
|
|
8
|
+
let logger = Logger(subsystem: "com.au10tix.securemesdk", category: "SecuremeSdk")
|
|
9
|
+
|
|
10
|
+
@objc(SecuremeSdk)
|
|
11
|
+
class SecuremeSdk: NSObject {
|
|
12
|
+
|
|
13
|
+
override init() {
|
|
14
|
+
super.init()
|
|
15
|
+
Au10Mirror.perform(
|
|
16
|
+
shared: Au10tix.shared,
|
|
17
|
+
selector: "setAu10tixHostWithHost:",
|
|
18
|
+
with: "reactNative"
|
|
19
|
+
)
|
|
20
|
+
logger.debug("Au10tix host set to reactNative")
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@objc static func moduleName() -> String {
|
|
24
|
+
return "SecuremeSDK"
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@objc static func requiresMainQueueSetup() -> Bool {
|
|
28
|
+
return true
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@objc(requestCameraPermission:withRejecter:)
|
|
32
|
+
func requestCameraPermission(resolve: @escaping RCTPromiseResolveBlock,
|
|
33
|
+
reject: @escaping RCTPromiseRejectBlock) {
|
|
34
|
+
|
|
35
|
+
let authStatus = SecuremeService.shared.checkCameraStatus()
|
|
36
|
+
|
|
37
|
+
switch authStatus {
|
|
38
|
+
case .notDetermined:
|
|
39
|
+
SecuremeService.shared.requestCameraAccess() { granted in
|
|
40
|
+
resolve(granted)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
case .authorized:
|
|
44
|
+
resolve(true)
|
|
45
|
+
|
|
46
|
+
case .denied, .restricted:
|
|
47
|
+
resolve(false)
|
|
48
|
+
|
|
49
|
+
@unknown default:
|
|
50
|
+
resolve(false)
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@objc(start:flowMap:configMap:resolve:reject:)
|
|
55
|
+
func start(
|
|
56
|
+
workFlowResponse: String,
|
|
57
|
+
flowMap: NSDictionary,
|
|
58
|
+
configMap: NSDictionary,
|
|
59
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
60
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
61
|
+
) {
|
|
62
|
+
|
|
63
|
+
let authStatus = SecuremeService.shared.checkCameraStatus()
|
|
64
|
+
|
|
65
|
+
switch authStatus {
|
|
66
|
+
case .authorized:
|
|
67
|
+
logger.debug("Camera authorized.")
|
|
68
|
+
SecuremeService.shared.startSession(workFlowResponse: workFlowResponse, flowDictionary: flowMap, configDictionary: configMap) { result in
|
|
69
|
+
|
|
70
|
+
switch result {
|
|
71
|
+
case .success(_):
|
|
72
|
+
SecuremeService.shared.startSecureMeKit { result in
|
|
73
|
+
switch result {
|
|
74
|
+
|
|
75
|
+
case .success(let success):
|
|
76
|
+
resolve(success)
|
|
77
|
+
case .failure(let error):
|
|
78
|
+
let error = SDKError.secureMeFailure(error.localizedDescription)
|
|
79
|
+
reject(error.code, error.localizedDescription, error)
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
case .failure(let error):
|
|
84
|
+
let error = SDKError.secureMeFailure(error.localizedDescription)
|
|
85
|
+
reject(error.code, error.localizedDescription, error)
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
case .notDetermined:
|
|
90
|
+
let error = SDKError.secureMeFailure("Camera permission not determined. Please request permission in the app before calling initSession.")
|
|
91
|
+
reject(error.code, error.localizedDescription, error)
|
|
92
|
+
|
|
93
|
+
case .denied, .restricted:
|
|
94
|
+
let error = SDKError.secureMeFailure("Camera permission denied. User needs to enable it in Settings.")
|
|
95
|
+
reject(error.code, error.localizedDescription, error)
|
|
96
|
+
|
|
97
|
+
@unknown default:
|
|
98
|
+
let error = SDKError.secureMeFailure("Unknown camera permission status.")
|
|
99
|
+
reject(error.code, error.localizedDescription, error)
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
// !$*UTF8*$!
|
|
2
|
+
{
|
|
3
|
+
archiveVersion = 1;
|
|
4
|
+
classes = {
|
|
5
|
+
};
|
|
6
|
+
objectVersion = 46;
|
|
7
|
+
objects = {
|
|
8
|
+
|
|
9
|
+
/* Begin PBXBuildFile section */
|
|
10
|
+
85377A292F01B23000BAA233 /* SecuremeService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85377A272F01B23000BAA233 /* SecuremeService.swift */; };
|
|
11
|
+
85377A2C2F01B5BA00BAA233 /* DictionaryExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85377A2B2F01B5BA00BAA233 /* DictionaryExtensions.swift */; };
|
|
12
|
+
85377A2E2F02888200BAA233 /* SecureMeExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85377A2D2F02888200BAA233 /* SecureMeExtensions.swift */; };
|
|
13
|
+
85398EBC2EECBB8100007D17 /* SDKError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85398EBB2EECBB8100007D17 /* SDKError.swift */; };
|
|
14
|
+
/* End PBXBuildFile section */
|
|
15
|
+
|
|
16
|
+
/* Begin PBXCopyFilesBuildPhase section */
|
|
17
|
+
58B511D91A9E6C8500147676 /* CopyFiles */ = {
|
|
18
|
+
isa = PBXCopyFilesBuildPhase;
|
|
19
|
+
buildActionMask = 2147483647;
|
|
20
|
+
dstPath = "include/$(PRODUCT_NAME)";
|
|
21
|
+
dstSubfolderSpec = 16;
|
|
22
|
+
files = (
|
|
23
|
+
);
|
|
24
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
25
|
+
};
|
|
26
|
+
/* End PBXCopyFilesBuildPhase section */
|
|
27
|
+
|
|
28
|
+
/* Begin PBXFileReference section */
|
|
29
|
+
134814201AA4EA6300B7C361 /* libSecuremeSdk.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSecuremeSdk.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
30
|
+
85377A272F01B23000BAA233 /* SecuremeService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuremeService.swift; sourceTree = "<group>"; };
|
|
31
|
+
85377A2B2F01B5BA00BAA233 /* DictionaryExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DictionaryExtensions.swift; sourceTree = "<group>"; };
|
|
32
|
+
85377A2D2F02888200BAA233 /* SecureMeExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureMeExtensions.swift; sourceTree = "<group>"; };
|
|
33
|
+
85398EBB2EECBB8100007D17 /* SDKError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SDKError.swift; sourceTree = "<group>"; };
|
|
34
|
+
85398EBD2EED65D200007D17 /* SecuremeSdk.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SecuremeSdk.m; sourceTree = "<group>"; };
|
|
35
|
+
85398EBE2EED65D200007D17 /* SecuremeSdk.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuremeSdk.swift; sourceTree = "<group>"; };
|
|
36
|
+
85398EBF2EED689E00007D17 /* SecuremeSdk-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SecuremeSdk-Bridging-Header.h"; sourceTree = "<group>"; };
|
|
37
|
+
/* End PBXFileReference section */
|
|
38
|
+
|
|
39
|
+
/* Begin PBXFrameworksBuildPhase section */
|
|
40
|
+
58B511D81A9E6C8500147676 /* Frameworks */ = {
|
|
41
|
+
isa = PBXFrameworksBuildPhase;
|
|
42
|
+
buildActionMask = 2147483647;
|
|
43
|
+
files = (
|
|
44
|
+
);
|
|
45
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
46
|
+
};
|
|
47
|
+
/* End PBXFrameworksBuildPhase section */
|
|
48
|
+
|
|
49
|
+
/* Begin PBXGroup section */
|
|
50
|
+
134814211AA4EA7D00B7C361 /* Products */ = {
|
|
51
|
+
isa = PBXGroup;
|
|
52
|
+
children = (
|
|
53
|
+
134814201AA4EA6300B7C361 /* libSecuremeSdk.a */,
|
|
54
|
+
);
|
|
55
|
+
name = Products;
|
|
56
|
+
sourceTree = "<group>";
|
|
57
|
+
};
|
|
58
|
+
58B511D21A9E6C8500147676 = {
|
|
59
|
+
isa = PBXGroup;
|
|
60
|
+
children = (
|
|
61
|
+
85377A2A2F01B59700BAA233 /* Extensions */,
|
|
62
|
+
85377A282F01B23000BAA233 /* Secureme */,
|
|
63
|
+
85398EC32EEE18D500007D17 /* Models */,
|
|
64
|
+
85398EBF2EED689E00007D17 /* SecuremeSdk-Bridging-Header.h */,
|
|
65
|
+
134814211AA4EA7D00B7C361 /* Products */,
|
|
66
|
+
85398EBD2EED65D200007D17 /* SecuremeSdk.m */,
|
|
67
|
+
85398EBE2EED65D200007D17 /* SecuremeSdk.swift */,
|
|
68
|
+
);
|
|
69
|
+
sourceTree = "<group>";
|
|
70
|
+
};
|
|
71
|
+
85377A282F01B23000BAA233 /* Secureme */ = {
|
|
72
|
+
isa = PBXGroup;
|
|
73
|
+
children = (
|
|
74
|
+
85377A272F01B23000BAA233 /* SecuremeService.swift */,
|
|
75
|
+
);
|
|
76
|
+
path = Secureme;
|
|
77
|
+
sourceTree = "<group>";
|
|
78
|
+
};
|
|
79
|
+
85377A2A2F01B59700BAA233 /* Extensions */ = {
|
|
80
|
+
isa = PBXGroup;
|
|
81
|
+
children = (
|
|
82
|
+
85377A2B2F01B5BA00BAA233 /* DictionaryExtensions.swift */,
|
|
83
|
+
85377A2D2F02888200BAA233 /* SecureMeExtensions.swift */,
|
|
84
|
+
);
|
|
85
|
+
path = Extensions;
|
|
86
|
+
sourceTree = "<group>";
|
|
87
|
+
};
|
|
88
|
+
85398EC32EEE18D500007D17 /* Models */ = {
|
|
89
|
+
isa = PBXGroup;
|
|
90
|
+
children = (
|
|
91
|
+
85398EBB2EECBB8100007D17 /* SDKError.swift */,
|
|
92
|
+
);
|
|
93
|
+
path = Models;
|
|
94
|
+
sourceTree = "<group>";
|
|
95
|
+
};
|
|
96
|
+
/* End PBXGroup section */
|
|
97
|
+
|
|
98
|
+
/* Begin PBXNativeTarget section */
|
|
99
|
+
58B511DA1A9E6C8500147676 /* SecuremeSdk */ = {
|
|
100
|
+
isa = PBXNativeTarget;
|
|
101
|
+
buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "SecuremeSdk" */;
|
|
102
|
+
buildPhases = (
|
|
103
|
+
58B511D71A9E6C8500147676 /* Sources */,
|
|
104
|
+
58B511D81A9E6C8500147676 /* Frameworks */,
|
|
105
|
+
58B511D91A9E6C8500147676 /* CopyFiles */,
|
|
106
|
+
);
|
|
107
|
+
buildRules = (
|
|
108
|
+
);
|
|
109
|
+
dependencies = (
|
|
110
|
+
);
|
|
111
|
+
name = SecuremeSdk;
|
|
112
|
+
productName = RCTDataManager;
|
|
113
|
+
productReference = 134814201AA4EA6300B7C361 /* libSecuremeSdk.a */;
|
|
114
|
+
productType = "com.apple.product-type.library.static";
|
|
115
|
+
};
|
|
116
|
+
/* End PBXNativeTarget section */
|
|
117
|
+
|
|
118
|
+
/* Begin PBXProject section */
|
|
119
|
+
58B511D31A9E6C8500147676 /* Project object */ = {
|
|
120
|
+
isa = PBXProject;
|
|
121
|
+
attributes = {
|
|
122
|
+
LastUpgradeCheck = 0920;
|
|
123
|
+
ORGANIZATIONNAME = Facebook;
|
|
124
|
+
TargetAttributes = {
|
|
125
|
+
58B511DA1A9E6C8500147676 = {
|
|
126
|
+
CreatedOnToolsVersion = 6.1.1;
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "SecuremeSdk" */;
|
|
131
|
+
compatibilityVersion = "Xcode 3.2";
|
|
132
|
+
developmentRegion = English;
|
|
133
|
+
hasScannedForEncodings = 0;
|
|
134
|
+
knownRegions = (
|
|
135
|
+
English,
|
|
136
|
+
en,
|
|
137
|
+
);
|
|
138
|
+
mainGroup = 58B511D21A9E6C8500147676;
|
|
139
|
+
productRefGroup = 58B511D21A9E6C8500147676;
|
|
140
|
+
projectDirPath = "";
|
|
141
|
+
projectRoot = "";
|
|
142
|
+
targets = (
|
|
143
|
+
58B511DA1A9E6C8500147676 /* SecuremeSdk */,
|
|
144
|
+
);
|
|
145
|
+
};
|
|
146
|
+
/* End PBXProject section */
|
|
147
|
+
|
|
148
|
+
/* Begin PBXSourcesBuildPhase section */
|
|
149
|
+
58B511D71A9E6C8500147676 /* Sources */ = {
|
|
150
|
+
isa = PBXSourcesBuildPhase;
|
|
151
|
+
buildActionMask = 2147483647;
|
|
152
|
+
files = (
|
|
153
|
+
85377A2E2F02888200BAA233 /* SecureMeExtensions.swift in Sources */,
|
|
154
|
+
85377A292F01B23000BAA233 /* SecuremeService.swift in Sources */,
|
|
155
|
+
85398EBC2EECBB8100007D17 /* SDKError.swift in Sources */,
|
|
156
|
+
85377A2C2F01B5BA00BAA233 /* DictionaryExtensions.swift in Sources */,
|
|
157
|
+
);
|
|
158
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
159
|
+
};
|
|
160
|
+
/* End PBXSourcesBuildPhase section */
|
|
161
|
+
|
|
162
|
+
/* Begin XCBuildConfiguration section */
|
|
163
|
+
58B511ED1A9E6C8500147676 /* Debug */ = {
|
|
164
|
+
isa = XCBuildConfiguration;
|
|
165
|
+
buildSettings = {
|
|
166
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
167
|
+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
168
|
+
CLANG_CXX_LIBRARY = "libc++";
|
|
169
|
+
CLANG_ENABLE_MODULES = YES;
|
|
170
|
+
CLANG_ENABLE_OBJC_ARC = YES;
|
|
171
|
+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
172
|
+
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
173
|
+
CLANG_WARN_COMMA = YES;
|
|
174
|
+
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
175
|
+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
176
|
+
CLANG_WARN_EMPTY_BODY = YES;
|
|
177
|
+
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
178
|
+
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
179
|
+
CLANG_WARN_INT_CONVERSION = YES;
|
|
180
|
+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
181
|
+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
182
|
+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
183
|
+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
184
|
+
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
185
|
+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
186
|
+
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
187
|
+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
188
|
+
COPY_PHASE_STRIP = NO;
|
|
189
|
+
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
190
|
+
ENABLE_TESTABILITY = YES;
|
|
191
|
+
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
192
|
+
GCC_DYNAMIC_NO_PIC = NO;
|
|
193
|
+
GCC_NO_COMMON_BLOCKS = YES;
|
|
194
|
+
GCC_OPTIMIZATION_LEVEL = 0;
|
|
195
|
+
GCC_PREPROCESSOR_DEFINITIONS = (
|
|
196
|
+
"DEBUG=1",
|
|
197
|
+
"$(inherited)",
|
|
198
|
+
);
|
|
199
|
+
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
|
200
|
+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
201
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
202
|
+
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
203
|
+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
204
|
+
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
205
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
206
|
+
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
|
207
|
+
MTL_ENABLE_DEBUG_INFO = YES;
|
|
208
|
+
ONLY_ACTIVE_ARCH = YES;
|
|
209
|
+
SDKROOT = iphoneos;
|
|
210
|
+
};
|
|
211
|
+
name = Debug;
|
|
212
|
+
};
|
|
213
|
+
58B511EE1A9E6C8500147676 /* Release */ = {
|
|
214
|
+
isa = XCBuildConfiguration;
|
|
215
|
+
buildSettings = {
|
|
216
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
217
|
+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
|
218
|
+
CLANG_CXX_LIBRARY = "libc++";
|
|
219
|
+
CLANG_ENABLE_MODULES = YES;
|
|
220
|
+
CLANG_ENABLE_OBJC_ARC = YES;
|
|
221
|
+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
222
|
+
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
223
|
+
CLANG_WARN_COMMA = YES;
|
|
224
|
+
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
225
|
+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
226
|
+
CLANG_WARN_EMPTY_BODY = YES;
|
|
227
|
+
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
228
|
+
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
229
|
+
CLANG_WARN_INT_CONVERSION = YES;
|
|
230
|
+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
231
|
+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
232
|
+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
233
|
+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
234
|
+
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
235
|
+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
236
|
+
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
237
|
+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
238
|
+
COPY_PHASE_STRIP = YES;
|
|
239
|
+
ENABLE_NS_ASSERTIONS = NO;
|
|
240
|
+
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
241
|
+
GCC_C_LANGUAGE_STANDARD = gnu99;
|
|
242
|
+
GCC_NO_COMMON_BLOCKS = YES;
|
|
243
|
+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
244
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
245
|
+
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
246
|
+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
247
|
+
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
248
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
249
|
+
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
|
250
|
+
MTL_ENABLE_DEBUG_INFO = NO;
|
|
251
|
+
SDKROOT = iphoneos;
|
|
252
|
+
VALIDATE_PRODUCT = YES;
|
|
253
|
+
};
|
|
254
|
+
name = Release;
|
|
255
|
+
};
|
|
256
|
+
58B511F01A9E6C8500147676 /* Debug */ = {
|
|
257
|
+
isa = XCBuildConfiguration;
|
|
258
|
+
buildSettings = {
|
|
259
|
+
HEADER_SEARCH_PATHS = (
|
|
260
|
+
"$(inherited)",
|
|
261
|
+
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
|
262
|
+
"$(SRCROOT)/../../../React/**",
|
|
263
|
+
"$(SRCROOT)/../../react-native/React/**",
|
|
264
|
+
);
|
|
265
|
+
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
|
266
|
+
OTHER_LDFLAGS = "-ObjC";
|
|
267
|
+
PRODUCT_NAME = SecuremeSdk;
|
|
268
|
+
SKIP_INSTALL = YES;
|
|
269
|
+
SWIFT_OBJC_BRIDGING_HEADER = "SecuremeSdk-Bridging-Header.h";
|
|
270
|
+
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
|
271
|
+
SWIFT_VERSION = 5.0;
|
|
272
|
+
};
|
|
273
|
+
name = Debug;
|
|
274
|
+
};
|
|
275
|
+
58B511F11A9E6C8500147676 /* Release */ = {
|
|
276
|
+
isa = XCBuildConfiguration;
|
|
277
|
+
buildSettings = {
|
|
278
|
+
HEADER_SEARCH_PATHS = (
|
|
279
|
+
"$(inherited)",
|
|
280
|
+
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
|
281
|
+
"$(SRCROOT)/../../../React/**",
|
|
282
|
+
"$(SRCROOT)/../../react-native/React/**",
|
|
283
|
+
);
|
|
284
|
+
LIBRARY_SEARCH_PATHS = "$(inherited)";
|
|
285
|
+
OTHER_LDFLAGS = "-ObjC";
|
|
286
|
+
PRODUCT_NAME = SecuremeSdk;
|
|
287
|
+
SKIP_INSTALL = YES;
|
|
288
|
+
SWIFT_OBJC_BRIDGING_HEADER = "SecuremeSdk-Bridging-Header.h";
|
|
289
|
+
SWIFT_VERSION = 5.0;
|
|
290
|
+
};
|
|
291
|
+
name = Release;
|
|
292
|
+
};
|
|
293
|
+
/* End XCBuildConfiguration section */
|
|
294
|
+
|
|
295
|
+
/* Begin XCConfigurationList section */
|
|
296
|
+
58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "SecuremeSdk" */ = {
|
|
297
|
+
isa = XCConfigurationList;
|
|
298
|
+
buildConfigurations = (
|
|
299
|
+
58B511ED1A9E6C8500147676 /* Debug */,
|
|
300
|
+
58B511EE1A9E6C8500147676 /* Release */,
|
|
301
|
+
);
|
|
302
|
+
defaultConfigurationIsVisible = 0;
|
|
303
|
+
defaultConfigurationName = Release;
|
|
304
|
+
};
|
|
305
|
+
58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "SecuremeSdk" */ = {
|
|
306
|
+
isa = XCConfigurationList;
|
|
307
|
+
buildConfigurations = (
|
|
308
|
+
58B511F01A9E6C8500147676 /* Debug */,
|
|
309
|
+
58B511F11A9E6C8500147676 /* Release */,
|
|
310
|
+
);
|
|
311
|
+
defaultConfigurationIsVisible = 0;
|
|
312
|
+
defaultConfigurationName = Release;
|
|
313
|
+
};
|
|
314
|
+
/* End XCConfigurationList section */
|
|
315
|
+
};
|
|
316
|
+
rootObject = 58B511D31A9E6C8500147676 /* Project object */;
|
|
317
|
+
}
|