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'); },