From da286fb7478a7cd42c9b4fbc3cb4906c29fa81e1 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Thu, 7 Nov 2024 17:19:11 -0500 Subject: [PATCH] Add ios build directory --- ios/.gitignore | 30 + ios/.xcode.env | 11 + ios/Jellyfin.xcodeproj/project.pbxproj | 489 ++++++++++++++ .../xcshareddata/xcschemes/Jellyfin.xcscheme | 88 +++ .../contents.xcworkspacedata | 10 + ios/Jellyfin/AppDelegate.h | 9 + ios/Jellyfin/AppDelegate.mm | 166 +++++ .../AppIcon.appiconset/App-Icon-20x20@1x.png | Bin 0 -> 687 bytes .../AppIcon.appiconset/App-Icon-20x20@2x.png | Bin 0 -> 1573 bytes .../AppIcon.appiconset/App-Icon-20x20@3x.png | Bin 0 -> 2495 bytes .../AppIcon.appiconset/App-Icon-29x29@1x.png | Bin 0 -> 1046 bytes .../AppIcon.appiconset/App-Icon-29x29@2x.png | Bin 0 -> 2448 bytes .../AppIcon.appiconset/App-Icon-29x29@3x.png | Bin 0 -> 4208 bytes .../AppIcon.appiconset/App-Icon-40x40@1x.png | Bin 0 -> 1573 bytes .../AppIcon.appiconset/App-Icon-40x40@2x.png | Bin 0 -> 3789 bytes .../AppIcon.appiconset/App-Icon-40x40@3x.png | Bin 0 -> 6276 bytes .../AppIcon.appiconset/App-Icon-60x60@2x.png | Bin 0 -> 6276 bytes .../AppIcon.appiconset/App-Icon-60x60@3x.png | Bin 0 -> 11151 bytes .../AppIcon.appiconset/App-Icon-76x76@1x.png | Bin 0 -> 3476 bytes .../AppIcon.appiconset/App-Icon-76x76@2x.png | Bin 0 -> 8915 bytes .../App-Icon-83.5x83.5@2x.png | Bin 0 -> 10187 bytes .../AppIcon.appiconset/Contents.json | 122 ++++ .../AppIcon.appiconset/ItunesArtwork@2x.png | Bin 0 -> 109055 bytes ios/Jellyfin/Images.xcassets/Contents.json | 6 + .../SplashScreen.imageset/Contents.json | 21 + .../SplashScreen.imageset/image.png | Bin 0 -> 54588 bytes .../Contents.json | 21 + .../SplashScreenBackground.imageset/image.png | Bin 0 -> 70 bytes ios/Jellyfin/Info.plist | 86 +++ ios/Jellyfin/Jellyfin.entitlements | 8 + ios/Jellyfin/SplashScreen.storyboard | 51 ++ ios/Jellyfin/Supporting/Expo.plist | 16 + ios/Jellyfin/main.m | 10 + ios/Jellyfin/noop-file.swift | 4 + ios/Podfile | 59 ++ ios/Podfile.lock | 637 ++++++++++++++++++ ios/Podfile.properties.json | 3 + 37 files changed, 1847 insertions(+) create mode 100644 ios/.gitignore create mode 100644 ios/.xcode.env create mode 100644 ios/Jellyfin.xcodeproj/project.pbxproj create mode 100644 ios/Jellyfin.xcodeproj/xcshareddata/xcschemes/Jellyfin.xcscheme create mode 100644 ios/Jellyfin.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Jellyfin/AppDelegate.h create mode 100644 ios/Jellyfin/AppDelegate.mm create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Jellyfin/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png create mode 100644 ios/Jellyfin/Images.xcassets/Contents.json create mode 100644 ios/Jellyfin/Images.xcassets/SplashScreen.imageset/Contents.json create mode 100644 ios/Jellyfin/Images.xcassets/SplashScreen.imageset/image.png create mode 100644 ios/Jellyfin/Images.xcassets/SplashScreenBackground.imageset/Contents.json create mode 100644 ios/Jellyfin/Images.xcassets/SplashScreenBackground.imageset/image.png create mode 100644 ios/Jellyfin/Info.plist create mode 100644 ios/Jellyfin/Jellyfin.entitlements create mode 100644 ios/Jellyfin/SplashScreen.storyboard create mode 100644 ios/Jellyfin/Supporting/Expo.plist create mode 100644 ios/Jellyfin/main.m create mode 100644 ios/Jellyfin/noop-file.swift create mode 100644 ios/Podfile create mode 100644 ios/Podfile.lock create mode 100644 ios/Podfile.properties.json diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100644 index 000000000..8beb34430 --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,30 @@ +# OSX +# +.DS_Store + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace +.xcode.env.local + +# Bundle artifacts +*.jsbundle + +# CocoaPods +/Pods/ diff --git a/ios/.xcode.env b/ios/.xcode.env new file mode 100644 index 000000000..3d5782c71 --- /dev/null +++ b/ios/.xcode.env @@ -0,0 +1,11 @@ +# This `.xcode.env` file is versioned and is used to source the environment +# used when running script phases inside Xcode. +# To customize your local environment, you can create an `.xcode.env.local` +# file that is not versioned. + +# NODE_BINARY variable contains the PATH to the node executable. +# +# Customize the NODE_BINARY variable here. +# For example, to use nvm with brew, add the following line +# . "$(brew --prefix nvm)/nvm.sh" --no-use +export NODE_BINARY=$(command -v node) diff --git a/ios/Jellyfin.xcodeproj/project.pbxproj b/ios/Jellyfin.xcodeproj/project.pbxproj new file mode 100644 index 000000000..8d26dc85d --- /dev/null +++ b/ios/Jellyfin.xcodeproj/project.pbxproj @@ -0,0 +1,489 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; + 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; + 2C12A4B19C954DC0A8B0A1A1 /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B2CFF3463DF4D8CB087A118 /* noop-file.swift */; }; + 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; + 96905EF65AED1B983A6B3ABC /* libPods-Jellyfin.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-Jellyfin.a */; }; + B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; }; + BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; + 13B07F961A680F5B00A75B9A /* Jellyfin.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Jellyfin.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = Jellyfin/AppDelegate.h; sourceTree = ""; }; + 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = Jellyfin/AppDelegate.mm; sourceTree = ""; }; + 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Jellyfin/Images.xcassets; sourceTree = ""; }; + 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Jellyfin/Info.plist; sourceTree = ""; }; + 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Jellyfin/main.m; sourceTree = ""; }; + 4B2CFF3463DF4D8CB087A118 /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "Jellyfin/noop-file.swift"; sourceTree = ""; }; + 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-Jellyfin.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Jellyfin.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6C2E3173556A471DD304B334 /* Pods-Jellyfin.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Jellyfin.debug.xcconfig"; path = "Target Support Files/Pods-Jellyfin/Pods-Jellyfin.debug.xcconfig"; sourceTree = ""; }; + 7A4D352CD337FB3A3BF06240 /* Pods-Jellyfin.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Jellyfin.release.xcconfig"; path = "Target Support Files/Pods-Jellyfin/Pods-Jellyfin.release.xcconfig"; sourceTree = ""; }; + AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = Jellyfin/SplashScreen.storyboard; sourceTree = ""; }; + BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; }; + ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; + FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-Jellyfin/ExpoModulesProvider.swift"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 96905EF65AED1B983A6B3ABC /* libPods-Jellyfin.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 13B07FAE1A68108700A75B9A /* Jellyfin */ = { + isa = PBXGroup; + children = ( + BB2F792B24A3F905000567C9 /* Supporting */, + 008F07F21AC5B25A0029DE68 /* main.jsbundle */, + 13B07FAF1A68108700A75B9A /* AppDelegate.h */, + 13B07FB01A68108700A75B9A /* AppDelegate.mm */, + 13B07FB51A68108700A75B9A /* Images.xcassets */, + 13B07FB61A68108700A75B9A /* Info.plist */, + 13B07FB71A68108700A75B9A /* main.m */, + AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */, + 4B2CFF3463DF4D8CB087A118 /* noop-file.swift */, + ); + name = Jellyfin; + sourceTree = ""; + }; + 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { + isa = PBXGroup; + children = ( + ED297162215061F000B7C4FE /* JavaScriptCore.framework */, + 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-Jellyfin.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 832341AE1AAA6A7D00B99B32 /* Libraries */ = { + isa = PBXGroup; + children = ( + ); + name = Libraries; + sourceTree = ""; + }; + 83CBB9F61A601CBA00E9B192 = { + isa = PBXGroup; + children = ( + 13B07FAE1A68108700A75B9A /* Jellyfin */, + 832341AE1AAA6A7D00B99B32 /* Libraries */, + 83CBBA001A601CBA00E9B192 /* Products */, + 2D16E6871FA4F8E400B85C8A /* Frameworks */, + D65327D7A22EEC0BE12398D9 /* Pods */, + D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + usesTabs = 0; + }; + 83CBBA001A601CBA00E9B192 /* Products */ = { + isa = PBXGroup; + children = ( + 13B07F961A680F5B00A75B9A /* Jellyfin.app */, + ); + name = Products; + sourceTree = ""; + }; + 92DBD88DE9BF7D494EA9DA96 /* Jellyfin */ = { + isa = PBXGroup; + children = ( + FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */, + ); + name = Jellyfin; + sourceTree = ""; + }; + BB2F792B24A3F905000567C9 /* Supporting */ = { + isa = PBXGroup; + children = ( + BB2F792C24A3F905000567C9 /* Expo.plist */, + ); + name = Supporting; + path = Jellyfin/Supporting; + sourceTree = ""; + }; + D65327D7A22EEC0BE12398D9 /* Pods */ = { + isa = PBXGroup; + children = ( + 6C2E3173556A471DD304B334 /* Pods-Jellyfin.debug.xcconfig */, + 7A4D352CD337FB3A3BF06240 /* Pods-Jellyfin.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */ = { + isa = PBXGroup; + children = ( + 92DBD88DE9BF7D494EA9DA96 /* Jellyfin */, + ); + name = ExpoModulesProviders; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 13B07F861A680F5B00A75B9A /* Jellyfin */ = { + isa = PBXNativeTarget; + buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Jellyfin" */; + buildPhases = ( + 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */, + FD10A7F022414F080027D42C /* Start Packager */, + 13B07F871A680F5B00A75B9A /* Sources */, + 13B07F8C1A680F5B00A75B9A /* Frameworks */, + 13B07F8E1A680F5B00A75B9A /* Resources */, + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, + 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Jellyfin; + productName = Jellyfin; + productReference = 13B07F961A680F5B00A75B9A /* Jellyfin.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 83CBB9F71A601CBA00E9B192 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1130; + TargetAttributes = { + 13B07F861A680F5B00A75B9A = { + LastSwiftMigration = 1250; + }; + }; + }; + buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Jellyfin" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 83CBB9F61A601CBA00E9B192; + productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 13B07F861A680F5B00A75B9A /* Jellyfin */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 13B07F8E1A680F5B00A75B9A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BB2F792D24A3F905000567C9 /* Expo.plist in Resources */, + 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, + 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Bundle React Native code and images"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n"; + }; + 08A4A3CD28434E44B6B9DE2E /* [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-Jellyfin-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; + }; + 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Jellyfin/Pods-Jellyfin-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Jellyfin/Pods-Jellyfin-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + FD10A7F022414F080027D42C /* Start Packager */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Start Packager"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\nexport RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/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 open `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/launchPackager.command'\"` || echo \"Can't start packager automatically\"\n fi\nfi\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 13B07F871A680F5B00A75B9A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, + 13B07FC11A68108700A75B9A /* main.m in Sources */, + B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */, + 2C12A4B19C954DC0A8B0A1A1 /* noop-file.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 13B07F941A680F5B00A75B9A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6C2E3173556A471DD304B334 /* Pods-Jellyfin.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Jellyfin/Jellyfin.entitlements; + CURRENT_PROJECT_VERSION = 1; + ENABLE_BITCODE = NO; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "FB_SONARKIT_ENABLED=1", + ); + INFOPLIST_FILE = Jellyfin/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; + PRODUCT_BUNDLE_IDENTIFIER = org.jellyfin.expo; + PRODUCT_NAME = Jellyfin; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 13B07F951A680F5B00A75B9A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7A4D352CD337FB3A3BF06240 /* Pods-Jellyfin.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Jellyfin/Jellyfin.entitlements; + CURRENT_PROJECT_VERSION = 1; + INFOPLIST_FILE = Jellyfin/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-lc++", + ); + OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; + PRODUCT_BUNDLE_IDENTIFIER = org.jellyfin.expo; + PRODUCT_NAME = Jellyfin; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; + 83CBBA201A601CBA00E9B192 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; + LIBRARY_SEARCH_PATHS = "\"$(inherited)\""; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 83CBBA211A601CBA00E9B192 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.4; + LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; + LIBRARY_SEARCH_PATHS = "\"$(inherited)\""; + MTL_ENABLE_DEBUG_INFO = NO; + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Jellyfin" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 13B07F941A680F5B00A75B9A /* Debug */, + 13B07F951A680F5B00A75B9A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "Jellyfin" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 83CBBA201A601CBA00E9B192 /* Debug */, + 83CBBA211A601CBA00E9B192 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; +} diff --git a/ios/Jellyfin.xcodeproj/xcshareddata/xcschemes/Jellyfin.xcscheme b/ios/Jellyfin.xcodeproj/xcshareddata/xcschemes/Jellyfin.xcscheme new file mode 100644 index 000000000..b50422692 --- /dev/null +++ b/ios/Jellyfin.xcodeproj/xcshareddata/xcschemes/Jellyfin.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Jellyfin.xcworkspace/contents.xcworkspacedata b/ios/Jellyfin.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..b29de61ef --- /dev/null +++ b/ios/Jellyfin.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/ios/Jellyfin/AppDelegate.h b/ios/Jellyfin/AppDelegate.h new file mode 100644 index 000000000..f7d297204 --- /dev/null +++ b/ios/Jellyfin/AppDelegate.h @@ -0,0 +1,9 @@ +#import +#import +#import + +#import + +@interface AppDelegate : EXAppDelegateWrapper + +@end diff --git a/ios/Jellyfin/AppDelegate.mm b/ios/Jellyfin/AppDelegate.mm new file mode 100644 index 000000000..a6e13e11a --- /dev/null +++ b/ios/Jellyfin/AppDelegate.mm @@ -0,0 +1,166 @@ +#import "AppDelegate.h" + +#import +#import +#import +#import +#import + +#import + +#if RCT_NEW_ARCH_ENABLED +#import +#import +#import +#import +#import +#import + +#import + +static NSString *const kRNConcurrentRoot = @"concurrentRoot"; + +@interface AppDelegate () { + RCTTurboModuleManager *_turboModuleManager; + RCTSurfacePresenterBridgeAdapter *_bridgeAdapter; + std::shared_ptr _reactNativeConfig; + facebook::react::ContextContainer::Shared _contextContainer; +} +@end +#endif + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + RCTAppSetupPrepareApp(application); + + RCTBridge *bridge = [self.reactDelegate createBridgeWithDelegate:self launchOptions:launchOptions]; + +#if RCT_NEW_ARCH_ENABLED + _contextContainer = std::make_shared(); + _reactNativeConfig = std::make_shared(); + _contextContainer->insert("ReactNativeConfig", _reactNativeConfig); + _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer]; + bridge.surfacePresenter = _bridgeAdapter.surfacePresenter; +#endif + + NSDictionary *initProps = [self prepareInitialProps]; + UIView *rootView = [self.reactDelegate createRootViewWithBridge:bridge moduleName:@"main" initialProperties:initProps]; + + rootView.backgroundColor = [UIColor whiteColor]; + self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; + UIViewController *rootViewController = [self.reactDelegate createRootViewController]; + rootViewController.view = rootView; + self.window.rootViewController = rootViewController; + [self.window makeKeyAndVisible]; + + [super application:application didFinishLaunchingWithOptions:launchOptions]; + + return YES; +} + +- (NSArray> *)extraModulesForBridge:(RCTBridge *)bridge +{ + // If you'd like to export some custom RCTBridgeModules, add them here! + return @[]; +} + +/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off. +/// +/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html +/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture). +/// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`. +- (BOOL)concurrentRootEnabled +{ + // Switch this bool to turn on and off the concurrent root + return true; +} + +- (NSDictionary *)prepareInitialProps +{ + NSMutableDictionary *initProps = [NSMutableDictionary new]; +#if RCT_NEW_ARCH_ENABLED + initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]); +#endif + return initProps; +} + +- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge +{ +#if DEBUG + return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; +#else + return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; +#endif +} + +// Linking API +- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options { + return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options]; +} + +// Universal Links +- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray> * _Nullable))restorationHandler { + BOOL result = [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler]; + return [super application:application continueUserActivity:userActivity restorationHandler:restorationHandler] || result; +} + +// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries +- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken +{ + return [super application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; +} + +// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries +- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error +{ + return [super application:application didFailToRegisterForRemoteNotificationsWithError:error]; +} + +// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries +- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler +{ + return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler]; +} + +#if RCT_NEW_ARCH_ENABLED + +#pragma mark - RCTCxxBridgeDelegate + +- (std::unique_ptr)jsExecutorFactoryForBridge:(RCTBridge *)bridge +{ + _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge + delegate:self + jsInvoker:bridge.jsCallInvoker]; + return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager); +} + +#pragma mark RCTTurboModuleManagerDelegate + +- (Class)getModuleClassFromName:(const char *)name +{ + return RCTCoreModulesClassProvider(name); +} + +- (std::shared_ptr)getTurboModule:(const std::string &)name + jsInvoker:(std::shared_ptr)jsInvoker +{ + return nullptr; +} + +- (std::shared_ptr)getTurboModule:(const std::string &)name + initParams: + (const facebook::react::ObjCTurboModule::InitParams &)params +{ + return nullptr; +} + +- (id)getModuleInstanceFromClass:(Class)moduleClass +{ + return RCTAppSetupDefaultModuleFromClass(moduleClass); +} + +#endif + +@end diff --git a/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png b/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..2bf62da8e276553d068ca312e9d8c4a817397a8b GIT binary patch literal 687 zcmV;g0#N;lP)A|A57h!TbZt_Z>J{pT?vmc-Zrr`8Qa-tsgH!}BZeqrj}oLoPqPv8-qhPovy&A`H8Jm+YcramdEJMy#84Pf7|9XS?yE6$_2)_P6H$>ZyUM_V0-n0wSR;=8O6(|Fiijyc~#CTyW~+AIo8+} z@YYhwbX`p)<8tz^p{s;(La<(H?Nb=heSR9KK^})Z$!b>^Q78#Fch?>5O))c}rIMy1 zb5s!p)#;LXPUc9O5rq=d;Y1AoG4Ngh2{{qZB&b!Ol2f(vS&r(0s7nsR?ob6GXJJ`J zWi2DGEoWXmGZto%M<6w!1QA7-O{!ov5u8OQPz_DZ$!c;_Pi+GxiV#Rm*e{9$_y;w} V=J&zTS+M{B002ovPDHLkV1mS%HlzRm literal 0 HcmV?d00001 diff --git a/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png b/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..deca6658e98d7825d8dd994bc76fc7cce5de322c GIT binary patch literal 1573 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 ZE_EZnASL)94|tf#xnA%%Uk45T<=@I|z6JmQ literal 0 HcmV?d00001 diff --git a/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png b/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..294e97b5cd93fb7f2f4b340c7fa744f7c1cdd970 GIT binary patch literal 1046 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 literal 0 HcmV?d00001 diff --git a/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png b/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..deca6658e98d7825d8dd994bc76fc7cce5de322c GIT binary patch literal 1573 zcmV+=2HN?FP)C($fExb}ge)0vp)cRmV1$29RVi(fD9KB1W_Lz{Dp$ zH}Q!vF)`tR@z4AdH{*QZrZQkoAOdAD{wOWbtrJEIZP&Z@?tb6T?`LvJO`CG%>XUoD z2(Js3AgB;Qg$OD{P$4${FOE3F9m4@|`qn9{Fnd4cLQ$huyWqon< znBzoH9t&;?W%z2}%l!>Ijlc+(!orVE{NRJ>@&7!Wx^?$jPv`#7c8tJ|#py(*KYSl$ z5R{=a+4fw=s1iyl@$+-X@61l3XnJPykMI6e2^AV)&%pDkC)!a4!Q%+!m0e#8MU+&* z>B*B9rp{rN8%9AqU(PMg zD5-)(V`od>2p&hUp_mz96wBFA=*j(*FI#H>i{g@fO=Z5KrsPyfOX zj0%)!-Z$oYTTq&yv_survYm($N}QZHF`Jn|(a^3#i9~~vN>tZ2es<3h6lE4Zx%vLv zN-Bv+wCTVRlqM)48BILfHmrn_OF{mvYj2_`S)Jb7|DqB~s8Gq?-7m#!(kS}(nK$w# zuL2dO_Z)QM36vlx;iayFmhGxg1*az7SXlURFY)45I8bS%!PXE(KQIua=m>Pdu zNhLxzlHNat5(JOpIaMQV!zxgs5bB8=Z=tBht9`O_zY;1?LP;f6(A+x|tFA@S)VV*I zz$mH0CZufI3`hUe8*c?rvj288eDmb3HA znTH5N{7)DxOkVbOe_jbCBZJT8C$3;E8*5o&?bWP?Yifg7tRVD- zzR(vap`?;32$OYK%f?zWOAnM#p^{1{p+Y5!g$1E6 z^eq&GzR(x?779XN=nD%LeSt451SU5-otvI0+`MeA{xe+8VjaTk!iGewcsv!aPDQJ*7paSy;z%fzx#RK_j#U8a&|nYtOQls zwr!g-293gjZ)e#@Q4SophhJOUwrvj;gR=Qo)b_EK^>Us|>|$O}msW+*GqV+}|p~iwNFlG9t@P{-O8*6)a+5{ z3!hch)Yeu})lpIX@h+0VzOAvIJ3sL&zp5ZJ&s&3SJx5=PYMXS;OizXt`;Z9kSD=}X z{_}KHqgB`}6gHoc9<1~9+^407h#X;ue0`<2IJwDg6s_XV7sNe$fVQi>S>b6|&A%PG z*(v<)&gsF5CTB>9_*DcVT*&s+KN_>oQ_Upwt3-S$q1NP#8kuTmzJqnxpnfdlsRG{W zb-{xtwxLPyYXe8f1@&S>;}Li!>ItkjAm=EJd+U3TeYu8J+mGoUnl~kw_I0g1bUm(L zV29P}4Y-f8e<29si5L@JL$N>K!5_Tzp_CoV+hAQnaAxl}q-ai}vBOdR5 z*0}vdp!@kddEEJtMP^0IH3%dzy$_Ai#vN2l*?qc6D#0I|Ty{SX`qj^I;;lZ<3yhR? zLh;8y?N9Wk`};=tzMq_gA)*(~syp1{%0J*|8INr0aS%8t$<>w)SJfq>N{_3aA~A9r zW_l_Hy=Ywa4}bR~f$U-;zs@Ps4vUq$n}{Z8<5W-T-=|U=q^UgjilF~}-}_3@Jkq*; zx;A#C1&M**=8Rh1CLEw?)F!R zO=^k6v9^!?;MU1~ZQb0}_Jo-4yaLnsT8RNUyIIFQoO&&1PMq=(u5PeU`&9-W{EV=GPT%buue+u{jTsj?o zlV8?kY;N6tw?AxjqhlIj)^k*!j8c-j`*?F^6cNK;4cw5sm&RHi2$lLgOG4VfaeV@1 zo+#hx#wgrV)1<6^VeNU~E;(2cCB1D&cbtT+Kx{i?)ih6SoMq{9B4VaQLlIDqwL5(=e2fwMMg`i%c|jq? z)^J_G*z87On-)ZaUe;Amw>+IP!1pOyLZDUMV- zK>4KBdgD^FA>J>a+uYN%`n_qSVPS3HAMu;^h9*BXl$})@WLDvws4EBqmLofrK0TZ20a_srZ`b0P%b5;pE>_x z?>R7TFiKy!wb-pva&Z$+oLuJ3L@3xR$w7M2e%`{al@0YJ(S#%7m+*jAQ6kbtyKW(C zu9gsW4wSGu9E!K9sRKf=Q*91WCyhOA`Ob3C>&A3(HAl8OXd9cbk)lD*8)LzpOFz;y zEX`R691f~`@?g%lGt8wuTuO5IV6b^p!>lc+Tt(Mjtk#G(+s_Rsv{-E%(a=*?Q`=I< zW`>1z@9c6^DR#XR5m%w9s!OuNewk->7mt23%B{CBUf)9xxKbxC_18TjZ=^=7w~C!SS^+cIt+ zK*h$8>n1MmFDXYTgbptx0%BElw=l6k z0lO61P~Shh;OY{+P>3Vd6j>N64=?~Vheuu#)u@pFsL-h$lg`FaK{2GCGvmHS|$VU)K?NCL+9 z*M5^fy9HXIN7jb+!6->@k(gU`{Mv8tlZ^B`k%nOt#kaF$1C`Xgk}t(KmWz@oP zDks5&0O}KwqpP2h36Z}$13XA?g2sB5FYBKNR=i6{3Y^DVS??!h zqO@R$Vd?5sgmh1+AFqYQb~<+K;E`j;E<2VSCQ*xz%aBCbj}H%-?A`duoF|I!&c|2( z(fK#w-j~Z~O>Yt4xSV7(L3vM?<>rb$G7I8S!X+1f1$ftPn#?G?uUnHox$l z5=#3826$^D>&BRo;@NOJHgRqBYjtfF z6{V!KgH_5MNIBKLpq1;81$h(QYCtQ_NJ9Ex=s)icCVU*K3QmZLk%~mbE)MCyin`45 z(3o2azm>Cs$48q+gP`i(D{Gf!28AvRV+@<5vOfL=UmtHVmY{74Uuon143o_2BU^`3 zetoDpAF@+k=?Snh!KT3Y)PV~{!G3;V_9#f7!pbq|y>n)?0_#%xM{Yo~S z$L<8qN!{*bd1V9Sf%57)*j7n}CZQP)l>`DisqTM`9KIyV? z<#LyQm5FiB(V*kNgLO&jYVtr;N%mjL-I+e@0hEW;K!I7zkDi6>Rvo|8uFm{Nd3o8h z1#`9G!JNG=$o?LIc~4-BZQf(b^{AH?buTT5nA>9QJGNz2P=b-ODv%he{0^`H1Z8Ez zKR=MJZr!jDWY(?tC$knsbrcr+1UAAIF1Ao^4Au@Cqddq}!&v%2&GEhfyP*e#EhnF7Y<)s})QB|%^mS+Lb~ zK1c#;uuJYPm>zA9^r~Fb4~L9$dp#{y-X-dQ&;T&O{NJWyu{$8Z+<_gc0yzbacA_N- zN!RuOQS{_)*#^tTg|3~hqu~>hX*dOZKV`XbQ8ZRs^YS1Kge&_#l~Z8#Kypl>0-k!) z;ec&fJ-9OH3?$y1Jq7n42}fYFt(IZ^LPL)!$2K(&QHksL){L%=*+pMID|YJuDd=k?y`^O%J_B$US~NRz)=Y< z%J7%f!(7#q{nw}u3*9=Ff_fO+(lV6CBa7wn8NJh=j>Y+e@SN5WJX&k$%{ku)y@}wk zun6(%0e*)one4DTt?URC2+`{x@2Ca~%i%*uZiU^SLqac+Ym~Qo>+?7z;tVl|{tmCy z@$+-+{B(q7al?0R^)d5lfA~4>BO0+9AqmLKA8lx#bXCXqN94@?<4`MzsHmv;2MZ&t z6V?a1T;BeezIj1A`1++yM9-^taQ(B&_UBtw`~Tx~BXqcU@&+%UxgNZxZo~ZLh+_P= HchbKB<`s6n literal 0 HcmV?d00001 diff --git a/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png b/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..57bcc11311b4187577a9eaa42c3d01b26de87bed GIT binary patch literal 6276 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 literal 0 HcmV?d00001 diff --git a/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png b/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..9251644c89fe1e9ac943ed90e07299420051a9f0 GIT binary patch literal 3476 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 literal 0 HcmV?d00001 diff --git a/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png b/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..49ba4e529e061b3929e35a9ba1713d990a1ab8f4 GIT binary patch literal 8915 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 Do$`Rs literal 0 HcmV?d00001 diff --git a/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..f920cb0ec --- /dev/null +++ b/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images": [ + { + "idiom": "iphone", + "size": "20x20", + "scale": "2x", + "filename": "App-Icon-20x20@2x.png" + }, + { + "idiom": "iphone", + "size": "20x20", + "scale": "3x", + "filename": "App-Icon-20x20@3x.png" + }, + { + "idiom": "iphone", + "size": "29x29", + "scale": "1x", + "filename": "App-Icon-29x29@1x.png" + }, + { + "idiom": "iphone", + "size": "29x29", + "scale": "2x", + "filename": "App-Icon-29x29@2x.png" + }, + { + "idiom": "iphone", + "size": "29x29", + "scale": "3x", + "filename": "App-Icon-29x29@3x.png" + }, + { + "idiom": "iphone", + "size": "40x40", + "scale": "2x", + "filename": "App-Icon-40x40@2x.png" + }, + { + "idiom": "iphone", + "size": "40x40", + "scale": "3x", + "filename": "App-Icon-40x40@3x.png" + }, + { + "idiom": "iphone", + "size": "60x60", + "scale": "2x", + "filename": "App-Icon-60x60@2x.png" + }, + { + "idiom": "iphone", + "size": "60x60", + "scale": "3x", + "filename": "App-Icon-60x60@3x.png" + }, + { + "idiom": "ipad", + "size": "20x20", + "scale": "1x", + "filename": "App-Icon-20x20@1x.png" + }, + { + "idiom": "ipad", + "size": "20x20", + "scale": "2x", + "filename": "App-Icon-20x20@2x.png" + }, + { + "idiom": "ipad", + "size": "29x29", + "scale": "1x", + "filename": "App-Icon-29x29@1x.png" + }, + { + "idiom": "ipad", + "size": "29x29", + "scale": "2x", + "filename": "App-Icon-29x29@2x.png" + }, + { + "idiom": "ipad", + "size": "40x40", + "scale": "1x", + "filename": "App-Icon-40x40@1x.png" + }, + { + "idiom": "ipad", + "size": "40x40", + "scale": "2x", + "filename": "App-Icon-40x40@2x.png" + }, + { + "idiom": "ipad", + "size": "76x76", + "scale": "1x", + "filename": "App-Icon-76x76@1x.png" + }, + { + "idiom": "ipad", + "size": "76x76", + "scale": "2x", + "filename": "App-Icon-76x76@2x.png" + }, + { + "idiom": "ipad", + "size": "83.5x83.5", + "scale": "2x", + "filename": "App-Icon-83.5x83.5@2x.png" + }, + { + "idiom": "ios-marketing", + "size": "1024x1024", + "scale": "1x", + "filename": "ItunesArtwork@2x.png" + } + ], + "info": { + "version": 1, + "author": "expo" + } +} \ No newline at end of file diff --git a/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png b/ios/Jellyfin/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..944bf947bc1a0528f56685bd28f66df28e45a6a2 GIT binary patch literal 109055 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

v^Ga@=6Xa^UkMcf=oF|9>? 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 literal 0 HcmV?d00001 diff --git a/ios/Jellyfin/Images.xcassets/Contents.json b/ios/Jellyfin/Images.xcassets/Contents.json new file mode 100644 index 000000000..ed285c2e5 --- /dev/null +++ b/ios/Jellyfin/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "expo" + } +} diff --git a/ios/Jellyfin/Images.xcassets/SplashScreen.imageset/Contents.json b/ios/Jellyfin/Images.xcassets/SplashScreen.imageset/Contents.json new file mode 100644 index 000000000..3cf848977 --- /dev/null +++ b/ios/Jellyfin/Images.xcassets/SplashScreen.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images": [ + { + "idiom": "universal", + "filename": "image.png", + "scale": "1x" + }, + { + "idiom": "universal", + "scale": "2x" + }, + { + "idiom": "universal", + "scale": "3x" + } + ], + "info": { + "version": 1, + "author": "expo" + } +} \ No newline at end of file diff --git a/ios/Jellyfin/Images.xcassets/SplashScreen.imageset/image.png b/ios/Jellyfin/Images.xcassets/SplashScreen.imageset/image.png new file mode 100644 index 0000000000000000000000000000000000000000..ca45c9ba0b060223978afe17d8fb8632a9e3a942 GIT binary patch literal 54588 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 JuK4t;{{{oaENcJ& literal 0 HcmV?d00001 diff --git a/ios/Jellyfin/Images.xcassets/SplashScreenBackground.imageset/Contents.json b/ios/Jellyfin/Images.xcassets/SplashScreenBackground.imageset/Contents.json new file mode 100644 index 000000000..3cf848977 --- /dev/null +++ b/ios/Jellyfin/Images.xcassets/SplashScreenBackground.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images": [ + { + "idiom": "universal", + "filename": "image.png", + "scale": "1x" + }, + { + "idiom": "universal", + "scale": "2x" + }, + { + "idiom": "universal", + "scale": "3x" + } + ], + "info": { + "version": 1, + "author": "expo" + } +} \ No newline at end of file diff --git a/ios/Jellyfin/Images.xcassets/SplashScreenBackground.imageset/image.png b/ios/Jellyfin/Images.xcassets/SplashScreenBackground.imageset/image.png new file mode 100644 index 0000000000000000000000000000000000000000..30665825f8c0551bf4e462c98b72dbefa0b26dfb GIT binary patch literal 70 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k92}1TpU9x7?TAA1b*-{Fiv4Kxbsxr Q0w}@Y>FVdQ&MBb@0EWE{fdBvi literal 0 HcmV?d00001 diff --git a/ios/Jellyfin/Info.plist b/ios/Jellyfin/Info.plist new file mode 100644 index 000000000..46c803563 --- /dev/null +++ b/ios/Jellyfin/Info.plist @@ -0,0 +1,86 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Jellyfin + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.5.0 + CFBundleSignature + ???? + CFBundleURLTypes + + + CFBundleURLSchemes + + org.jellyfin.expo + + + + CFBundleVersion + 5.5.0.0 + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSExceptionDomains + + localhost + + NSExceptionAllowsInsecureHTTPLoads + + + + + NSMicrophoneUsageDescription + Allow $(PRODUCT_NAME) to access your microphone + RCTRootViewBackgroundColor + 4279242768 + UIBackgroundModes + + audio + + UILaunchStoryboardName + SplashScreen + UIRequiredDeviceCapabilities + + armv7 + + UIRequiresFullScreen + + UIStatusBarStyle + UIStatusBarStyleDefault + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIUserInterfaceStyle + Automatic + UIViewControllerBasedStatusBarAppearance + + + \ No newline at end of file diff --git a/ios/Jellyfin/Jellyfin.entitlements b/ios/Jellyfin/Jellyfin.entitlements new file mode 100644 index 000000000..018a6e20c --- /dev/null +++ b/ios/Jellyfin/Jellyfin.entitlements @@ -0,0 +1,8 @@ + + + + + aps-environment + development + + \ No newline at end of file diff --git a/ios/Jellyfin/SplashScreen.storyboard b/ios/Jellyfin/SplashScreen.storyboard new file mode 100644 index 000000000..ed03a5299 --- /dev/null +++ b/ios/Jellyfin/SplashScreen.storyboard @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ios/Jellyfin/Supporting/Expo.plist b/ios/Jellyfin/Supporting/Expo.plist new file mode 100644 index 000000000..34d650461 --- /dev/null +++ b/ios/Jellyfin/Supporting/Expo.plist @@ -0,0 +1,16 @@ + + + + + EXUpdatesCheckOnLaunch + ALWAYS + EXUpdatesEnabled + + EXUpdatesLaunchWaitMs + 0 + EXUpdatesSDKVersion + 46.0.0 + EXUpdatesURL + https://exp.host/@jellyfin/jellyfin-expo + + \ No newline at end of file diff --git a/ios/Jellyfin/main.m b/ios/Jellyfin/main.m new file mode 100644 index 000000000..25181b6cc --- /dev/null +++ b/ios/Jellyfin/main.m @@ -0,0 +1,10 @@ +#import + +#import "AppDelegate.h" + +int main(int argc, char * argv[]) { + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} + diff --git a/ios/Jellyfin/noop-file.swift b/ios/Jellyfin/noop-file.swift new file mode 100644 index 000000000..b2ffafbfc --- /dev/null +++ b/ios/Jellyfin/noop-file.swift @@ -0,0 +1,4 @@ +// +// @generated +// A blank Swift file must be created for native modules with Swift files to work correctly. +// diff --git a/ios/Podfile b/ios/Podfile new file mode 100644 index 000000000..6b1937a13 --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,59 @@ +require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking") +require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods") +require File.join(File.dirname(`node --print "require.resolve('@react-native-community/cli-platform-ios/package.json')"`), "native_modules") + +require 'json' +podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {} + +platform :ios, podfile_properties['ios.deploymentTarget'] || '12.4' +install! 'cocoapods', + :deterministic_uuids => false + +target 'Jellyfin' do + use_expo_modules! + config = use_native_modules! + + use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks'] + + # Flags change depending on the env values. + flags = get_default_flags() + + use_react_native!( + :path => config[:reactNativePath], + :hermes_enabled => flags[:hermes_enabled] || podfile_properties['expo.jsEngine'] == 'hermes', + :fabric_enabled => flags[:fabric_enabled], + # An absolute path to your application root. + :app_path => "#{Dir.pwd}/.." + ) + + # Uncomment to opt-in to using Flipper + # Note that if you have use_frameworks! enabled, Flipper will not work + # + # if !ENV['CI'] + # use_flipper!() + # end + + post_install do |installer| + react_native_post_install(installer) + __apply_Xcode_12_5_M1_post_install_workaround(installer) + + # This is necessary for Xcode 14, because it signs resource bundles by default + # when building for devices. + installer.target_installation_results.pod_target_installation_results + .each do |pod_name, target_installation_result| + target_installation_result.resource_bundle_targets.each do |resource_bundle_target| + resource_bundle_target.build_configurations.each do |config| + config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' + end + end + end + end + + post_integrate do |installer| + begin + expo_patch_react_imports!(installer) + rescue => e + Pod::UI.warn e + end + end +end diff --git a/ios/Podfile.lock b/ios/Podfile.lock new file mode 100644 index 000000000..bea2dadc2 --- /dev/null +++ b/ios/Podfile.lock @@ -0,0 +1,637 @@ +PODS: + - boost (1.76.0) + - DoubleConversion (1.1.6) + - EXApplication (4.2.2): + - ExpoModulesCore + - EXAV (12.0.4): + - ExpoModulesCore + - React-runtimeexecutor + - ReactCommon + - EXConstants (13.2.4): + - ExpoModulesCore + - EXDevice (4.3.0): + - ExpoModulesCore + - EXErrorRecovery (3.2.0): + - ExpoModulesCore + - EXFileSystem (14.1.0): + - ExpoModulesCore + - EXFont (10.2.1): + - ExpoModulesCore + - Expo (46.0.21): + - ExpoModulesCore + - ExpoKeepAwake (10.2.1): + - ExpoModulesCore + - ExpoLocalization (13.1.0): + - ExpoModulesCore + - ExpoModulesCore (0.11.10): + - React-Core + - ReactCommon/turbomodule/core + - ExpoSystemUI (1.3.0): + - ExpoModulesCore + - ExpoWebBrowser (11.0.0): + - ExpoModulesCore + - EXScreenOrientation (4.3.0): + - ExpoModulesCore + - React-Core + - EXSplashScreen (0.16.2): + - ExpoModulesCore + - React-Core + - FBLazyVector (0.69.9) + - FBReactNativeSpec (0.69.9): + - RCT-Folly (= 2021.06.28.00-v2) + - RCTRequired (= 0.69.9) + - RCTTypeSafety (= 0.69.9) + - React-Core (= 0.69.9) + - React-jsi (= 0.69.9) + - ReactCommon/turbomodule/core (= 0.69.9) + - fmt (6.2.1) + - glog (0.3.5) + - RCT-Folly (2021.06.28.00-v2): + - boost + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - RCT-Folly/Default (= 2021.06.28.00-v2) + - RCT-Folly/Default (2021.06.28.00-v2): + - boost + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - RCTRequired (0.69.9) + - RCTTypeSafety (0.69.9): + - FBLazyVector (= 0.69.9) + - RCTRequired (= 0.69.9) + - React-Core (= 0.69.9) + - React (0.69.9): + - React-Core (= 0.69.9) + - React-Core/DevSupport (= 0.69.9) + - React-Core/RCTWebSocket (= 0.69.9) + - React-RCTActionSheet (= 0.69.9) + - React-RCTAnimation (= 0.69.9) + - React-RCTBlob (= 0.69.9) + - React-RCTImage (= 0.69.9) + - React-RCTLinking (= 0.69.9) + - React-RCTNetwork (= 0.69.9) + - React-RCTSettings (= 0.69.9) + - React-RCTText (= 0.69.9) + - React-RCTVibration (= 0.69.9) + - React-bridging (0.69.9): + - RCT-Folly (= 2021.06.28.00-v2) + - React-jsi (= 0.69.9) + - React-callinvoker (0.69.9) + - React-Codegen (0.69.9): + - FBReactNativeSpec (= 0.69.9) + - RCT-Folly (= 2021.06.28.00-v2) + - RCTRequired (= 0.69.9) + - RCTTypeSafety (= 0.69.9) + - React-Core (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - ReactCommon/turbomodule/core (= 0.69.9) + - React-Core (0.69.9): + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default (= 0.69.9) + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - React-perflogger (= 0.69.9) + - Yoga + - React-Core/CoreModulesHeaders (0.69.9): + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - React-perflogger (= 0.69.9) + - Yoga + - React-Core/Default (0.69.9): + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - React-perflogger (= 0.69.9) + - Yoga + - React-Core/DevSupport (0.69.9): + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default (= 0.69.9) + - React-Core/RCTWebSocket (= 0.69.9) + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - React-jsinspector (= 0.69.9) + - React-perflogger (= 0.69.9) + - Yoga + - React-Core/RCTActionSheetHeaders (0.69.9): + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - React-perflogger (= 0.69.9) + - Yoga + - React-Core/RCTAnimationHeaders (0.69.9): + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - React-perflogger (= 0.69.9) + - Yoga + - React-Core/RCTBlobHeaders (0.69.9): + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - React-perflogger (= 0.69.9) + - Yoga + - React-Core/RCTImageHeaders (0.69.9): + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - React-perflogger (= 0.69.9) + - Yoga + - React-Core/RCTLinkingHeaders (0.69.9): + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - React-perflogger (= 0.69.9) + - Yoga + - React-Core/RCTNetworkHeaders (0.69.9): + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - React-perflogger (= 0.69.9) + - Yoga + - React-Core/RCTSettingsHeaders (0.69.9): + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - React-perflogger (= 0.69.9) + - Yoga + - React-Core/RCTTextHeaders (0.69.9): + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - React-perflogger (= 0.69.9) + - Yoga + - React-Core/RCTVibrationHeaders (0.69.9): + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - React-perflogger (= 0.69.9) + - Yoga + - React-Core/RCTWebSocket (0.69.9): + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-Core/Default (= 0.69.9) + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsiexecutor (= 0.69.9) + - React-perflogger (= 0.69.9) + - Yoga + - React-CoreModules (0.69.9): + - RCT-Folly (= 2021.06.28.00-v2) + - RCTTypeSafety (= 0.69.9) + - React-Codegen (= 0.69.9) + - React-Core/CoreModulesHeaders (= 0.69.9) + - React-jsi (= 0.69.9) + - React-RCTImage (= 0.69.9) + - ReactCommon/turbomodule/core (= 0.69.9) + - React-cxxreact (0.69.9): + - boost (= 1.76.0) + - DoubleConversion + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-callinvoker (= 0.69.9) + - React-jsi (= 0.69.9) + - React-jsinspector (= 0.69.9) + - React-logger (= 0.69.9) + - React-perflogger (= 0.69.9) + - React-runtimeexecutor (= 0.69.9) + - React-jsi (0.69.9): + - boost (= 1.76.0) + - DoubleConversion + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-jsi/Default (= 0.69.9) + - React-jsi/Default (0.69.9): + - boost (= 1.76.0) + - DoubleConversion + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-jsiexecutor (0.69.9): + - DoubleConversion + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-perflogger (= 0.69.9) + - React-jsinspector (0.69.9) + - React-logger (0.69.9): + - glog + - react-native-get-random-values (1.8.0): + - React-Core + - react-native-safe-area-context (4.3.1): + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React + - ReactCommon/turbomodule/core + - react-native-webview (11.23.0): + - React-Core + - React-perflogger (0.69.9) + - React-RCTActionSheet (0.69.9): + - React-Core/RCTActionSheetHeaders (= 0.69.9) + - React-RCTAnimation (0.69.9): + - RCT-Folly (= 2021.06.28.00-v2) + - RCTTypeSafety (= 0.69.9) + - React-Codegen (= 0.69.9) + - React-Core/RCTAnimationHeaders (= 0.69.9) + - React-jsi (= 0.69.9) + - ReactCommon/turbomodule/core (= 0.69.9) + - React-RCTBlob (0.69.9): + - RCT-Folly (= 2021.06.28.00-v2) + - React-Codegen (= 0.69.9) + - React-Core/RCTBlobHeaders (= 0.69.9) + - React-Core/RCTWebSocket (= 0.69.9) + - React-jsi (= 0.69.9) + - React-RCTNetwork (= 0.69.9) + - ReactCommon/turbomodule/core (= 0.69.9) + - React-RCTImage (0.69.9): + - RCT-Folly (= 2021.06.28.00-v2) + - RCTTypeSafety (= 0.69.9) + - React-Codegen (= 0.69.9) + - React-Core/RCTImageHeaders (= 0.69.9) + - React-jsi (= 0.69.9) + - React-RCTNetwork (= 0.69.9) + - ReactCommon/turbomodule/core (= 0.69.9) + - React-RCTLinking (0.69.9): + - React-Codegen (= 0.69.9) + - React-Core/RCTLinkingHeaders (= 0.69.9) + - React-jsi (= 0.69.9) + - ReactCommon/turbomodule/core (= 0.69.9) + - React-RCTNetwork (0.69.9): + - RCT-Folly (= 2021.06.28.00-v2) + - RCTTypeSafety (= 0.69.9) + - React-Codegen (= 0.69.9) + - React-Core/RCTNetworkHeaders (= 0.69.9) + - React-jsi (= 0.69.9) + - ReactCommon/turbomodule/core (= 0.69.9) + - React-RCTSettings (0.69.9): + - RCT-Folly (= 2021.06.28.00-v2) + - RCTTypeSafety (= 0.69.9) + - React-Codegen (= 0.69.9) + - React-Core/RCTSettingsHeaders (= 0.69.9) + - React-jsi (= 0.69.9) + - ReactCommon/turbomodule/core (= 0.69.9) + - React-RCTText (0.69.9): + - React-Core/RCTTextHeaders (= 0.69.9) + - React-RCTVibration (0.69.9): + - RCT-Folly (= 2021.06.28.00-v2) + - React-Codegen (= 0.69.9) + - React-Core/RCTVibrationHeaders (= 0.69.9) + - React-jsi (= 0.69.9) + - ReactCommon/turbomodule/core (= 0.69.9) + - React-runtimeexecutor (0.69.9): + - React-jsi (= 0.69.9) + - ReactCommon (0.69.9): + - React-logger (= 0.69.9) + - ReactCommon/react_debug_core (= 0.69.9) + - ReactCommon/turbomodule (= 0.69.9) + - ReactCommon/react_debug_core (0.69.9): + - React-logger (= 0.69.9) + - ReactCommon/turbomodule (0.69.9): + - DoubleConversion + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-bridging (= 0.69.9) + - React-callinvoker (= 0.69.9) + - React-Core (= 0.69.9) + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-logger (= 0.69.9) + - React-perflogger (= 0.69.9) + - ReactCommon/turbomodule/core (= 0.69.9) + - ReactCommon/turbomodule/samples (= 0.69.9) + - ReactCommon/turbomodule/core (0.69.9): + - DoubleConversion + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-bridging (= 0.69.9) + - React-callinvoker (= 0.69.9) + - React-Core (= 0.69.9) + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-logger (= 0.69.9) + - React-perflogger (= 0.69.9) + - ReactCommon/turbomodule/samples (0.69.9): + - DoubleConversion + - glog + - RCT-Folly (= 2021.06.28.00-v2) + - React-bridging (= 0.69.9) + - React-callinvoker (= 0.69.9) + - React-Core (= 0.69.9) + - React-cxxreact (= 0.69.9) + - React-jsi (= 0.69.9) + - React-logger (= 0.69.9) + - React-perflogger (= 0.69.9) + - ReactCommon/turbomodule/core (= 0.69.9) + - RNCAsyncStorage (1.17.11): + - React-Core + - RNCMaskedView (0.1.11): + - React + - RNGestureHandler (2.5.0): + - React-Core + - RNReanimated (2.9.1): + - DoubleConversion + - FBLazyVector + - FBReactNativeSpec + - glog + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-callinvoker + - React-Core + - React-Core/DevSupport + - React-Core/RCTWebSocket + - React-CoreModules + - React-cxxreact + - React-jsi + - React-jsiexecutor + - React-jsinspector + - React-RCTActionSheet + - React-RCTAnimation + - React-RCTBlob + - React-RCTImage + - React-RCTLinking + - React-RCTNetwork + - React-RCTSettings + - React-RCTText + - ReactCommon/turbomodule/core + - Yoga + - RNScreens (3.15.0): + - React-Core + - React-RCTImage + - Yoga (1.14.0) + +DEPENDENCIES: + - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) + - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - EXApplication (from `../node_modules/expo-application/ios`) + - EXAV (from `../node_modules/expo-av/ios`) + - EXConstants (from `../node_modules/expo-constants/ios`) + - EXDevice (from `../node_modules/expo-device/ios`) + - EXErrorRecovery (from `../node_modules/expo-error-recovery/ios`) + - EXFileSystem (from `../node_modules/expo-file-system/ios`) + - EXFont (from `../node_modules/expo-font/ios`) + - Expo (from `../node_modules/expo`) + - ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`) + - ExpoLocalization (from `../node_modules/expo-localization/ios`) + - ExpoModulesCore (from `../node_modules/expo-modules-core/ios`) + - ExpoSystemUI (from `../node_modules/expo-system-ui/ios`) + - ExpoWebBrowser (from `../node_modules/expo-web-browser/ios`) + - EXScreenOrientation (from `../node_modules/expo-screen-orientation/ios`) + - EXSplashScreen (from `../node_modules/expo-splash-screen/ios`) + - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) + - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) + - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) + - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) + - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) + - React (from `../node_modules/react-native/`) + - React-bridging (from `../node_modules/react-native/ReactCommon`) + - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) + - React-Codegen (from `build/generated/ios`) + - React-Core (from `../node_modules/react-native/`) + - React-Core/RCTWebSocket (from `../node_modules/react-native/`) + - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) + - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) + - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) + - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) + - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) + - React-logger (from `../node_modules/react-native/ReactCommon/logger`) + - react-native-get-random-values (from `../node_modules/react-native-get-random-values`) + - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) + - react-native-webview (from `../node_modules/react-native-webview`) + - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) + - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) + - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) + - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) + - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) + - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) + - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) + - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) + - React-RCTText (from `../node_modules/react-native/Libraries/Text`) + - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) + - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) + - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) + - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)" + - "RNCMaskedView (from `../node_modules/@react-native-community/masked-view`)" + - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) + - RNReanimated (from `../node_modules/react-native-reanimated`) + - RNScreens (from `../node_modules/react-native-screens`) + - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) + +SPEC REPOS: + trunk: + - fmt + +EXTERNAL SOURCES: + boost: + :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" + DoubleConversion: + :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + EXApplication: + :path: "../node_modules/expo-application/ios" + EXAV: + :path: "../node_modules/expo-av/ios" + EXConstants: + :path: "../node_modules/expo-constants/ios" + EXDevice: + :path: "../node_modules/expo-device/ios" + EXErrorRecovery: + :path: "../node_modules/expo-error-recovery/ios" + EXFileSystem: + :path: "../node_modules/expo-file-system/ios" + EXFont: + :path: "../node_modules/expo-font/ios" + Expo: + :path: "../node_modules/expo" + ExpoKeepAwake: + :path: "../node_modules/expo-keep-awake/ios" + ExpoLocalization: + :path: "../node_modules/expo-localization/ios" + ExpoModulesCore: + :path: "../node_modules/expo-modules-core/ios" + ExpoSystemUI: + :path: "../node_modules/expo-system-ui/ios" + ExpoWebBrowser: + :path: "../node_modules/expo-web-browser/ios" + EXScreenOrientation: + :path: "../node_modules/expo-screen-orientation/ios" + EXSplashScreen: + :path: "../node_modules/expo-splash-screen/ios" + FBLazyVector: + :path: "../node_modules/react-native/Libraries/FBLazyVector" + FBReactNativeSpec: + :path: "../node_modules/react-native/React/FBReactNativeSpec" + glog: + :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" + RCT-Folly: + :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" + RCTRequired: + :path: "../node_modules/react-native/Libraries/RCTRequired" + RCTTypeSafety: + :path: "../node_modules/react-native/Libraries/TypeSafety" + React: + :path: "../node_modules/react-native/" + React-bridging: + :path: "../node_modules/react-native/ReactCommon" + React-callinvoker: + :path: "../node_modules/react-native/ReactCommon/callinvoker" + React-Codegen: + :path: build/generated/ios + React-Core: + :path: "../node_modules/react-native/" + React-CoreModules: + :path: "../node_modules/react-native/React/CoreModules" + React-cxxreact: + :path: "../node_modules/react-native/ReactCommon/cxxreact" + React-jsi: + :path: "../node_modules/react-native/ReactCommon/jsi" + React-jsiexecutor: + :path: "../node_modules/react-native/ReactCommon/jsiexecutor" + React-jsinspector: + :path: "../node_modules/react-native/ReactCommon/jsinspector" + React-logger: + :path: "../node_modules/react-native/ReactCommon/logger" + react-native-get-random-values: + :path: "../node_modules/react-native-get-random-values" + react-native-safe-area-context: + :path: "../node_modules/react-native-safe-area-context" + react-native-webview: + :path: "../node_modules/react-native-webview" + React-perflogger: + :path: "../node_modules/react-native/ReactCommon/reactperflogger" + React-RCTActionSheet: + :path: "../node_modules/react-native/Libraries/ActionSheetIOS" + React-RCTAnimation: + :path: "../node_modules/react-native/Libraries/NativeAnimation" + React-RCTBlob: + :path: "../node_modules/react-native/Libraries/Blob" + React-RCTImage: + :path: "../node_modules/react-native/Libraries/Image" + React-RCTLinking: + :path: "../node_modules/react-native/Libraries/LinkingIOS" + React-RCTNetwork: + :path: "../node_modules/react-native/Libraries/Network" + React-RCTSettings: + :path: "../node_modules/react-native/Libraries/Settings" + React-RCTText: + :path: "../node_modules/react-native/Libraries/Text" + React-RCTVibration: + :path: "../node_modules/react-native/Libraries/Vibration" + React-runtimeexecutor: + :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" + ReactCommon: + :path: "../node_modules/react-native/ReactCommon" + RNCAsyncStorage: + :path: "../node_modules/@react-native-async-storage/async-storage" + RNCMaskedView: + :path: "../node_modules/@react-native-community/masked-view" + RNGestureHandler: + :path: "../node_modules/react-native-gesture-handler" + RNReanimated: + :path: "../node_modules/react-native-reanimated" + RNScreens: + :path: "../node_modules/react-native-screens" + Yoga: + :path: "../node_modules/react-native/ReactCommon/yoga" + +SPEC CHECKSUMS: + boost: a7c83b31436843459a1961bfd74b96033dc77234 + DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 + EXApplication: e418d737a036e788510f2c4ad6c10a7d54d18586 + EXAV: 596506c9bee54ad52f2f3b625cdaeb9d9f2dd6b7 + EXConstants: 7c44785d41d8e959d527d23d29444277a4d1ee73 + EXDevice: 7647ca9b1fd8b269dfd896a7643d659343358054 + EXErrorRecovery: 74d71ee59f6814315457b09d68e86aa95cc7d05d + EXFileSystem: 927e0a8885aa9c49e50fc38eaba2c2389f2f1019 + EXFont: 06df627203afcb8a3b3152ec06eb2f11f46f0cff + Expo: 99284f9f697b6def5988fdf50652e21f062991e3 + ExpoKeepAwake: 8b47e5358d54ea4922b630a74f2acb026ab7a28b + ExpoLocalization: 63204f4b9d4f653469d266332ceaa6c6ac8a305d + ExpoModulesCore: 1b2f5f91eff132671f6d0642aad2ba7915c6ff41 + ExpoSystemUI: 9f550a8055e315f7b0c4da208de27e45fe7da0fb + ExpoWebBrowser: 5804ac42a8269d0e534bc4461993005f72535649 + EXScreenOrientation: c309fed5399e482c6adebe14f41a7fd9001d7bde + EXSplashScreen: 799bece80089219b2c989c1082d70f3b00995cda + FBLazyVector: d3c1d2923b1009f4e709e8f1b793dedf5b323454 + FBReactNativeSpec: d460df7d796ed4979c6cd4e092145b63eb28b5bb + fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 + glog: 3d02b25ca00c2d456734d0bcff864cbc62f6ae1a + RCT-Folly: b9d9fe1fc70114b751c076104e52f3b1b5e5a95a + RCTRequired: fe80e9f71dd15939e5399dd94d0aa0e5e069d592 + RCTTypeSafety: 4c802f7c4b9e7c55470e7fc56d50385cbfcce89b + React: efe0b6d0b7401a208d2d1bf8320c0b6a0dcd593b + React-bridging: 11a324da43d8467cfe528ccff0e00ab43bdf1cf4 + React-callinvoker: d4d34002df449053784f1131a6382e526d172395 + React-Codegen: 63eb91553568558cbd6fb2f336c3ff2fea66b37a + React-Core: 2875b1749729d07ef7cacef36e8b1381f27cc86e + React-CoreModules: 8b6665f9b128b875660d75a7144122c742ad4af9 + React-cxxreact: 76d426551a4d1d6f623ef8f87a26690d5a6be93e + React-jsi: 47b65f4f789f198004c47e5b6ceaae95ea3f3659 + React-jsiexecutor: 3b506d7fc50275bf44f8fd5624f23eaedd78bf78 + React-jsinspector: 5b92a5a30e02e1a21802f293cc71e05d887c7378 + React-logger: 96d904c5bc87c2660d48e6a36fb2edf65f9cfb11 + react-native-get-random-values: a6ea6a8a65dc93e96e24a11105b1a9c8cfe1d72a + react-native-safe-area-context: 6c12e3859b6f27b25de4fee8201cfb858432d8de + react-native-webview: e771bc375f789ebfa02a26939a57dbc6fa897336 + React-perflogger: f6f4b3c63629ead2e8a5a22eaedd06368c31617a + React-RCTActionSheet: 5e95058e99c53313d778d96b7f37697ce3a9418e + React-RCTAnimation: c4f86d756d8398c674f61d00075993a368d83480 + React-RCTBlob: c74cb1350831866b3b23c2379ccc3a5909593bc5 + React-RCTImage: cc72e4092e08c7070d1dce7704fbdcdfc9e0a721 + React-RCTLinking: dca79b9df468980462a399a630156f5a5fc0b5bc + React-RCTNetwork: 0dfb918fd237b6fa4e3820769c57a6a0ad61f934 + React-RCTSettings: a9fb6736139ddf8e7d11842c8a948c47c1ae603d + React-RCTText: 87456d45e8bcc0c831b7c7fcfcfd860a54f54a79 + React-RCTVibration: ea899478e6f10ee526f476f769ab33211be2addd + React-runtimeexecutor: df1518d092e8c74cafddc56690d1ac386ec24d7a + ReactCommon: fac40473e2c4117522384027ab33ad0cb6717dc5 + RNCAsyncStorage: 8616bd5a58af409453ea4e1b246521bb76578d60 + RNCMaskedView: 0e1bc4bfa8365eba5fbbb71e07fbdc0555249489 + RNGestureHandler: bad495418bcbd3ab47017a38d93d290ebd406f50 + RNReanimated: 2cf7451318bb9cc430abeec8d67693f9cf4e039c + RNScreens: 4a1af06327774490d97342c00aee0c2bafb497b7 + Yoga: 7a4d48cfb35dfa542151e615fa73c1a0d88caf21 + +PODFILE CHECKSUM: 886347fc7958cd8169a4e06f4a5e125dadf419a3 + +COCOAPODS: 1.15.2 diff --git a/ios/Podfile.properties.json b/ios/Podfile.properties.json new file mode 100644 index 000000000..f6d872e81 --- /dev/null +++ b/ios/Podfile.properties.json @@ -0,0 +1,3 @@ +{ + "expo.jsEngine": "jsc" +}