diff --git a/app/index.clip.js b/app/index.clip.js
new file mode 100644
index 000000000..2f251eb9a
--- /dev/null
+++ b/app/index.clip.js
@@ -0,0 +1,28 @@
+/**
+ * @format
+ */
+
+import { AppRegistry, LogBox } from 'react-native';
+import App from './App';
+import { name as appName } from './app.json';
+import { TamaguiProvider, createTamagui } from 'tamagui';
+import { config } from '@tamagui/config/v2-native'
+import { ToastProvider } from '@tamagui/toast';
+const tamaguiConfig = createTamagui(config)
+
+LogBox.ignoreLogs([
+ /bad setState/,
+ 'Warning, duplicate ID for input',
+ /Warning, duplicate ID for input/
+])
+
+const Root = () => (
+
+
+
+
+
+
+);
+
+AppRegistry.registerComponent(appName, () => Root);
diff --git a/app/ios/OpenPassport App Clip/AppDelegate.h b/app/ios/OpenPassport App Clip/AppDelegate.h
new file mode 100644
index 000000000..d486df47e
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/AppDelegate.h
@@ -0,0 +1,22 @@
+//
+// AppDelegate.h
+// OpenPassport App Clip
+//
+// Created by turboblitz on 17/08/2024.
+//
+
+#import
+#import
+#import
+
+@interface AppDelegate : UIResponder
+
+@property (nonatomic, strong) UIWindow *window;
+
+@property (readonly, strong) NSPersistentContainer *persistentContainer;
+
+- (void)saveContext;
+
+
+@end
+
diff --git a/app/ios/OpenPassport App Clip/AppDelegate.m b/app/ios/OpenPassport App Clip/AppDelegate.m
new file mode 100644
index 000000000..fb9a4ee0c
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/AppDelegate.m
@@ -0,0 +1,85 @@
+//
+// AppDelegate.m
+// OpenPassport App Clip
+//
+// Created by turboblitz on 17/08/2024.
+//
+
+#import "AppDelegate.h"
+
+@interface AppDelegate ()
+
+@end
+
+@implementation AppDelegate
+
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
+ // Override point for customization after application launch.
+ return YES;
+}
+
+
+#pragma mark - UISceneSession lifecycle
+
+
+- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options {
+ // Called when a new scene session is being created.
+ // Use this method to select a configuration to create the new scene with.
+ return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role];
+}
+
+
+- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet *)sceneSessions {
+ // Called when the user discards a scene session.
+ // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
+ // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
+}
+
+
+#pragma mark - Core Data stack
+
+@synthesize persistentContainer = _persistentContainer;
+
+- (NSPersistentContainer *)persistentContainer {
+ // The persistent container for the application. This implementation creates and returns a container, having loaded the store for the application to it.
+ @synchronized (self) {
+ if (_persistentContainer == nil) {
+ _persistentContainer = [[NSPersistentContainer alloc] initWithName:@"OpenPassport_App_Clip"];
+ [_persistentContainer loadPersistentStoresWithCompletionHandler:^(NSPersistentStoreDescription *storeDescription, NSError *error) {
+ if (error != nil) {
+ // Replace this implementation with code to handle the error appropriately.
+ // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
+
+ /*
+ Typical reasons for an error here include:
+ * The parent directory does not exist, cannot be created, or disallows writing.
+ * The persistent store is not accessible, due to permissions or data protection when the device is locked.
+ * The device is out of space.
+ * The store could not be migrated to the current model version.
+ Check the error message to determine what the actual problem was.
+ */
+ NSLog(@"Unresolved error %@, %@", error, error.userInfo);
+ abort();
+ }
+ }];
+ }
+ }
+
+ return _persistentContainer;
+}
+
+#pragma mark - Core Data Saving support
+
+- (void)saveContext {
+ NSManagedObjectContext *context = self.persistentContainer.viewContext;
+ NSError *error = nil;
+ if ([context hasChanges] && ![context save:&error]) {
+ // Replace this implementation with code to handle the error appropriately.
+ // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
+ NSLog(@"Unresolved error %@, %@", error, error.userInfo);
+ abort();
+ }
+}
+
+@end
diff --git a/app/ios/OpenPassport App Clip/Assets.xcassets/AccentColor.colorset/Contents.json b/app/ios/OpenPassport App Clip/Assets.xcassets/AccentColor.colorset/Contents.json
new file mode 100644
index 000000000..eb8789700
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/Assets.xcassets/AccentColor.colorset/Contents.json
@@ -0,0 +1,11 @@
+{
+ "colors" : [
+ {
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/app/ios/OpenPassport App Clip/Assets.xcassets/AppIcon.appiconset/Contents.json b/app/ios/OpenPassport App Clip/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 000000000..13613e3ee
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,13 @@
+{
+ "images" : [
+ {
+ "idiom" : "universal",
+ "platform" : "ios",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/app/ios/OpenPassport App Clip/Assets.xcassets/Contents.json b/app/ios/OpenPassport App Clip/Assets.xcassets/Contents.json
new file mode 100644
index 000000000..73c00596a
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/app/ios/OpenPassport App Clip/Assets.xcassets/disclose.dat.dataset/Contents.json b/app/ios/OpenPassport App Clip/Assets.xcassets/disclose.dat.dataset/Contents.json
new file mode 100644
index 000000000..e36158f84
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/Assets.xcassets/disclose.dat.dataset/Contents.json
@@ -0,0 +1,13 @@
+{
+ "data" : [
+ {
+ "filename" : "disclose.dat",
+ "idiom" : "universal",
+ "universal-type-identifier" : "dyn.ah62d4rv4ge80k2py"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/app/ios/OpenPassport App Clip/Assets.xcassets/disclose.dat.dataset/disclose.dat b/app/ios/OpenPassport App Clip/Assets.xcassets/disclose.dat.dataset/disclose.dat
new file mode 100644
index 000000000..45f1dbe92
Binary files /dev/null and b/app/ios/OpenPassport App Clip/Assets.xcassets/disclose.dat.dataset/disclose.dat differ
diff --git a/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsa_65537_sha1.dat.dataset/Contents.json b/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsa_65537_sha1.dat.dataset/Contents.json
new file mode 100644
index 000000000..5b96cfca9
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsa_65537_sha1.dat.dataset/Contents.json
@@ -0,0 +1,13 @@
+{
+ "data" : [
+ {
+ "filename" : "prove_rsa_65537_sha1.dat",
+ "idiom" : "universal",
+ "universal-type-identifier" : "dyn.ah62d4rv4ge80k2py"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsa_65537_sha1.dat.dataset/prove_rsa_65537_sha1.dat b/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsa_65537_sha1.dat.dataset/prove_rsa_65537_sha1.dat
new file mode 100644
index 000000000..98bd75f77
Binary files /dev/null and b/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsa_65537_sha1.dat.dataset/prove_rsa_65537_sha1.dat differ
diff --git a/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsa_65537_sha256.dat.dataset/Contents.json b/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsa_65537_sha256.dat.dataset/Contents.json
new file mode 100644
index 000000000..5ebb4661f
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsa_65537_sha256.dat.dataset/Contents.json
@@ -0,0 +1,13 @@
+{
+ "data" : [
+ {
+ "filename" : "prove_rsa_65537_sha256.dat",
+ "idiom" : "universal",
+ "universal-type-identifier" : "dyn.ah62d4rv4ge80k2py"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsa_65537_sha256.dat.dataset/prove_rsa_65537_sha256.dat b/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsa_65537_sha256.dat.dataset/prove_rsa_65537_sha256.dat
new file mode 100644
index 000000000..1487e0c45
Binary files /dev/null and b/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsa_65537_sha256.dat.dataset/prove_rsa_65537_sha256.dat differ
diff --git a/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsapss_65537_sha256.dat.dataset/Contents.json b/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsapss_65537_sha256.dat.dataset/Contents.json
new file mode 100644
index 000000000..e83d03db6
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsapss_65537_sha256.dat.dataset/Contents.json
@@ -0,0 +1,13 @@
+{
+ "data" : [
+ {
+ "filename" : "prove_rsapss_65537_sha256.dat",
+ "idiom" : "universal",
+ "universal-type-identifier" : "dyn.ah62d4rv4ge80k2py"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsapss_65537_sha256.dat.dataset/prove_rsapss_65537_sha256.dat b/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsapss_65537_sha256.dat.dataset/prove_rsapss_65537_sha256.dat
new file mode 100644
index 000000000..21f871ae3
Binary files /dev/null and b/app/ios/OpenPassport App Clip/Assets.xcassets/prove_rsapss_65537_sha256.dat.dataset/prove_rsapss_65537_sha256.dat differ
diff --git a/app/ios/OpenPassport App Clip/Assets.xcassets/register_sha256WithRSAEncryption_65537.dat.dataset/Contents.json b/app/ios/OpenPassport App Clip/Assets.xcassets/register_sha256WithRSAEncryption_65537.dat.dataset/Contents.json
new file mode 100644
index 000000000..57e01c0e3
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/Assets.xcassets/register_sha256WithRSAEncryption_65537.dat.dataset/Contents.json
@@ -0,0 +1,13 @@
+{
+ "data" : [
+ {
+ "filename" : "register_sha256WithRSAEncryption_65537.dat",
+ "idiom" : "universal",
+ "universal-type-identifier" : "dyn.ah62d4rv4ge80k2py"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/app/ios/OpenPassport App Clip/Assets.xcassets/register_sha256WithRSAEncryption_65537.dat.dataset/register_sha256WithRSAEncryption_65537.dat b/app/ios/OpenPassport App Clip/Assets.xcassets/register_sha256WithRSAEncryption_65537.dat.dataset/register_sha256WithRSAEncryption_65537.dat
new file mode 100644
index 000000000..e32888387
Binary files /dev/null and b/app/ios/OpenPassport App Clip/Assets.xcassets/register_sha256WithRSAEncryption_65537.dat.dataset/register_sha256WithRSAEncryption_65537.dat differ
diff --git a/app/ios/OpenPassport App Clip/Base.lproj/LaunchScreen.storyboard b/app/ios/OpenPassport App Clip/Base.lproj/LaunchScreen.storyboard
new file mode 100644
index 000000000..865e9329f
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/Base.lproj/LaunchScreen.storyboard
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/ios/OpenPassport App Clip/Base.lproj/Main.storyboard b/app/ios/OpenPassport App Clip/Base.lproj/Main.storyboard
new file mode 100644
index 000000000..808a21ce7
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/Base.lproj/Main.storyboard
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/ios/OpenPassport App Clip/Info.plist b/app/ios/OpenPassport App Clip/Info.plist
new file mode 100644
index 000000000..45a660237
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/Info.plist
@@ -0,0 +1,116 @@
+
+
+
+
+ NSAppClip
+
+ NSAppClipRequestEphemeralUserNotification
+
+ NSAppClipRequestLocationConfirmation
+
+
+ UIApplicationSceneManifest
+
+ UIApplicationSupportsMultipleScenes
+
+ UISceneConfigurations
+
+ UIWindowSceneSessionRoleApplication
+
+
+ UISceneConfigurationName
+ Default Configuration
+ UISceneDelegateClassName
+ SceneDelegate
+ UISceneStoryboardFile
+ Main
+
+
+
+
+
+ NSCameraUsageDescription
+ Needed to scan the passport MRZ.
+ NFCReaderUsageDescription
+ Need NFC to read Passport
+ NSFaceIDUsageDescription
+ Needed to secure the secret
+ NSAppTransportSecurity
+
+ NSAllowsArbitraryLoads
+
+ NSExceptionDomains
+
+ localhost
+
+ NSExceptionAllowsInsecureHTTPLoads
+
+ NSIncludesSubdomains
+
+
+ openpassport.app
+
+ NSExceptionAllowsInsecureHTTPLoads
+
+ NSIncludesSubdomains
+
+
+
+
+ UIViewControllerBasedStatusBarAppearance
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UIAppFonts
+
+ Inter-Black.otf
+ Inter-BlackItalic.otf
+ Inter-BoldItalic.otf
+ Inter-ExtraBold.otf
+ Inter-ExtraBoldItalic.otf
+ Inter-ExtraLight.otf
+ Inter-ExtraLightItalic.otf
+ Inter-Italic.otf
+ Inter-Light.otf
+ Inter-LightItalic.otf
+ Inter-Medium.otf
+ Inter-MediumItalic.otf
+ Inter-Regular.otf
+ Inter-SemiBold.otf
+ Inter-SemiBoldItalic.otf
+ Inter-Thin.otf
+ Inter-ThinItalic.otf
+ Luciole-Bold-Italic.ttf
+ Luciole-Bold.ttf
+ Luciole-Regular-Italic.ttf
+ Luciole-Regular.ttf
+ slkscr.ttf
+ slkscrb.ttf
+ Inter-Bold.otf
+
+ UILaunchStoryboardName
+ LaunchScreen
+ UIRequiredDeviceCapabilities
+
+ armv7
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UIViewControllerBasedStatusBarAppearance
+
+ com.apple.developer.nfc.readersession.iso7816.select-identifiers
+
+ A0000002471001
+ A0000002472001
+ 00000000000000
+
+
+
diff --git a/app/ios/OpenPassport App Clip/OpenPassport_App_Clip.entitlements b/app/ios/OpenPassport App Clip/OpenPassport_App_Clip.entitlements
new file mode 100644
index 000000000..3b80b1e1a
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/OpenPassport_App_Clip.entitlements
@@ -0,0 +1,16 @@
+
+
+
+
+ com.apple.security.device.camera
+
+ com.apple.developer.nfc.readersession.formats
+
+ TAG
+
+ com.apple.developer.parent-application-identifiers
+
+ $(AppIdentifierPrefix)com.warroom.proofofpassport
+
+
+
diff --git a/app/ios/OpenPassport App Clip/OpenPassport_App_Clip.xcdatamodeld/.xccurrentversion b/app/ios/OpenPassport App Clip/OpenPassport_App_Clip.xcdatamodeld/.xccurrentversion
new file mode 100644
index 000000000..f82b8b61c
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/OpenPassport_App_Clip.xcdatamodeld/.xccurrentversion
@@ -0,0 +1,8 @@
+
+
+
+
+ _XCCurrentVersionName
+ OpenPassport_App_Clip.xcdatamodel
+
+
diff --git a/app/ios/OpenPassport App Clip/OpenPassport_App_Clip.xcdatamodeld/OpenPassport_App_Clip.xcdatamodel/contents b/app/ios/OpenPassport App Clip/OpenPassport_App_Clip.xcdatamodeld/OpenPassport_App_Clip.xcdatamodel/contents
new file mode 100644
index 000000000..d7e92b38b
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/OpenPassport_App_Clip.xcdatamodeld/OpenPassport_App_Clip.xcdatamodel/contents
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/ios/OpenPassport App Clip/SceneDelegate.h b/app/ios/OpenPassport App Clip/SceneDelegate.h
new file mode 100644
index 000000000..3b0381fcd
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/SceneDelegate.h
@@ -0,0 +1,15 @@
+//
+// SceneDelegate.h
+// OpenPassport App Clip
+//
+// Created by turboblitz on 17/08/2024.
+//
+
+#import
+
+@interface SceneDelegate : UIResponder
+
+@property (strong, nonatomic) UIWindow * window;
+
+@end
+
diff --git a/app/ios/OpenPassport App Clip/SceneDelegate.m b/app/ios/OpenPassport App Clip/SceneDelegate.m
new file mode 100644
index 000000000..f27bef815
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/SceneDelegate.m
@@ -0,0 +1,61 @@
+//
+// SceneDelegate.m
+// OpenPassport App Clip
+//
+// Created by turboblitz on 17/08/2024.
+//
+
+#import "SceneDelegate.h"
+#import "AppDelegate.h"
+
+@interface SceneDelegate ()
+
+@end
+
+@implementation SceneDelegate
+
+
+- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
+ // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
+ // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
+ // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
+}
+
+
+- (void)sceneDidDisconnect:(UIScene *)scene {
+ // Called as the scene is being released by the system.
+ // This occurs shortly after the scene enters the background, or when its session is discarded.
+ // Release any resources associated with this scene that can be re-created the next time the scene connects.
+ // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead).
+}
+
+
+- (void)sceneDidBecomeActive:(UIScene *)scene {
+ // Called when the scene has moved from an inactive state to an active state.
+ // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
+}
+
+
+- (void)sceneWillResignActive:(UIScene *)scene {
+ // Called when the scene will move from an active state to an inactive state.
+ // This may occur due to temporary interruptions (ex. an incoming phone call).
+}
+
+
+- (void)sceneWillEnterForeground:(UIScene *)scene {
+ // Called as the scene transitions from the background to the foreground.
+ // Use this method to undo the changes made on entering the background.
+}
+
+
+- (void)sceneDidEnterBackground:(UIScene *)scene {
+ // Called as the scene transitions from the foreground to the background.
+ // Use this method to save data, release shared resources, and store enough scene-specific state information
+ // to restore the scene back to its current state.
+
+ // Save changes in the application's managed object context when the application transitions to the background.
+ [(AppDelegate *)UIApplication.sharedApplication.delegate saveContext];
+}
+
+
+@end
diff --git a/app/ios/OpenPassport App Clip/ViewController.h b/app/ios/OpenPassport App Clip/ViewController.h
new file mode 100644
index 000000000..5fd9806de
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/ViewController.h
@@ -0,0 +1,14 @@
+//
+// ViewController.h
+// OpenPassport App Clip
+//
+// Created by turboblitz on 17/08/2024.
+//
+
+#import
+
+@interface ViewController : UIViewController
+
+
+@end
+
diff --git a/app/ios/OpenPassport App Clip/ViewController.m b/app/ios/OpenPassport App Clip/ViewController.m
new file mode 100644
index 000000000..a35520b36
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/ViewController.m
@@ -0,0 +1,42 @@
+//
+// ViewController.m
+// OpenPassport App Clip
+//
+// Created by turboblitz on 17/08/2024.
+//
+
+#import "ViewController.h"
+#import
+#import
+
+@interface ViewController ()
+
+@end
+
+@implementation ViewController
+
+- (void)loadView {
+ #if DEBUG
+ // For DEBUG configuration, javascript will be loaded from index file
+ NSURL *jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.clip"];
+ #else
+ // For RELEASE configuration, js code is bundled and main.jsbundle file is created
+ NSURL *jsCodeLocation = [[NSBundle mainBundle]
+URLForResource:@"main" withExtension:@"jsbundle"];
+ #endif
+
+ // Value of moduleName should be equal to appName value set in index file
+ RCTRootView *rootView = [[RCTRootView alloc]
+initWithBundleURL:jsCodeLocation moduleName:@"OpenPassport"
+initialProperties:nil launchOptions:nil];
+ rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f
+green:1.0f blue:1.0f alpha:1];
+ self.view = rootView;
+}
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+}
+
+
+@end
diff --git a/app/ios/OpenPassport App Clip/main.m b/app/ios/OpenPassport App Clip/main.m
new file mode 100644
index 000000000..ff4f79a19
--- /dev/null
+++ b/app/ios/OpenPassport App Clip/main.m
@@ -0,0 +1,18 @@
+//
+// main.m
+// OpenPassport App Clip
+//
+// Created by turboblitz on 17/08/2024.
+//
+
+#import
+#import "AppDelegate.h"
+
+int main(int argc, char * argv[]) {
+ NSString * appDelegateClassName;
+ @autoreleasepool {
+ // Setup code that might create autoreleased objects goes here.
+ appDelegateClassName = NSStringFromClass([AppDelegate class]);
+ }
+ return UIApplicationMain(argc, argv, nil, appDelegateClassName);
+}
diff --git a/app/ios/OpenPassport.xcodeproj/project.pbxproj b/app/ios/OpenPassport.xcodeproj/project.pbxproj
index ab8b6831e..ce5ba6a72 100644
--- a/app/ios/OpenPassport.xcodeproj/project.pbxproj
+++ b/app/ios/OpenPassport.xcodeproj/project.pbxproj
@@ -7,8 +7,40 @@
objects = {
/* Begin PBXBuildFile section */
+ 054340B82C71B2960014B445 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 054340B72C71B2960014B445 /* AppDelegate.m */; };
+ 054340BB2C71B2960014B445 /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 054340BA2C71B2960014B445 /* SceneDelegate.m */; };
+ 054340BE2C71B2960014B445 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 054340BD2C71B2960014B445 /* ViewController.m */; };
+ 054340C12C71B2960014B445 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 054340BF2C71B2960014B445 /* Main.storyboard */; };
+ 054340C42C71B2960014B445 /* OpenPassport_App_Clip.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 054340C22C71B2960014B445 /* OpenPassport_App_Clip.xcdatamodeld */; };
+ 054340C62C71B2980014B445 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 054340C52C71B2980014B445 /* Assets.xcassets */; };
+ 054340C92C71B2980014B445 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 054340C72C71B2980014B445 /* LaunchScreen.storyboard */; };
+ 054340CC2C71B2980014B445 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 054340CB2C71B2980014B445 /* main.m */; };
+ 054340D02C71B2980014B445 /* OpenPassport App Clip.app in Embed App Clips */ = {isa = PBXBuildFile; fileRef = 054340B42C71B2960014B445 /* OpenPassport App Clip.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
+ 05527D5C2C7743010077C942 /* libwitnesscalc_prove_rsa_65537_sha1.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0573C4F12C7545F6006C7386 /* libwitnesscalc_prove_rsa_65537_sha1.a */; };
+ 05527D5D2C7743010077C942 /* libwitnesscalc_prove_rsa_65537_sha256.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0573C4F32C7545F7006C7386 /* libwitnesscalc_prove_rsa_65537_sha256.a */; };
+ 05527D5E2C7743010077C942 /* libwitnesscalc_prove_rsapss_65537_sha256.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0573C4F22C7545F7006C7386 /* libwitnesscalc_prove_rsapss_65537_sha256.a */; };
0569F35B2BBC9015006670BD /* librapidsnark.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0569F35A2BBC900D006670BD /* librapidsnark.a */; };
0569F35F2BBC98D5006670BD /* libfq.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0569F35E2BBC98C9006670BD /* libfq.a */; };
+ 0573C4D72C72E6D0006C7386 /* PassportReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0573C4CA2C72E6D0006C7386 /* PassportReader.swift */; };
+ 0573C4D82C72E6D0006C7386 /* PassportReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 0573C4CC2C72E6D0006C7386 /* PassportReader.m */; };
+ 0573C4D92C72E6D0006C7386 /* QKMRZScannerViewRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0573C4CD2C72E6D0006C7386 /* QKMRZScannerViewRepresentable.swift */; };
+ 0573C4DA2C72E6D0006C7386 /* QRScannerBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 0573C4CE2C72E6D0006C7386 /* QRScannerBridge.m */; };
+ 0573C4DB2C72E6D0006C7386 /* Prover.m in Sources */ = {isa = PBXBuildFile; fileRef = 0573C4CF2C72E6D0006C7386 /* Prover.m */; };
+ 0573C4DC2C72E6D0006C7386 /* MRZScannerModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0573C4D02C72E6D0006C7386 /* MRZScannerModule.swift */; };
+ 0573C4DD2C72E6D0006C7386 /* QRScannerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0573C4D12C72E6D0006C7386 /* QRScannerViewController.swift */; };
+ 0573C4DE2C72E6D0006C7386 /* MRZScannerModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 0573C4D22C72E6D0006C7386 /* MRZScannerModule.m */; };
+ 0573C4DF2C72E6D0006C7386 /* LottieView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0573C4D32C72E6D0006C7386 /* LottieView.swift */; };
+ 0573C4E02C72E6D0006C7386 /* ScannerHostingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0573C4D42C72E6D0006C7386 /* ScannerHostingController.swift */; };
+ 0573C4E12C72E6D0006C7386 /* Prover.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0573C4D52C72E6D0006C7386 /* Prover.swift */; };
+ 0573C4E22C72E6D0006C7386 /* QRScannerBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0573C4D62C72E6D0006C7386 /* QRScannerBridge.swift */; };
+ 0573C4E42C72E7F6006C7386 /* libfq.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0569F35E2BBC98C9006670BD /* libfq.a */; };
+ 0573C4E52C72E7F6006C7386 /* libfr.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 05D985F32BB331AB00F58EEA /* libfr.a */; };
+ 0573C4E62C72E7F6006C7386 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 05D985F22BB331AB00F58EEA /* libgmp.a */; };
+ 0573C4E72C72E7F6006C7386 /* librapidsnark.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0569F35A2BBC900D006670BD /* librapidsnark.a */; };
+ 0573C4E82C72E7F6006C7386 /* libwitnesscalc_disclose.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 058516D32BF49B91006A14DA /* libwitnesscalc_disclose.a */; };
+ 0573C4E92C72E7F6006C7386 /* libwitnesscalc_register_sha256WithRSAEncryption_65537.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 058516D22BF49B91006A14DA /* libwitnesscalc_register_sha256WithRSAEncryption_65537.a */; };
+ 0573C4EE2C72E857006C7386 /* passport.json in Resources */ = {isa = PBXBuildFile; fileRef = 0573C4ED2C72E857006C7386 /* passport.json */; };
+ 0573C4F02C742FA6006C7386 /* masterList.pem in Resources */ = {isa = PBXBuildFile; fileRef = 0573C4EF2C742FA6006C7386 /* masterList.pem */; };
0573C4F42C754600006C7386 /* libwitnesscalc_prove_rsa_65537_sha1.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0573C4F12C7545F6006C7386 /* libwitnesscalc_prove_rsa_65537_sha1.a */; };
0573C4F52C754600006C7386 /* libwitnesscalc_prove_rsa_65537_sha256.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0573C4F32C7545F7006C7386 /* libwitnesscalc_prove_rsa_65537_sha256.a */; };
0573C4F62C754600006C7386 /* libwitnesscalc_prove_rsapss_65537_sha256.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0573C4F22C7545F7006C7386 /* libwitnesscalc_prove_rsapss_65537_sha256.a */; };
@@ -49,6 +81,7 @@
905B70052A72767900AFA232 /* PassportReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 905B70042A72767900AFA232 /* PassportReader.swift */; };
905B70072A72774000AFA232 /* PassportReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 905B70062A72774000AFA232 /* PassportReader.m */; };
905B700B2A72A5E900AFA232 /* masterList.pem in Resources */ = {isa = PBXBuildFile; fileRef = 905B700A2A72A5E900AFA232 /* masterList.pem */; };
+ 926E45294BCCFD19D5CD4AEF /* Pods_OpenPassport_OpenPassport_App_Clip.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F28D0EC9A537B138EDEDC422 /* Pods_OpenPassport_OpenPassport_App_Clip.framework */; };
9713779CBED04A308A0B2DF2 /* Inter-LightItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = 38DEC0D33CBA43429A48B8E3 /* Inter-LightItalic.otf */; };
98D6CE33FC02453794D8DB08 /* slkscr.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 110D16BAD3FA4513BEA89A3A /* slkscr.ttf */; };
B7C1F08B40CC4C1985152F72 /* Inter-SemiBoldItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = C03CCA67A92F47D59CDA16E5 /* Inter-SemiBoldItalic.otf */; };
@@ -72,12 +105,64 @@
remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
remoteInfo = OpenPassport;
};
+ 054340CE2C71B2980014B445 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 054340B32C71B2960014B445;
+ remoteInfo = "OpenPassport App Clip";
+ };
/* End PBXContainerItemProxy section */
+/* Begin PBXCopyFilesBuildPhase section */
+ 054340D12C71B2980014B445 /* Embed App Clips */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "$(CONTENTS_FOLDER_PATH)/AppClips";
+ dstSubfolderSpec = 16;
+ files = (
+ 054340D02C71B2980014B445 /* OpenPassport App Clip.app in Embed App Clips */,
+ );
+ name = "Embed App Clips";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
/* Begin PBXFileReference section */
00E356EE1AD99517003FC87E /* OpenPassportTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OpenPassportTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 03D7F2F0EF44EF6300A9E4CD /* Pods-OpenPassport-OpenPassport App Clip.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OpenPassport-OpenPassport App Clip.release.xcconfig"; path = "Target Support Files/Pods-OpenPassport-OpenPassport App Clip/Pods-OpenPassport-OpenPassport App Clip.release.xcconfig"; sourceTree = ""; };
+ 054340B42C71B2960014B445 /* OpenPassport App Clip.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "OpenPassport App Clip.app"; sourceTree = BUILT_PRODUCTS_DIR; };
+ 054340B62C71B2960014B445 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
+ 054340B72C71B2960014B445 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
+ 054340B92C71B2960014B445 /* SceneDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SceneDelegate.h; sourceTree = ""; };
+ 054340BA2C71B2960014B445 /* SceneDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SceneDelegate.m; sourceTree = ""; };
+ 054340BC2C71B2960014B445 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; };
+ 054340BD2C71B2960014B445 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; };
+ 054340C02C71B2960014B445 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
+ 054340C32C71B2960014B445 /* OpenPassport_App_Clip.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = OpenPassport_App_Clip.xcdatamodel; sourceTree = ""; };
+ 054340C52C71B2980014B445 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
+ 054340C82C71B2980014B445 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
+ 054340CA2C71B2980014B445 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 054340CB2C71B2980014B445 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
+ 054340CD2C71B2980014B445 /* OpenPassport_App_Clip.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = OpenPassport_App_Clip.entitlements; sourceTree = ""; };
0569F35A2BBC900D006670BD /* librapidsnark.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = librapidsnark.a; sourceTree = ""; };
0569F35E2BBC98C9006670BD /* libfq.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libfq.a; sourceTree = ""; };
+ 0573C4CA2C72E6D0006C7386 /* PassportReader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PassportReader.swift; sourceTree = SOURCE_ROOT; };
+ 0573C4CB2C72E6D0006C7386 /* OpenPassport-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OpenPassport-Bridging-Header.h"; sourceTree = SOURCE_ROOT; };
+ 0573C4CC2C72E6D0006C7386 /* PassportReader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PassportReader.m; sourceTree = SOURCE_ROOT; };
+ 0573C4CD2C72E6D0006C7386 /* QKMRZScannerViewRepresentable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QKMRZScannerViewRepresentable.swift; sourceTree = SOURCE_ROOT; };
+ 0573C4CE2C72E6D0006C7386 /* QRScannerBridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QRScannerBridge.m; sourceTree = SOURCE_ROOT; };
+ 0573C4CF2C72E6D0006C7386 /* Prover.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Prover.m; sourceTree = SOURCE_ROOT; };
+ 0573C4D02C72E6D0006C7386 /* MRZScannerModule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MRZScannerModule.swift; sourceTree = SOURCE_ROOT; };
+ 0573C4D12C72E6D0006C7386 /* QRScannerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QRScannerViewController.swift; sourceTree = SOURCE_ROOT; };
+ 0573C4D22C72E6D0006C7386 /* MRZScannerModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MRZScannerModule.m; sourceTree = SOURCE_ROOT; };
+ 0573C4D32C72E6D0006C7386 /* LottieView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LottieView.swift; sourceTree = SOURCE_ROOT; };
+ 0573C4D42C72E6D0006C7386 /* ScannerHostingController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScannerHostingController.swift; sourceTree = SOURCE_ROOT; };
+ 0573C4D52C72E6D0006C7386 /* Prover.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Prover.swift; sourceTree = SOURCE_ROOT; };
+ 0573C4D62C72E6D0006C7386 /* QRScannerBridge.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QRScannerBridge.swift; sourceTree = SOURCE_ROOT; };
+ 0573C4EA2C72E7F6006C7386 /* groth16_prover.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = groth16_prover.h; sourceTree = ""; };
+ 0573C4ED2C72E857006C7386 /* passport.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = passport.json; sourceTree = SOURCE_ROOT; };
+ 0573C4EF2C742FA6006C7386 /* masterList.pem */ = {isa = PBXFileReference; lastKnownFileType = text; name = masterList.pem; path = OpenPassport/masterList.pem; sourceTree = SOURCE_ROOT; };
0573C4F12C7545F6006C7386 /* libwitnesscalc_prove_rsa_65537_sha1.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libwitnesscalc_prove_rsa_65537_sha1.a; sourceTree = ""; };
0573C4F22C7545F7006C7386 /* libwitnesscalc_prove_rsapss_65537_sha256.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libwitnesscalc_prove_rsapss_65537_sha256.a; sourceTree = ""; };
0573C4F32C7545F7006C7386 /* libwitnesscalc_prove_rsa_65537_sha256.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libwitnesscalc_prove_rsa_65537_sha256.a; sourceTree = ""; };
@@ -90,6 +175,7 @@
05EDEDC52B52D25D00AA51AD /* Prover.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Prover.swift; sourceTree = ""; };
066DD67BD55B4E90941F2B97 /* Inter-Black.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Black.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-Black.otf"; sourceTree = ""; };
0AD24C885D29461481982641 /* slkscrb.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = slkscrb.ttf; path = "../node_modules/@tamagui/font-silkscreen/files/slkscrb.ttf"; sourceTree = ""; };
+ 0B18C6F4404CC83576C2F36A /* Pods-OpenPassport-OpenPassport App Clip.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OpenPassport-OpenPassport App Clip.debug.xcconfig"; path = "Target Support Files/Pods-OpenPassport-OpenPassport App Clip/Pods-OpenPassport-OpenPassport App Clip.debug.xcconfig"; sourceTree = ""; };
0C76A5D3C00C4D19B7624F46 /* Inter-BlackItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-BlackItalic.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-BlackItalic.otf"; sourceTree = ""; };
110D16BAD3FA4513BEA89A3A /* slkscr.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = slkscr.ttf; path = "../node_modules/@tamagui/font-silkscreen/files/slkscr.ttf"; sourceTree = ""; };
13B07F961A680F5B00A75B9A /* OpenPassport.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OpenPassport.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -111,6 +197,7 @@
38DEC0D33CBA43429A48B8E3 /* Inter-LightItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-LightItalic.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-LightItalic.otf"; sourceTree = ""; };
449D98322BFA406CBB9E2648 /* Inter-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Bold.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-Bold.otf"; sourceTree = ""; };
453D60E43CC0F08D884424E7 /* Pods-OpenPassport.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OpenPassport.debug.xcconfig"; path = "Target Support Files/Pods-OpenPassport/Pods-OpenPassport.debug.xcconfig"; sourceTree = ""; };
+ 4B084D2A6DF9460DCA9EE4BE /* Pods-OpenPassport App Clip.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OpenPassport App Clip.debug.xcconfig"; path = "Target Support Files/Pods-OpenPassport App Clip/Pods-OpenPassport App Clip.debug.xcconfig"; sourceTree = ""; };
53AEBBB143534D68B7792C46 /* Inter-Medium.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Medium.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-Medium.otf"; sourceTree = ""; };
568162F4DC4B4CDC8B341853 /* Inter-ExtraLight.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-ExtraLight.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-ExtraLight.otf"; sourceTree = ""; };
5686BD657D224A089EAFB825 /* Inter-ExtraBoldItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-ExtraBoldItalic.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-ExtraBoldItalic.otf"; sourceTree = ""; };
@@ -134,12 +221,14 @@
AC752CDC19F5CA03C154E950 /* Pods_OpenPassport_OpenPassportTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_OpenPassport_OpenPassportTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
B3521C927F0DD22505739205 /* Pods_OpenPassport.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_OpenPassport.framework; sourceTree = BUILT_PRODUCTS_DIR; };
B68457923C3F444388AB85F2 /* Inter-Thin.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Thin.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-Thin.otf"; sourceTree = ""; };
+ BAD0889E49DD94940404B318 /* Pods-OpenPassport App Clip.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OpenPassport App Clip.release.xcconfig"; path = "Target Support Files/Pods-OpenPassport App Clip/Pods-OpenPassport App Clip.release.xcconfig"; sourceTree = ""; };
C03CCA67A92F47D59CDA16E5 /* Inter-SemiBoldItalic.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-SemiBoldItalic.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-SemiBoldItalic.otf"; sourceTree = ""; };
D20EA8C94F544E14AB58E6EB /* Inter-ExtraBold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-ExtraBold.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-ExtraBold.otf"; sourceTree = ""; };
DC9D466C01604E7CE1392D92 /* Pods-OpenPassport.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OpenPassport.release.xcconfig"; path = "Target Support Files/Pods-OpenPassport/Pods-OpenPassport.release.xcconfig"; sourceTree = ""; };
DEBCA1D9B9B7ED1BF998F4A1 /* Pods-OpenPassport-OpenPassportTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OpenPassport-OpenPassportTests.debug.xcconfig"; path = "Target Support Files/Pods-OpenPassport-OpenPassportTests/Pods-OpenPassport-OpenPassportTests.debug.xcconfig"; sourceTree = ""; };
DF4EC58B331A46F098343757 /* Inter-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-Regular.otf"; path = "../node_modules/@tamagui/font-inter/otf/Inter-Regular.otf"; sourceTree = ""; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
+ F28D0EC9A537B138EDEDC422 /* Pods_OpenPassport_OpenPassport_App_Clip.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_OpenPassport_OpenPassport_App_Clip.framework; sourceTree = BUILT_PRODUCTS_DIR; };
F59F295E9CC54539B2C48953 /* Luciole-Bold-Italic.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Luciole-Bold-Italic.ttf"; path = "../assets/fonts/Luciole-Bold-Italic.ttf"; sourceTree = ""; };
/* End PBXFileReference section */
@@ -152,6 +241,23 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 054340B12C71B2960014B445 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 05527D5C2C7743010077C942 /* libwitnesscalc_prove_rsa_65537_sha1.a in Frameworks */,
+ 0573C4E92C72E7F6006C7386 /* libwitnesscalc_register_sha256WithRSAEncryption_65537.a in Frameworks */,
+ 0573C4E52C72E7F6006C7386 /* libfr.a in Frameworks */,
+ 0573C4E42C72E7F6006C7386 /* libfq.a in Frameworks */,
+ 0573C4E62C72E7F6006C7386 /* libgmp.a in Frameworks */,
+ 05527D5E2C7743010077C942 /* libwitnesscalc_prove_rsapss_65537_sha256.a in Frameworks */,
+ 0573C4E72C72E7F6006C7386 /* librapidsnark.a in Frameworks */,
+ 0573C4E82C72E7F6006C7386 /* libwitnesscalc_disclose.a in Frameworks */,
+ 926E45294BCCFD19D5CD4AEF /* Pods_OpenPassport_OpenPassport_App_Clip.framework in Frameworks */,
+ 05527D5D2C7743010077C942 /* libwitnesscalc_prove_rsa_65537_sha256.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -172,6 +278,41 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
+ 054340B52C71B2960014B445 /* OpenPassport App Clip */ = {
+ isa = PBXGroup;
+ children = (
+ 054340B62C71B2960014B445 /* AppDelegate.h */,
+ 0573C4ED2C72E857006C7386 /* passport.json */,
+ 054340B72C71B2960014B445 /* AppDelegate.m */,
+ 0573C4D32C72E6D0006C7386 /* LottieView.swift */,
+ 0573C4D22C72E6D0006C7386 /* MRZScannerModule.m */,
+ 0573C4D02C72E6D0006C7386 /* MRZScannerModule.swift */,
+ 0573C4CB2C72E6D0006C7386 /* OpenPassport-Bridging-Header.h */,
+ 0573C4CC2C72E6D0006C7386 /* PassportReader.m */,
+ 0573C4CA2C72E6D0006C7386 /* PassportReader.swift */,
+ 0573C4CF2C72E6D0006C7386 /* Prover.m */,
+ 0573C4EF2C742FA6006C7386 /* masterList.pem */,
+ 0573C4D52C72E6D0006C7386 /* Prover.swift */,
+ 0573C4CD2C72E6D0006C7386 /* QKMRZScannerViewRepresentable.swift */,
+ 0573C4CE2C72E6D0006C7386 /* QRScannerBridge.m */,
+ 0573C4D62C72E6D0006C7386 /* QRScannerBridge.swift */,
+ 0573C4D12C72E6D0006C7386 /* QRScannerViewController.swift */,
+ 0573C4D42C72E6D0006C7386 /* ScannerHostingController.swift */,
+ 054340B92C71B2960014B445 /* SceneDelegate.h */,
+ 054340BA2C71B2960014B445 /* SceneDelegate.m */,
+ 054340BC2C71B2960014B445 /* ViewController.h */,
+ 054340BD2C71B2960014B445 /* ViewController.m */,
+ 054340BF2C71B2960014B445 /* Main.storyboard */,
+ 054340C52C71B2980014B445 /* Assets.xcassets */,
+ 054340C72C71B2980014B445 /* LaunchScreen.storyboard */,
+ 054340CA2C71B2980014B445 /* Info.plist */,
+ 054340CB2C71B2980014B445 /* main.m */,
+ 054340CD2C71B2980014B445 /* OpenPassport_App_Clip.entitlements */,
+ 054340C22C71B2960014B445 /* OpenPassport_App_Clip.xcdatamodeld */,
+ );
+ path = "OpenPassport App Clip";
+ sourceTree = "";
+ };
13B07FAE1A68108700A75B9A /* OpenPassport */ = {
isa = PBXGroup;
children = (
@@ -207,6 +348,7 @@
2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
isa = PBXGroup;
children = (
+ 0573C4EA2C72E7F6006C7386 /* groth16_prover.h */,
0573C4F12C7545F6006C7386 /* libwitnesscalc_prove_rsa_65537_sha1.a */,
0573C4F32C7545F7006C7386 /* libwitnesscalc_prove_rsa_65537_sha256.a */,
0573C4F22C7545F7006C7386 /* libwitnesscalc_prove_rsapss_65537_sha256.a */,
@@ -217,6 +359,7 @@
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
B3521C927F0DD22505739205 /* Pods_OpenPassport.framework */,
AC752CDC19F5CA03C154E950 /* Pods_OpenPassport_OpenPassportTests.framework */,
+ F28D0EC9A537B138EDEDC422 /* Pods_OpenPassport_OpenPassport_App_Clip.framework */,
);
name = Frameworks;
sourceTree = "";
@@ -265,6 +408,7 @@
children = (
13B07FAE1A68108700A75B9A /* OpenPassport */,
832341AE1AAA6A7D00B99B32 /* Libraries */,
+ 054340B52C71B2960014B445 /* OpenPassport App Clip */,
83CBBA001A601CBA00E9B192 /* Products */,
2D16E6871FA4F8E400B85C8A /* Frameworks */,
BBD78D7AC51CEA395F1C20DB /* Pods */,
@@ -280,6 +424,7 @@
children = (
13B07F961A680F5B00A75B9A /* OpenPassport.app */,
00E356EE1AD99517003FC87E /* OpenPassportTests.xctest */,
+ 054340B42C71B2960014B445 /* OpenPassport App Clip.app */,
);
name = Products;
sourceTree = "";
@@ -291,6 +436,10 @@
DC9D466C01604E7CE1392D92 /* Pods-OpenPassport.release.xcconfig */,
DEBCA1D9B9B7ED1BF998F4A1 /* Pods-OpenPassport-OpenPassportTests.debug.xcconfig */,
8A94FF2ACC255C722460867D /* Pods-OpenPassport-OpenPassportTests.release.xcconfig */,
+ 4B084D2A6DF9460DCA9EE4BE /* Pods-OpenPassport App Clip.debug.xcconfig */,
+ BAD0889E49DD94940404B318 /* Pods-OpenPassport App Clip.release.xcconfig */,
+ 0B18C6F4404CC83576C2F36A /* Pods-OpenPassport-OpenPassport App Clip.debug.xcconfig */,
+ 03D7F2F0EF44EF6300A9E4CD /* Pods-OpenPassport-OpenPassport App Clip.release.xcconfig */,
);
path = Pods;
sourceTree = "";
@@ -318,6 +467,27 @@
productReference = 00E356EE1AD99517003FC87E /* OpenPassportTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
+ 054340B32C71B2960014B445 /* OpenPassport App Clip */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 054340D42C71B2980014B445 /* Build configuration list for PBXNativeTarget "OpenPassport App Clip" */;
+ buildPhases = (
+ C58A18F469AD91A0B2CC5615 /* [CP] Check Pods Manifest.lock */,
+ 054340B02C71B2960014B445 /* Sources */,
+ 054340B12C71B2960014B445 /* Frameworks */,
+ 054340B22C71B2960014B445 /* Resources */,
+ 054340D52C72904B0014B445 /* Start Packager */,
+ 054340D62C7290C50014B445 /* Bundle React Native code and images */,
+ BD911A31EA0C67D2934076B6 /* [CP] Embed Pods Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = "OpenPassport App Clip";
+ productName = "OpenPassport App Clip";
+ productReference = 054340B42C71B2960014B445 /* OpenPassport App Clip.app */;
+ productType = "com.apple.product-type.application.on-demand-install-capable";
+ };
13B07F861A680F5B00A75B9A /* OpenPassport */ = {
isa = PBXNativeTarget;
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "OpenPassport" */;
@@ -329,10 +499,12 @@
13B07F8E1A680F5B00A75B9A /* Resources */,
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
DF7986E9DBA454E2407E80A3 /* [CP] Embed Pods Frameworks */,
+ 054340D12C71B2980014B445 /* Embed App Clips */,
);
buildRules = (
);
dependencies = (
+ 054340CF2C71B2980014B445 /* PBXTargetDependency */,
);
name = OpenPassport;
productName = OpenPassport;
@@ -351,6 +523,10 @@
CreatedOnToolsVersion = 6.2;
TestTargetID = 13B07F861A680F5B00A75B9A;
};
+ 054340B32C71B2960014B445 = {
+ CreatedOnToolsVersion = 15.2;
+ LastSwiftMigration = 1520;
+ };
13B07F861A680F5B00A75B9A = {
LastSwiftMigration = 1430;
};
@@ -371,6 +547,7 @@
targets = (
13B07F861A680F5B00A75B9A /* OpenPassport */,
00E356ED1AD99517003FC87E /* OpenPassportTests */,
+ 054340B32C71B2960014B445 /* OpenPassport App Clip */,
);
};
/* End PBXProject section */
@@ -383,6 +560,18 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 054340B22C71B2960014B445 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 054340C92C71B2980014B445 /* LaunchScreen.storyboard in Resources */,
+ 0573C4F02C742FA6006C7386 /* masterList.pem in Resources */,
+ 0573C4EE2C72E857006C7386 /* passport.json in Resources */,
+ 054340C62C71B2980014B445 /* Assets.xcassets in Resources */,
+ 054340C12C71B2960014B445 /* Main.storyboard in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
13B07F8E1A680F5B00A75B9A /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
@@ -439,6 +628,44 @@
shellPath = /bin/sh;
shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
};
+ 054340D52C72904B0014B445 /* Start Packager */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ );
+ name = "Start Packager";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "# Type a script or drag a script file from your workspace to insert its path.\nexport RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n echo \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\"\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n";
+ };
+ 054340D62C7290C50014B445 /* Bundle React Native code and images */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "$(SRCROOT)/.xcode.env.local",
+ "$(SRCROOT)/.xcode.env",
+ );
+ name = "Bundle React Native code and images";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "# Type a script or drag a script file from your workspace to insert its path.\nset -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE index.clip.js\"\n";
+ };
095376EF00B07A916686CBD0 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -483,6 +710,45 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
+ BD911A31EA0C67D2934076B6 /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-OpenPassport-OpenPassport App Clip/Pods-OpenPassport-OpenPassport App Clip-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-OpenPassport-OpenPassport App Clip/Pods-OpenPassport-OpenPassport App Clip-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-OpenPassport-OpenPassport App Clip/Pods-OpenPassport-OpenPassport App Clip-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
+ C58A18F469AD91A0B2CC5615 /* [CP] Check Pods Manifest.lock */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-OpenPassport-OpenPassport App Clip-checkManifestLockResult.txt",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ showEnvVarsInLog = 0;
+ };
DF7986E9DBA454E2407E80A3 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -546,6 +812,30 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ 054340B02C71B2960014B445 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 054340CC2C71B2980014B445 /* main.m in Sources */,
+ 054340BE2C71B2960014B445 /* ViewController.m in Sources */,
+ 0573C4DE2C72E6D0006C7386 /* MRZScannerModule.m in Sources */,
+ 0573C4D72C72E6D0006C7386 /* PassportReader.swift in Sources */,
+ 0573C4D82C72E6D0006C7386 /* PassportReader.m in Sources */,
+ 0573C4E12C72E6D0006C7386 /* Prover.swift in Sources */,
+ 0573C4DA2C72E6D0006C7386 /* QRScannerBridge.m in Sources */,
+ 0573C4D92C72E6D0006C7386 /* QKMRZScannerViewRepresentable.swift in Sources */,
+ 054340B82C71B2960014B445 /* AppDelegate.m in Sources */,
+ 054340BB2C71B2960014B445 /* SceneDelegate.m in Sources */,
+ 0573C4DD2C72E6D0006C7386 /* QRScannerViewController.swift in Sources */,
+ 054340C42C71B2960014B445 /* OpenPassport_App_Clip.xcdatamodeld in Sources */,
+ 0573C4DF2C72E6D0006C7386 /* LottieView.swift in Sources */,
+ 0573C4E02C72E6D0006C7386 /* ScannerHostingController.swift in Sources */,
+ 0573C4E22C72E6D0006C7386 /* QRScannerBridge.swift in Sources */,
+ 0573C4DB2C72E6D0006C7386 /* Prover.m in Sources */,
+ 0573C4DC2C72E6D0006C7386 /* MRZScannerModule.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
13B07F871A680F5B00A75B9A /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -575,8 +865,32 @@
target = 13B07F861A680F5B00A75B9A /* OpenPassport */;
targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
};
+ 054340CF2C71B2980014B445 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = 054340B32C71B2960014B445 /* OpenPassport App Clip */;
+ targetProxy = 054340CE2C71B2980014B445 /* PBXContainerItemProxy */;
+ };
/* End PBXTargetDependency section */
+/* Begin PBXVariantGroup section */
+ 054340BF2C71B2960014B445 /* Main.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 054340C02C71B2960014B445 /* Base */,
+ );
+ name = Main.storyboard;
+ sourceTree = "";
+ };
+ 054340C72C71B2980014B445 /* LaunchScreen.storyboard */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 054340C82C71B2980014B445 /* Base */,
+ );
+ name = LaunchScreen.storyboard;
+ sourceTree = "";
+ };
+/* End PBXVariantGroup section */
+
/* Begin XCBuildConfiguration section */
00E356F61AD99517003FC87E /* Debug */ = {
isa = XCBuildConfiguration;
@@ -631,10 +945,121 @@
};
name = Release;
};
+ 054340D22C71B2980014B445 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 0B18C6F4404CC83576C2F36A /* Pods-OpenPassport-OpenPassport App Clip.debug.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CODE_SIGN_ENTITLEMENTS = "OpenPassport App Clip/OpenPassport_App_Clip.entitlements";
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 53;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ DEVELOPMENT_TEAM = 5B29R5LYHQ;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu17;
+ GENERATE_INFOPLIST_FILE = YES;
+ INFOPLIST_FILE = "OpenPassport App Clip/Info.plist";
+ INFOPLIST_KEY_CFBundleDisplayName = OpenPassport;
+ INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
+ INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
+ INFOPLIST_KEY_UIMainStoryboardFile = Main;
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ IPHONEOS_DEPLOYMENT_TARGET = 17.2;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ LIBRARY_SEARCH_PATHS = (
+ "$(SDKROOT)/usr/lib/swift",
+ "$(inherited)",
+ "$(PROJECT_DIR)",
+ );
+ LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+ MARKETING_VERSION = 1.5;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = com.warroom.proofofpassport.Clip;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
+ SUPPORTS_MACCATALYST = NO;
+ SWIFT_EMIT_LOC_STRINGS = YES;
+ SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/OpenPassport-Bridging-Header.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = 1;
+ };
+ name = Debug;
+ };
+ 054340D32C71B2980014B445 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = 03D7F2F0EF44EF6300A9E4CD /* Pods-OpenPassport-OpenPassport App Clip.release.xcconfig */;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CODE_SIGN_ENTITLEMENTS = "OpenPassport App Clip/OpenPassport_App_Clip.entitlements";
+ CODE_SIGN_STYLE = Automatic;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 53;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEVELOPMENT_TEAM = 5B29R5LYHQ;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu17;
+ GENERATE_INFOPLIST_FILE = YES;
+ INFOPLIST_FILE = "OpenPassport App Clip/Info.plist";
+ INFOPLIST_KEY_CFBundleDisplayName = OpenPassport;
+ INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
+ INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
+ INFOPLIST_KEY_UIMainStoryboardFile = Main;
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ IPHONEOS_DEPLOYMENT_TARGET = 17.2;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ LIBRARY_SEARCH_PATHS = (
+ "$(SDKROOT)/usr/lib/swift",
+ "$(inherited)",
+ "$(PROJECT_DIR)",
+ );
+ LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+ MARKETING_VERSION = 1.5;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = com.warroom.proofofpassport.Clip;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
+ SUPPORTS_MACCATALYST = NO;
+ SWIFT_EMIT_LOC_STRINGS = YES;
+ SWIFT_OBJC_BRIDGING_HEADER = "$(PROJECT_DIR)/OpenPassport-Bridging-Header.h";
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = 1;
+ };
+ name = Release;
+ };
13B07F941A680F5B00A75B9A /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 453D60E43CC0F08D884424E7 /* Pods-OpenPassport.debug.xcconfig */;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = OpenPassport/OpenPassport.entitlements;
@@ -740,8 +1165,9 @@
"$(PROJECT_DIR)",
);
INFOPLIST_FILE = OpenPassport/Info.plist;
+ INFOPLIST_KEY_CFBundleDisplayName = OpenPassport;
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Needed only if you want to upload QRcodes";
- IPHONEOS_DEPLOYMENT_TARGET = 15.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 17.2;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -773,6 +1199,7 @@
isa = XCBuildConfiguration;
baseConfigurationReference = DC9D466C01604E7CE1392D92 /* Pods-OpenPassport.release.xcconfig */;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = OpenPassport/OpenPassport.entitlements;
@@ -875,9 +1302,10 @@
"$(PROJECT_DIR)",
);
INFOPLIST_FILE = OpenPassport/Info.plist;
+ INFOPLIST_KEY_CFBundleDisplayName = OpenPassport;
INFOPLIST_KEY_NSDocumentsFolderUsageDescription = "";
INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Needed only if you want to upload QRcodes";
- IPHONEOS_DEPLOYMENT_TARGET = 15.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 17.2;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -1071,6 +1499,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ 054340D42C71B2980014B445 /* Build configuration list for PBXNativeTarget "OpenPassport App Clip" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 054340D22C71B2980014B445 /* Debug */,
+ 054340D32C71B2980014B445 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "OpenPassport" */ = {
isa = XCConfigurationList;
buildConfigurations = (
@@ -1090,6 +1527,19 @@
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
+
+/* Begin XCVersionGroup section */
+ 054340C22C71B2960014B445 /* OpenPassport_App_Clip.xcdatamodeld */ = {
+ isa = XCVersionGroup;
+ children = (
+ 054340C32C71B2960014B445 /* OpenPassport_App_Clip.xcdatamodel */,
+ );
+ currentVersion = 054340C32C71B2960014B445 /* OpenPassport_App_Clip.xcdatamodel */;
+ path = OpenPassport_App_Clip.xcdatamodeld;
+ sourceTree = "";
+ versionGroupType = wrapper.xcdatamodel;
+ };
+/* End XCVersionGroup section */
};
rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
}
diff --git a/app/ios/Podfile b/app/ios/Podfile
index bc2250be6..2c7ae06e1 100644
--- a/app/ios/Podfile
+++ b/app/ios/Podfile
@@ -63,6 +63,11 @@ target 'OpenPassport' do
# Pods for testing
end
+ target 'OpenPassport App Clip' do
+ inherit! :search_paths
+ inherit! :complete
+ end
+
post_install do |installer|
installer.generated_projects.each do |project|
project.targets.each do |target|
diff --git a/app/ios/Podfile.lock b/app/ios/Podfile.lock
index 69097a565..ff92168fd 100644
--- a/app/ios/Podfile.lock
+++ b/app/ios/Podfile.lock
@@ -669,6 +669,6 @@ SPEC CHECKSUMS:
SwiftyTesseract: 1f3d96668ae92dc2208d9842c8a59bea9fad2cbb
Yoga: 8796b55dba14d7004f980b54bcc9833ee45b28ce
-PODFILE CHECKSUM: 0b4a2364bb270ea925376c675c6c8b3aa019d655
+PODFILE CHECKSUM: 7b509982ef9137a67eabe590749f46e630e5c88f
COCOAPODS: 1.15.2
diff --git a/app/scripts/build_ios_module.sh b/app/scripts/build_ios_module.sh
index af2d24ad0..7bfcdf7a0 100755
--- a/app/scripts/build_ios_module.sh
+++ b/app/scripts/build_ios_module.sh
@@ -25,8 +25,12 @@ cd ../..
# Copy artifacts for each circuit
for circuit in "${CIRCUITS[@]}"; do
cp witnesscalc/build_witnesscalc_ios/src/Release-iphoneos/libwitnesscalc_${circuit}.a ios
+
mkdir -p ios/OpenPassport/Assets.xcassets/${circuit}.dat.dataset
+ mkdir -p ios/OpenPassport App Clip/Assets.xcassets/${circuit}.dat.dataset
+
cp witnesscalc/src/${circuit}.dat ios/OpenPassport/Assets.xcassets/${circuit}.dat.dataset/${circuit}.dat
+ cp witnesscalc/src/${circuit}.dat ios/OpenPassport App Clip/Assets.xcassets/${circuit}.dat.dataset/${circuit}.dat
cp witnesscalc/src/witnesscalc_${circuit}.h ios
done
diff --git a/app/src/utils/zkeyDownload.ts b/app/src/utils/zkeyDownload.ts
index c70e5574c..2de9544fc 100644
--- a/app/src/utils/zkeyDownload.ts
+++ b/app/src/utils/zkeyDownload.ts
@@ -131,7 +131,7 @@ export async function fetchZkey(
const options = {
fromUrl: zkeyZipUrls[circuit],
toFile: `${RNFS.DocumentDirectoryPath}/${circuit}.zkey.zip`,
- background: true,
+ background: false,
begin: () => {
console.log('Download has begun');
},