├── app.plugin.js
├── example
├── android
│ ├── app
│ │ ├── src
│ │ │ ├── main
│ │ │ │ ├── res
│ │ │ │ │ ├── values-night
│ │ │ │ │ │ └── colors.xml
│ │ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ │ ├── ic_launcher.png
│ │ │ │ │ │ ├── ic_launcher_round.png
│ │ │ │ │ │ └── ic_launcher_foreground.png
│ │ │ │ │ ├── drawable-hdpi
│ │ │ │ │ │ └── splashscreen_image.png
│ │ │ │ │ ├── drawable-mdpi
│ │ │ │ │ │ └── splashscreen_image.png
│ │ │ │ │ ├── drawable-xhdpi
│ │ │ │ │ │ └── splashscreen_image.png
│ │ │ │ │ ├── drawable
│ │ │ │ │ │ ├── splashscreen.xml
│ │ │ │ │ │ └── rn_edit_text_material.xml
│ │ │ │ │ ├── drawable-xxhdpi
│ │ │ │ │ │ └── splashscreen_image.png
│ │ │ │ │ ├── drawable-xxxhdpi
│ │ │ │ │ │ └── splashscreen_image.png
│ │ │ │ │ ├── values
│ │ │ │ │ │ ├── colors.xml
│ │ │ │ │ │ ├── strings.xml
│ │ │ │ │ │ └── styles.xml
│ │ │ │ │ └── mipmap-anydpi-v26
│ │ │ │ │ │ ├── ic_launcher.xml
│ │ │ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── java
│ │ │ │ │ └── expo
│ │ │ │ │ │ └── modules
│ │ │ │ │ │ └── checkinstalledapps
│ │ │ │ │ │ └── example
│ │ │ │ │ │ ├── MainApplication.kt
│ │ │ │ │ │ └── MainActivity.kt
│ │ │ │ └── AndroidManifest.xml
│ │ │ └── debug
│ │ │ │ └── AndroidManifest.xml
│ │ ├── debug.keystore
│ │ ├── proguard-rules.pro
│ │ └── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── .gitignore
│ ├── react-settings-plugin
│ │ ├── src
│ │ │ └── main
│ │ │ │ └── kotlin
│ │ │ │ └── expo
│ │ │ │ └── plugins
│ │ │ │ └── ReactSettingsPlugin.kt
│ │ └── build.gradle.kts
│ ├── build.gradle
│ ├── gradle.properties
│ ├── settings.gradle
│ ├── gradlew.bat
│ └── gradlew
├── assets
│ ├── icon.png
│ ├── splash.png
│ ├── favicon.png
│ └── adaptive-icon.png
├── ios
│ ├── Podfile.properties.json
│ ├── expocheckinstalledappsexample
│ │ ├── Images.xcassets
│ │ │ ├── Contents.json
│ │ │ ├── SplashScreen.imageset
│ │ │ │ ├── image.png
│ │ │ │ └── Contents.json
│ │ │ ├── SplashScreenBackground.imageset
│ │ │ │ ├── image.png
│ │ │ │ └── Contents.json
│ │ │ └── AppIcon.appiconset
│ │ │ │ ├── App-Icon-1024x1024@1x.png
│ │ │ │ └── Contents.json
│ │ ├── noop-file.swift
│ │ ├── expocheckinstalledappsexample-Bridging-Header.h
│ │ ├── AppDelegate.h
│ │ ├── expocheckinstalledappsexample.entitlements
│ │ ├── main.m
│ │ ├── Supporting
│ │ │ └── Expo.plist
│ │ ├── PrivacyInfo.xcprivacy
│ │ ├── Info.plist
│ │ ├── AppDelegate.mm
│ │ └── SplashScreen.storyboard
│ ├── expocheckinstalledappsexample.xcworkspace
│ │ ├── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── contents.xcworkspacedata
│ ├── .gitignore
│ ├── .xcode.env
│ ├── Podfile
│ ├── expocheckinstalledappsexample.xcodeproj
│ │ ├── xcshareddata
│ │ │ └── xcschemes
│ │ │ │ └── expocheckinstalledappsexample.xcscheme
│ │ └── project.pbxproj
│ └── Podfile.lock
├── babel.config.js
├── tsconfig.json
├── .gitignore
├── webpack.config.js
├── package.json
├── app.json
├── metro.config.js
└── App.tsx
├── plugin
├── tsconfig.tsbuildinfo
├── tsconfig.json
└── src
│ └── index.ts
├── .eslintrc.js
├── tsconfig.json
├── expo-module.config.json
├── .npmignore
├── src
├── ExpoCheckInstalledAppsModule.ts
└── index.ts
├── android
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── expo
│ │ └── modules
│ │ └── checkinstalledapps
│ │ └── ExpoCheckInstalledAppsModule.kt
└── build.gradle
├── .gitignore
├── ios
├── ExpoCheckInstalledApps.podspec
└── ExpoCheckInstalledAppsModule.swift
├── .github
├── FUNDING.yml
└── workflows
│ └── RELEASE_AND_PUBLISH_TO_NPM.yml
├── package.json
└── README.md
/app.plugin.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./plugin/build');
2 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/values-night/colors.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugin/tsconfig.tsbuildinfo:
--------------------------------------------------------------------------------
1 | {"root":["./src/index.ts"],"version":"5.6.3"}
--------------------------------------------------------------------------------
/example/assets/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/assets/icon.png
--------------------------------------------------------------------------------
/example/assets/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/assets/splash.png
--------------------------------------------------------------------------------
/example/assets/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/assets/favicon.png
--------------------------------------------------------------------------------
/example/ios/Podfile.properties.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo.jsEngine": "hermes",
3 | "EX_DEV_CLIENT_NETWORK_INSPECTOR": "true"
4 | }
5 |
--------------------------------------------------------------------------------
/example/assets/adaptive-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/assets/adaptive-icon.png
--------------------------------------------------------------------------------
/example/android/app/debug.keystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/debug.keystore
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | extends: ['universe/native', 'universe/web'],
4 | ignorePatterns: ['build'],
5 | };
6 |
--------------------------------------------------------------------------------
/example/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = function (api) {
2 | api.cache(true);
3 | return {
4 | presets: ['babel-preset-expo'],
5 | };
6 | };
7 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "expo"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/example/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/noop-file.swift:
--------------------------------------------------------------------------------
1 | //
2 | // @generated
3 | // A blank Swift file must be created for native modules with Swift files to work correctly.
4 | //
5 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/expocheckinstalledappsexample-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // Use this file to import your target's public headers that you would like to expose to Swift.
3 | //
4 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable-hdpi/splashscreen_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/drawable-hdpi/splashscreen_image.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable-mdpi/splashscreen_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/drawable-mdpi/splashscreen_image.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable/splashscreen.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/AppDelegate.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 | #import
4 |
5 | @interface AppDelegate : EXAppDelegateWrapper
6 |
7 | @end
8 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/example/android/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | #
3 | .DS_Store
4 |
5 | # Android/IntelliJ
6 | #
7 | build/
8 | .idea
9 | .gradle
10 | local.properties
11 | *.iml
12 | *.hprof
13 | .cxx/
14 |
15 | # Bundle artifacts
16 | *.jsbundle
17 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/Images.xcassets/SplashScreen.imageset/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/ios/expocheckinstalledappsexample/Images.xcassets/SplashScreen.imageset/image.png
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/Images.xcassets/SplashScreenBackground.imageset/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/ios/expocheckinstalledappsexample/Images.xcassets/SplashScreenBackground.imageset/image.png
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EndLess728/expo-check-installed-apps/HEAD/example/ios/expocheckinstalledappsexample/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | // @generated by expo-module-scripts
2 | {
3 | "extends": "expo-module-scripts/tsconfig.base",
4 | "compilerOptions": {
5 | "outDir": "./build"
6 | },
7 | "include": ["./src"],
8 | "exclude": ["**/__mocks__/*", "**/__tests__/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/expocheckinstalledappsexample.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/example/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "expo/tsconfig.base",
3 | "compilerOptions": {
4 | "strict": true,
5 | "paths": {
6 | "expo-check-installed-apps": ["../src/index"],
7 | "expo-check-installed-apps/*": ["../src/*"]
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/expo-module.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "platforms": ["ios", "tvos", "android"],
3 | "ios": {
4 | "modules": ["ExpoCheckInstalledAppsModule"]
5 | },
6 | "android": {
7 | "modules": ["expo.modules.checkinstalledapps.ExpoCheckInstalledAppsModule"]
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/plugin/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "expo-module-scripts/tsconfig.plugin",
3 | "compilerOptions": {
4 | "outDir": "build",
5 | "rootDir": "src"
6 | },
7 | "include": ["./src"],
8 | "exclude": ["**/__mocks__/*", "**/__tests__/*"]
9 | }
10 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 | #ffffff
3 | #ffffff
4 | #023c69
5 | #ffffff
6 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/main.m:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "AppDelegate.h"
4 |
5 | int main(int argc, char * argv[]) {
6 | @autoreleasepool {
7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
8 | }
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | # Exclude all top-level hidden directories by convention
2 | /.*/
3 |
4 | # Exclude tarballs generated by `npm pack`
5 | /*.tgz
6 |
7 | __mocks__
8 | __tests__
9 |
10 | /babel.config.js
11 | /android/src/androidTest/
12 | /android/src/test/
13 | /android/build/
14 | /example/
15 |
--------------------------------------------------------------------------------
/src/ExpoCheckInstalledAppsModule.ts:
--------------------------------------------------------------------------------
1 | import { requireNativeModule } from 'expo-modules-core';
2 |
3 | // It loads the native module object from the JSI or falls back to
4 | // the bridge module (from NativeModulesProxy) if the remote debugger is on.
5 | export default requireNativeModule('ExpoCheckInstalledApps');
6 |
--------------------------------------------------------------------------------
/example/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip
4 | networkTimeout=10000
5 | validateDistributionUrl=true
6 | zipStoreBase=GRADLE_USER_HOME
7 | zipStorePath=wrapper/dists
8 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | expo-check-installed-apps-example
3 | contain
4 | false
5 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": [
3 | {
4 | "filename": "App-Icon-1024x1024@1x.png",
5 | "idiom": "universal",
6 | "platform": "ios",
7 | "size": "1024x1024"
8 | }
9 | ],
10 | "info": {
11 | "version": 1,
12 | "author": "expo"
13 | }
14 | }
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/example/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt:
--------------------------------------------------------------------------------
1 | package expo.plugins
2 |
3 | import org.gradle.api.Plugin
4 | import org.gradle.api.initialization.Settings
5 |
6 | class ReactSettingsPlugin : Plugin {
7 | override fun apply(settings: Settings) {
8 | // Do nothing, just register the plugin.
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/example/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/Supporting/Expo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EXUpdatesCheckOnLaunch
6 | ALWAYS
7 | EXUpdatesEnabled
8 |
9 | EXUpdatesLaunchWaitMs
10 | 0
11 |
12 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/Images.xcassets/SplashScreen.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": [
3 | {
4 | "idiom": "universal",
5 | "filename": "image.png",
6 | "scale": "1x"
7 | },
8 | {
9 | "idiom": "universal",
10 | "scale": "2x"
11 | },
12 | {
13 | "idiom": "universal",
14 | "scale": "3x"
15 | }
16 | ],
17 | "info": {
18 | "version": 1,
19 | "author": "expo"
20 | }
21 | }
--------------------------------------------------------------------------------
/example/ios/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | #
3 | .DS_Store
4 |
5 | # Xcode
6 | #
7 | build/
8 | *.pbxuser
9 | !default.pbxuser
10 | *.mode1v3
11 | !default.mode1v3
12 | *.mode2v3
13 | !default.mode2v3
14 | *.perspectivev3
15 | !default.perspectivev3
16 | xcuserdata
17 | *.xccheckout
18 | *.moved-aside
19 | DerivedData
20 | *.hmap
21 | *.ipa
22 | *.xcuserstate
23 | project.xcworkspace
24 | .xcode.env.local
25 |
26 | # Bundle artifacts
27 | *.jsbundle
28 |
29 | # CocoaPods
30 | /Pods/
31 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/Images.xcassets/SplashScreenBackground.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": [
3 | {
4 | "idiom": "universal",
5 | "filename": "image.png",
6 | "scale": "1x"
7 | },
8 | {
9 | "idiom": "universal",
10 | "scale": "2x"
11 | },
12 | {
13 | "idiom": "universal",
14 | "scale": "3x"
15 | }
16 | ],
17 | "info": {
18 | "version": 1,
19 | "author": "expo"
20 | }
21 | }
--------------------------------------------------------------------------------
/example/android/react-settings-plugin/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
2 |
3 | plugins {
4 | kotlin("jvm") version "1.9.24"
5 | id("java-gradle-plugin")
6 | }
7 |
8 | repositories {
9 | mavenCentral()
10 | }
11 |
12 | gradlePlugin {
13 | plugins {
14 | create("reactSettingsPlugin") {
15 | id = "com.facebook.react.settings"
16 | implementationClass = "expo.plugins.ReactSettingsPlugin"
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/example/ios/.xcode.env:
--------------------------------------------------------------------------------
1 | # This `.xcode.env` file is versioned and is used to source the environment
2 | # used when running script phases inside Xcode.
3 | # To customize your local environment, you can create an `.xcode.env.local`
4 | # file that is not versioned.
5 |
6 | # NODE_BINARY variable contains the PATH to the node executable.
7 | #
8 | # Customize the NODE_BINARY variable here.
9 | # For example, to use nvm with brew, add the following line
10 | # . "$(brew --prefix nvm)/nvm.sh" --no-use
11 | export NODE_BINARY=$(command -v node)
12 |
--------------------------------------------------------------------------------
/example/.gitignore:
--------------------------------------------------------------------------------
1 | # Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files
2 |
3 | # dependencies
4 | node_modules/
5 |
6 | # Expo
7 | .expo/
8 | dist/
9 | web-build/
10 |
11 | # Native
12 | *.orig.*
13 | *.jks
14 | *.p8
15 | *.p12
16 | *.key
17 | *.mobileprovision
18 |
19 | # Metro
20 | .metro-health-check*
21 |
22 | # debug
23 | npm-debug.*
24 | yarn-debug.*
25 | yarn-error.*
26 |
27 | # macOS
28 | .DS_Store
29 | *.pem
30 |
31 | # local env files
32 | .env*.local
33 |
34 | # typescript
35 | *.tsbuildinfo
36 |
--------------------------------------------------------------------------------
/example/webpack.config.js:
--------------------------------------------------------------------------------
1 | const createConfigAsync = require('@expo/webpack-config');
2 | const path = require('path');
3 |
4 | module.exports = async (env, argv) => {
5 | const config = await createConfigAsync(
6 | {
7 | ...env,
8 | babel: {
9 | dangerouslyAddModulePathsToTranspile: ['expo-check-installed-apps'],
10 | },
11 | },
12 | argv
13 | );
14 | config.resolve.modules = [
15 | path.resolve(__dirname, './node_modules'),
16 | path.resolve(__dirname, '../node_modules'),
17 | ];
18 |
19 | return config;
20 | };
21 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import ExpoCheckInstalledAppsModule from "./ExpoCheckInstalledAppsModule";
2 |
3 | // Get the native constant value.
4 | export const PI = ExpoCheckInstalledAppsModule.PI;
5 |
6 | export function hello(): string {
7 | return ExpoCheckInstalledAppsModule.hello();
8 | }
9 |
10 | export async function checkInstalledApps(
11 | packageNames: Array
12 | ): Promise> {
13 | return ExpoCheckInstalledAppsModule.checkAppsInstalled(packageNames);
14 | }
15 |
16 | export async function setValueAsync(value: string) {
17 | return await ExpoCheckInstalledAppsModule.setValueAsync(value);
18 | }
19 |
--------------------------------------------------------------------------------
/example/android/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # react-native-reanimated
11 | -keep class com.swmansion.reanimated.** { *; }
12 | -keep class com.facebook.react.turbomodule.** { *; }
13 |
14 | # Add any project specific keep options here:
15 |
--------------------------------------------------------------------------------
/example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "expo-check-installed-apps-example",
3 | "version": "1.0.0",
4 | "main": "expo/AppEntry.js",
5 | "scripts": {
6 | "start": "expo start",
7 | "android": "expo run:android",
8 | "ios": "expo run:ios",
9 | "web": "expo start --web"
10 | },
11 | "dependencies": {
12 | "expo": "~51.0.28",
13 | "react": "18.2.0",
14 | "react-native": "0.74.5"
15 | },
16 | "devDependencies": {
17 | "@babel/core": "^7.20.0",
18 | "@types/react": "~18.2.45",
19 | "typescript": "^5.1.3"
20 | },
21 | "private": true,
22 | "expo": {
23 | "autolinking": {
24 | "nativeModulesDir": ".."
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | #
3 | .DS_Store
4 |
5 | # VSCode
6 | .vscode/
7 | jsconfig.json
8 |
9 | # Xcode
10 | #
11 | build/
12 | *.pbxuser
13 | !default.pbxuser
14 | *.mode1v3
15 | !default.mode1v3
16 | *.mode2v3
17 | !default.mode2v3
18 | *.perspectivev3
19 | !default.perspectivev3
20 | xcuserdata
21 | *.xccheckout
22 | *.moved-aside
23 | DerivedData
24 | *.hmap
25 | *.ipa
26 | *.xcuserstate
27 | project.xcworkspace
28 |
29 | # Android/IJ
30 | #
31 | .classpath
32 | .cxx
33 | .gradle
34 | .idea
35 | .project
36 | .settings
37 | local.properties
38 | android.iml
39 | android/app/libs
40 | android/keystores/debug.keystore
41 |
42 | # Cocoapods
43 | #
44 | example/ios/Pods
45 |
46 | # Ruby
47 | example/vendor/
48 |
49 | # node.js
50 | #
51 | node_modules/
52 | npm-debug.log
53 | yarn-debug.log
54 | yarn-error.log
55 |
56 | # Expo
57 | .expo/*
58 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
14 |
17 |
--------------------------------------------------------------------------------
/ios/ExpoCheckInstalledApps.podspec:
--------------------------------------------------------------------------------
1 | require 'json'
2 |
3 | package = JSON.parse(File.read(File.join(__dir__, '..', 'package.json')))
4 |
5 | Pod::Spec.new do |s|
6 | s.name = 'ExpoCheckInstalledApps'
7 | s.version = package['version']
8 | s.summary = package['description']
9 | s.description = package['description']
10 | s.license = package['license']
11 | s.author = package['author']
12 | s.homepage = package['homepage']
13 | s.platforms = { :ios => '13.4', :tvos => '13.4' }
14 | s.swift_version = '5.4'
15 | s.source = { git: 'https://github.com/EndLess728/expo-check-installed-apps' }
16 | s.static_framework = true
17 |
18 | s.dependency 'ExpoModulesCore'
19 |
20 | # Swift/Objective-C compatibility
21 | s.pod_target_xcconfig = {
22 | 'DEFINES_MODULE' => 'YES',
23 | 'SWIFT_COMPILATION_MODE' => 'wholemodule'
24 | }
25 |
26 | s.source_files = "**/*.{h,m,swift}"
27 | end
28 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: EndLess728 # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12 | polar: # Replace with a single Polar username
13 | buy_me_a_coffee: mantu.728 # Replace with a single Buy Me a Coffee username
14 | thanks_dev: # Replace with a single thanks.dev username
15 | custom: ['https://paypal.me/Monty728'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
16 |
--------------------------------------------------------------------------------
/example/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "name": "expo-check-installed-apps-example",
4 | "slug": "expo-check-installed-apps-example",
5 | "version": "1.0.0",
6 | "orientation": "portrait",
7 | "icon": "./assets/icon.png",
8 | "userInterfaceStyle": "light",
9 | "splash": {
10 | "image": "./assets/splash.png",
11 | "resizeMode": "contain",
12 | "backgroundColor": "#ffffff"
13 | },
14 | "ios": {
15 | "supportsTablet": true,
16 | "bundleIdentifier": "expo.modules.checkinstalledapps.example"
17 | },
18 | "android": {
19 | "adaptiveIcon": {
20 | "foregroundImage": "./assets/adaptive-icon.png",
21 | "backgroundColor": "#ffffff"
22 | },
23 | "package": "expo.modules.checkinstalledapps.example"
24 | },
25 | "plugins": [
26 | [
27 | "../app.plugin.js",
28 | {
29 | "android": ["com.android.chrome", "com.expo.flash.qr"],
30 | "ios": ["fb", "twitter"]
31 | }
32 | ]
33 | ]
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/example/metro.config.js:
--------------------------------------------------------------------------------
1 | // Learn more https://docs.expo.io/guides/customizing-metro
2 | const { getDefaultConfig } = require('expo/metro-config');
3 | const path = require('path');
4 |
5 | const config = getDefaultConfig(__dirname);
6 |
7 | // npm v7+ will install ../node_modules/react and ../node_modules/react-native because of peerDependencies.
8 | // To prevent the incompatible react-native between ./node_modules/react-native and ../node_modules/react-native,
9 | // excludes the one from the parent folder when bundling.
10 | config.resolver.blockList = [
11 | ...Array.from(config.resolver.blockList ?? []),
12 | new RegExp(path.resolve('..', 'node_modules', 'react')),
13 | new RegExp(path.resolve('..', 'node_modules', 'react-native')),
14 | ];
15 |
16 | config.resolver.nodeModulesPaths = [
17 | path.resolve(__dirname, './node_modules'),
18 | path.resolve(__dirname, '../node_modules'),
19 | ];
20 |
21 | config.resolver.extraNodeModules = {
22 | 'expo-check-installed-apps': '..',
23 | };
24 |
25 | config.watchFolders = [path.resolve(__dirname, '..')];
26 |
27 | config.transformer.getTransformOptions = async () => ({
28 | transform: {
29 | experimentalImportSupport: false,
30 | inlineRequires: true,
31 | },
32 | });
33 |
34 | module.exports = config;
35 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "expo-check-installed-apps",
3 | "version": "0.2.9",
4 | "description": "Expo Package to check the installed apps in android and ios",
5 | "main": "build/index.js",
6 | "types": "build/index.d.ts",
7 | "scripts": {
8 | "build": "expo-module build",
9 | "clean": "expo-module clean",
10 | "lint": "expo-module lint",
11 | "test": "expo-module test",
12 | "prepare": "expo-module prepare",
13 | "prepublishOnly": "expo-module prepublishOnly",
14 | "expo-module": "expo-module",
15 | "open:ios": "xed example/ios",
16 | "open:android": "open -a \"Android Studio\" example/android"
17 | },
18 | "keywords": [
19 | "react-native",
20 | "expo",
21 | "expo-check-installed-apps",
22 | "ExpoCheckInstalledApps"
23 | ],
24 | "repository": "https://github.com/EndLess728/expo-check-installed-apps",
25 | "bugs": {
26 | "url": "https://github.com/EndLess728/expo-check-installed-apps/issues"
27 | },
28 | "author": "Mantu (https://github.com/EndLess728)",
29 | "license": "MIT",
30 | "homepage": "https://github.com/EndLess728/expo-check-installed-apps#readme",
31 | "dependencies": {},
32 | "devDependencies": {
33 | "@types/react": "^18.0.25",
34 | "expo-module-scripts": "^3.5.2",
35 | "expo-modules-core": "^1.12.24"
36 | },
37 | "peerDependencies": {
38 | "expo": "*",
39 | "react": "*",
40 | "react-native": "*"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/PrivacyInfo.xcprivacy:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NSPrivacyAccessedAPITypes
6 |
7 |
8 | NSPrivacyAccessedAPIType
9 | NSPrivacyAccessedAPICategoryUserDefaults
10 | NSPrivacyAccessedAPITypeReasons
11 |
12 | CA92.1
13 |
14 |
15 |
16 | NSPrivacyAccessedAPIType
17 | NSPrivacyAccessedAPICategoryFileTimestamp
18 | NSPrivacyAccessedAPITypeReasons
19 |
20 | 0A2A.1
21 | 3B52.1
22 | C617.1
23 |
24 |
25 |
26 | NSPrivacyAccessedAPIType
27 | NSPrivacyAccessedAPICategoryDiskSpace
28 | NSPrivacyAccessedAPITypeReasons
29 |
30 | E174.1
31 | 85F4.1
32 |
33 |
34 |
35 | NSPrivacyAccessedAPIType
36 | NSPrivacyAccessedAPICategorySystemBootTime
37 | NSPrivacyAccessedAPITypeReasons
38 |
39 | 35F9.1
40 |
41 |
42 |
43 | NSPrivacyCollectedDataTypes
44 |
45 | NSPrivacyTracking
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/example/App.tsx:
--------------------------------------------------------------------------------
1 | import { Platform, StyleSheet, Text, View } from "react-native";
2 | import { checkInstalledApps, hello } from "expo-check-installed-apps";
3 | import { useEffect, useState } from "react";
4 |
5 | export default function App() {
6 | const [result, setResult] = useState({});
7 | const packageNames: string[] =
8 | Platform.select({
9 | android: [
10 | "com.google.android.apps.fitness",
11 | "com.android.chrome",
12 | "com.expo.flash.qr",
13 | ],
14 | ios: ["fb://", "twitter://"],
15 | }) || [];
16 |
17 | useEffect(() => {
18 | const checkInstalled = async () => {
19 | const checkInstalledAppsResult = await checkInstalledApps(packageNames);
20 | setResult(checkInstalledAppsResult);
21 | console.log(
22 | "🚀 ~ file: App.tsx:15 ~ checkInstalled ~ checkApp ===> ",
23 | checkInstalledAppsResult
24 | );
25 | };
26 | checkInstalled();
27 | }, []);
28 |
29 | return (
30 |
31 | {hello()}
32 |
33 | {JSON.stringify(result, null, 2)} {/* Pretty print JSON */}
34 |
35 |
36 | );
37 | }
38 |
39 | const styles = StyleSheet.create({
40 | container: {
41 | flex: 1,
42 | backgroundColor: "#fff",
43 | alignItems: "center",
44 | justifyContent: "center",
45 | padding: 40,
46 | },
47 | resultText: {
48 | fontWeight: "bold",
49 | fontSize: 15,
50 | marginTop: 20,
51 | },
52 | });
53 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | group = 'expo.modules.checkinstalledapps'
4 | version = '0.1.0'
5 |
6 | def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
7 | apply from: expoModulesCorePlugin
8 | applyKotlinExpoModulesCorePlugin()
9 | useCoreDependencies()
10 | useExpoPublishing()
11 |
12 | // If you want to use the managed Android SDK versions from expo-modules-core, set this to true.
13 | // The Android SDK versions will be bumped from time to time in SDK releases and may introduce breaking changes in your module code.
14 | // Most of the time, you may like to manage the Android SDK versions yourself.
15 | def useManagedAndroidSdkVersions = false
16 | if (useManagedAndroidSdkVersions) {
17 | useDefaultAndroidSdkVersions()
18 | } else {
19 | buildscript {
20 | // Simple helper that allows the root project to override versions declared by this library.
21 | ext.safeExtGet = { prop, fallback ->
22 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
23 | }
24 | }
25 | project.android {
26 | compileSdkVersion safeExtGet("compileSdkVersion", 34)
27 | defaultConfig {
28 | minSdkVersion safeExtGet("minSdkVersion", 21)
29 | targetSdkVersion safeExtGet("targetSdkVersion", 34)
30 | }
31 | }
32 | }
33 |
34 | android {
35 | namespace "expo.modules.checkinstalledapps"
36 | defaultConfig {
37 | versionCode 1
38 | versionName "0.1.0"
39 | }
40 | lintOptions {
41 | abortOnError false
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/example/android/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | ext {
5 | buildToolsVersion = findProperty('android.buildToolsVersion') ?: '34.0.0'
6 | minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '23')
7 | compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '34')
8 | targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '34')
9 | kotlinVersion = findProperty('android.kotlinVersion') ?: '1.9.23'
10 |
11 | ndkVersion = "26.1.10909125"
12 | }
13 | repositories {
14 | google()
15 | mavenCentral()
16 | }
17 | dependencies {
18 | classpath('com.android.tools.build:gradle')
19 | classpath('com.facebook.react:react-native-gradle-plugin')
20 | classpath('org.jetbrains.kotlin:kotlin-gradle-plugin')
21 | }
22 | }
23 |
24 | apply plugin: "com.facebook.react.rootproject"
25 |
26 | allprojects {
27 | repositories {
28 | maven {
29 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
30 | url(new File(['node', '--print', "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), '../android'))
31 | }
32 | maven {
33 | // Android JSC is installed from npm
34 | url(new File(['node', '--print', "require.resolve('jsc-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), '../dist'))
35 | }
36 |
37 | google()
38 | mavenCentral()
39 | maven { url 'https://www.jitpack.io' }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable/rn_edit_text_material.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
22 |
23 |
24 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/ios/ExpoCheckInstalledAppsModule.swift:
--------------------------------------------------------------------------------
1 | import ExpoModulesCore
2 |
3 | public class ExpoCheckInstalledAppsModule: Module {
4 | // Each module class must implement the definition function. The definition consists of components
5 | // that describes the module's functionality and behavior.
6 | // See https://docs.expo.dev/modules/module-api for more details about available components.
7 | public func definition() -> ModuleDefinition {
8 | // Sets the name of the module that JavaScript code will use to refer to the module. Takes a string as an argument.
9 | // Can be inferred from module's class name, but it's recommended to set it explicitly for clarity.
10 | // The module will be accessible from `requireNativeModule('ExpoCheckInstalledApps')` in JavaScript.
11 | Name("ExpoCheckInstalledApps")
12 |
13 | // Sets constant properties on the module. Can take a dictionary or a closure that returns a dictionary.
14 | Constants([
15 | "PI": Double.pi
16 | ])
17 |
18 | // Defines event names that the module can send to JavaScript.
19 | Events("onChange")
20 |
21 | // Defines a JavaScript synchronous function that runs the native code on the JavaScript thread.
22 | Function("hello") {
23 | return "Hello world! 👋"
24 | }
25 |
26 | // Defines a JavaScript function that always returns a Promise and whose native code
27 | // is by default dispatched on the different thread than the JavaScript runtime runs on.
28 | AsyncFunction("setValueAsync") { (value: String) in
29 | // Send an event to JavaScript.
30 | self.sendEvent("onChange", [
31 | "value": value
32 | ])
33 | }
34 |
35 | AsyncFunction("checkAppsInstalled") { (packageNames: [String], promise: Promise) in
36 | var result: [String: Bool] = [:]
37 |
38 | for packageName in packageNames {
39 | if let url = URL(string: packageName), UIApplication.shared.canOpenURL(url) {
40 | result[packageName] = true
41 | } else {
42 | result[packageName] = false
43 | }
44 | }
45 |
46 | promise.resolve(result)
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/example/android/app/src/main/java/expo/modules/checkinstalledapps/example/MainApplication.kt:
--------------------------------------------------------------------------------
1 | package expo.modules.checkinstalledapps.example
2 |
3 | import android.app.Application
4 | import android.content.res.Configuration
5 |
6 | import com.facebook.react.PackageList
7 | import com.facebook.react.ReactApplication
8 | import com.facebook.react.ReactNativeHost
9 | import com.facebook.react.ReactPackage
10 | import com.facebook.react.ReactHost
11 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
12 | import com.facebook.react.defaults.DefaultReactNativeHost
13 | import com.facebook.soloader.SoLoader
14 |
15 | import expo.modules.ApplicationLifecycleDispatcher
16 | import expo.modules.ReactNativeHostWrapper
17 |
18 | class MainApplication : Application(), ReactApplication {
19 |
20 | override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(
21 | this,
22 | object : DefaultReactNativeHost(this) {
23 | override fun getPackages(): List {
24 | // Packages that cannot be autolinked yet can be added manually here, for example:
25 | // packages.add(new MyReactNativePackage());
26 | return PackageList(this).packages
27 | }
28 |
29 | override fun getJSMainModuleName(): String = ".expo/.virtual-metro-entry"
30 |
31 | override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG
32 |
33 | override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
34 | override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
35 | }
36 | )
37 |
38 | override val reactHost: ReactHost
39 | get() = ReactNativeHostWrapper.createReactHost(applicationContext, reactNativeHost)
40 |
41 | override fun onCreate() {
42 | super.onCreate()
43 | SoLoader.init(this, false)
44 | if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
45 | // If you opted-in for the New Architecture, we load the native entry point for this app.
46 | load()
47 | }
48 | ApplicationLifecycleDispatcher.onApplicationCreate(this)
49 | }
50 |
51 | override fun onConfigurationChanged(newConfig: Configuration) {
52 | super.onConfigurationChanged(newConfig)
53 | ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/example/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/.github/workflows/RELEASE_AND_PUBLISH_TO_NPM.yml:
--------------------------------------------------------------------------------
1 | name: Publish to NPM and Release on Github
2 | on:
3 | workflow_dispatch: # Allows manual triggering of the workflow
4 |
5 | permissions:
6 | contents: write
7 |
8 | jobs:
9 | release:
10 | name: Bump Version, Build, and Publish to NPM
11 | runs-on: ubuntu-latest
12 |
13 | steps:
14 | - name: Checkout code
15 | uses: actions/checkout@v3
16 |
17 | - name: Set up Node.js
18 | uses: actions/setup-node@v3
19 | with:
20 | node-version: 21
21 | cache: "npm"
22 | registry-url: "https://registry.npmjs.org"
23 |
24 | - name: Install dependencies
25 | run: npm install
26 |
27 | - name: Bump Version
28 | id: bump-version
29 | run: |
30 | NEW_VERSION=$(npm version patch --no-git-tag-version)
31 | echo "NEW_VERSION=${NEW_VERSION}" >> $GITHUB_ENV
32 | echo "Updated version to ${NEW_VERSION}"
33 |
34 | - name: Commit and Push New Version
35 | env:
36 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
37 | run: |
38 | git config user.name "GitHub Actions"
39 | git config user.email "actions@github.com"
40 | git add package.json package-lock.json
41 | git commit -m "chore: bump version to ${{ env.NEW_VERSION }}"
42 | git push origin main
43 |
44 | - name: Build package
45 | run: npm run build
46 |
47 | - name: Publish to npm
48 | env:
49 | NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
50 | run: npm publish
51 |
52 | - name: Create GitHub Release
53 | uses: softprops/action-gh-release@v2
54 | with:
55 | tag_name: "${{ env.NEW_VERSION }}" # Use the version passed from the build job
56 | name: "Release ${{ env.NEW_VERSION }}" # Name the release with the version.
57 | generate_release_notes: true # Generate release notes
58 | draft: false # The release will not be a draft.
59 | prerelease: false # The release will not be a pre-release.
60 | body: |
61 | New release of **expo-check-installed-apps** is available.
62 | - Version: ${{ env.NEW_VERSION }}
63 | - [Explore the new release on NPM](https://www.npmjs.com/package/expo-check-installed-apps)
64 | env:
65 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
66 |
--------------------------------------------------------------------------------
/example/android/app/src/main/java/expo/modules/checkinstalledapps/example/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package expo.modules.checkinstalledapps.example
2 |
3 | import android.os.Build
4 | import android.os.Bundle
5 |
6 | import com.facebook.react.ReactActivity
7 | import com.facebook.react.ReactActivityDelegate
8 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
9 | import com.facebook.react.defaults.DefaultReactActivityDelegate
10 |
11 | import expo.modules.ReactActivityDelegateWrapper
12 |
13 | class MainActivity : ReactActivity() {
14 | override fun onCreate(savedInstanceState: Bundle?) {
15 | // Set the theme to AppTheme BEFORE onCreate to support
16 | // coloring the background, status bar, and navigation bar.
17 | // This is required for expo-splash-screen.
18 | setTheme(R.style.AppTheme);
19 | super.onCreate(null)
20 | }
21 |
22 | /**
23 | * Returns the name of the main component registered from JavaScript. This is used to schedule
24 | * rendering of the component.
25 | */
26 | override fun getMainComponentName(): String = "main"
27 |
28 | /**
29 | * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]
30 | * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]
31 | */
32 | override fun createReactActivityDelegate(): ReactActivityDelegate {
33 | return ReactActivityDelegateWrapper(
34 | this,
35 | BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,
36 | object : DefaultReactActivityDelegate(
37 | this,
38 | mainComponentName,
39 | fabricEnabled
40 | ){})
41 | }
42 |
43 | /**
44 | * Align the back button behavior with Android S
45 | * where moving root activities to background instead of finishing activities.
46 | * @see onBackPressed
47 | */
48 | override fun invokeDefaultOnBackPressed() {
49 | if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {
50 | if (!moveTaskToBack(false)) {
51 | // For non-root activities, use the default implementation to finish them.
52 | super.invokeDefaultOnBackPressed()
53 | }
54 | return
55 | }
56 |
57 | // Use the default back button implementation on Android S
58 | // because it's doing more than [Activity.moveTaskToBack] in fact.
59 | super.invokeDefaultOnBackPressed()
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/example/android/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
13 | org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
19 |
20 | # AndroidX package structure to make it clearer which packages are bundled with the
21 | # Android operating system, and which are packaged with your app's APK
22 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
23 | android.useAndroidX=true
24 |
25 | # Automatically convert third-party libraries to use AndroidX
26 | android.enableJetifier=true
27 |
28 | # Enable AAPT2 PNG crunching
29 | android.enablePngCrunchInReleaseBuilds=true
30 |
31 | # Use this property to specify which architecture you want to build.
32 | # You can also override it from the CLI using
33 | # ./gradlew -PreactNativeArchitectures=x86_64
34 | reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
35 |
36 | # Use this property to enable support to the new architecture.
37 | # This will allow you to use TurboModules and the Fabric render in
38 | # your application. You should enable this flag either if you want
39 | # to write custom TurboModules/Fabric components OR use libraries that
40 | # are providing them.
41 | newArchEnabled=false
42 |
43 | # Use this property to enable or disable the Hermes JS engine.
44 | # If set to false, you will be using JSC instead.
45 | hermesEnabled=true
46 |
47 | # Enable GIF support in React Native images (~200 B increase)
48 | expo.gif.enabled=true
49 | # Enable webp support in React Native images (~85 KB increase)
50 | expo.webp.enabled=true
51 | # Enable animated webp support (~3.4 MB increase)
52 | # Disabled by default because iOS doesn't support animated webp
53 | expo.webp.animated=false
54 |
55 | # Enable network inspector
56 | EX_DEV_CLIENT_NETWORK_INSPECTOR=true
57 |
58 | # Use legacy packaging to compress native libraries in the resulting APK.
59 | expo.useLegacyPackaging=false
60 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CADisableMinimumFrameDurationOnPhone
6 |
7 | CFBundleDevelopmentRegion
8 | $(DEVELOPMENT_LANGUAGE)
9 | CFBundleDisplayName
10 | expo-check-installed-apps-example
11 | CFBundleExecutable
12 | $(EXECUTABLE_NAME)
13 | CFBundleIdentifier
14 | $(PRODUCT_BUNDLE_IDENTIFIER)
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | $(PRODUCT_NAME)
19 | CFBundlePackageType
20 | $(PRODUCT_BUNDLE_PACKAGE_TYPE)
21 | CFBundleShortVersionString
22 | 1.0.0
23 | CFBundleSignature
24 | ????
25 | CFBundleURLTypes
26 |
27 |
28 | CFBundleURLSchemes
29 |
30 | expo.modules.checkinstalledapps.example
31 |
32 |
33 |
34 | CFBundleVersion
35 | 1
36 | LSApplicationQueriesSchemes
37 |
38 | fb
39 | twitter
40 |
41 | LSRequiresIPhoneOS
42 |
43 | NSAppTransportSecurity
44 |
45 | NSAllowsArbitraryLoads
46 |
47 | NSAllowsLocalNetworking
48 |
49 |
50 | UILaunchStoryboardName
51 | SplashScreen
52 | UIRequiredDeviceCapabilities
53 |
54 | arm64
55 |
56 | UIRequiresFullScreen
57 |
58 | UIStatusBarStyle
59 | UIStatusBarStyleDefault
60 | UISupportedInterfaceOrientations
61 |
62 | UIInterfaceOrientationPortrait
63 | UIInterfaceOrientationPortraitUpsideDown
64 |
65 | UISupportedInterfaceOrientations~ipad
66 |
67 | UIInterfaceOrientationPortrait
68 | UIInterfaceOrientationPortraitUpsideDown
69 | UIInterfaceOrientationLandscapeLeft
70 | UIInterfaceOrientationLandscapeRight
71 |
72 | UIUserInterfaceStyle
73 | Light
74 | UIViewControllerBasedStatusBarAppearance
75 |
76 |
77 |
--------------------------------------------------------------------------------
/example/android/settings.gradle:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | def version = providers.exec {
3 | commandLine("node", "-e", "console.log(require('react-native/package.json').version);")
4 | }.standardOutput.asText.get().trim()
5 | def (_, reactNativeMinor, reactNativePatch) = version.split("-")[0].tokenize('.').collect { it.toInteger() }
6 |
7 | includeBuild(new File(["node", "--print", "require.resolve('@react-native/gradle-plugin/package.json')"].execute(null, rootDir).text.trim()).getParentFile().toString())
8 | if(reactNativeMinor == 74 && reactNativePatch <= 3){
9 | includeBuild("react-settings-plugin")
10 | }
11 | }
12 |
13 | plugins { id("com.facebook.react.settings") }
14 |
15 | def getRNMinorVersion() {
16 | def version = providers.exec {
17 | commandLine("node", "-e", "console.log(require('react-native/package.json').version);")
18 | }.standardOutput.asText.get().trim()
19 |
20 | def coreVersion = version.split("-")[0]
21 | def (major, minor, patch) = coreVersion.tokenize('.').collect { it.toInteger() }
22 |
23 | return minor
24 | }
25 |
26 | if (getRNMinorVersion() >= 75) {
27 | extensions.configure(com.facebook.react.ReactSettingsExtension) { ex ->
28 | if (System.getenv('EXPO_UNSTABLE_CORE_AUTOLINKING') == '1') {
29 | println('\u001B[32mUsing expo-modules-autolinking as core autolinking source\u001B[0m')
30 | def command = [
31 | 'node',
32 | '--no-warnings',
33 | '--eval',
34 | 'require(require.resolve(\'expo-modules-autolinking\', { paths: [require.resolve(\'expo/package.json\')] }))(process.argv.slice(1))',
35 | 'react-native-config',
36 | '--json',
37 | '--platform',
38 | 'android'
39 | ].toList()
40 | ex.autolinkLibrariesFromCommand(command)
41 | } else {
42 | ex.autolinkLibrariesFromCommand()
43 | }
44 | }
45 | }
46 |
47 | rootProject.name = 'expo-check-installed-apps-example'
48 |
49 | dependencyResolutionManagement {
50 | versionCatalogs {
51 | reactAndroidLibs {
52 | from(files(new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), "../gradle/libs.versions.toml")))
53 | }
54 | }
55 | }
56 |
57 | apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle");
58 | useExpoModules()
59 |
60 | if (getRNMinorVersion() < 75) {
61 | apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), "../native_modules.gradle");
62 | applyNativeModulesSettingsGradle(settings)
63 | }
64 |
65 | include ':app'
66 | includeBuild(new File(["node", "--print", "require.resolve('@react-native/gradle-plugin/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim()).getParentFile())
67 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/AppDelegate.mm:
--------------------------------------------------------------------------------
1 | #import "AppDelegate.h"
2 |
3 | #import
4 | #import
5 |
6 | @implementation AppDelegate
7 |
8 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
9 | {
10 | self.moduleName = @"main";
11 |
12 | // You can add your custom initial props in the dictionary below.
13 | // They will be passed down to the ViewController used by React Native.
14 | self.initialProps = @{};
15 |
16 | return [super application:application didFinishLaunchingWithOptions:launchOptions];
17 | }
18 |
19 | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
20 | {
21 | return [self bundleURL];
22 | }
23 |
24 | - (NSURL *)bundleURL
25 | {
26 | #if DEBUG
27 | return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@".expo/.virtual-metro-entry"];
28 | #else
29 | return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
30 | #endif
31 | }
32 |
33 | // Linking API
34 | - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options {
35 | return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options];
36 | }
37 |
38 | // Universal Links
39 | - (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray> * _Nullable))restorationHandler {
40 | BOOL result = [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
41 | return [super application:application continueUserActivity:userActivity restorationHandler:restorationHandler] || result;
42 | }
43 |
44 | // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
45 | - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
46 | {
47 | return [super application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
48 | }
49 |
50 | // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
51 | - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
52 | {
53 | return [super application:application didFailToRegisterForRemoteNotificationsWithError:error];
54 | }
55 |
56 | // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
57 | - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
58 | {
59 | return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
60 | }
61 |
62 | @end
63 |
--------------------------------------------------------------------------------
/android/src/main/java/expo/modules/checkinstalledapps/ExpoCheckInstalledAppsModule.kt:
--------------------------------------------------------------------------------
1 | package expo.modules.checkinstalledapps
2 |
3 | import expo.modules.kotlin.modules.Module
4 | import expo.modules.kotlin.modules.ModuleDefinition
5 | import android.content.pm.PackageManager
6 | import expo.modules.kotlin.Promise
7 |
8 | class ExpoCheckInstalledAppsModule : Module() {
9 | // Each module class must implement the definition function. The definition consists of components
10 | // that describes the module's functionality and behavior.
11 | // See https://docs.expo.dev/modules/module-api for more details about available components.
12 | override fun definition() = ModuleDefinition {
13 | // Sets the name of the module that JavaScript code will use to refer to the module. Takes a string as an argument.
14 | // Can be inferred from module's class name, but it's recommended to set it explicitly for clarity.
15 | // The module will be accessible from `requireNativeModule('ExpoCheckInstalledApps')` in JavaScript.
16 | Name("ExpoCheckInstalledApps")
17 |
18 | // Sets constant properties on the module. Can take a dictionary or a closure that returns a dictionary.
19 | Constants(
20 | "PI" to Math.PI
21 | )
22 |
23 | // Defines event names that the module can send to JavaScript.
24 | Events("onChange")
25 |
26 | // Defines a JavaScript synchronous function that runs the native code on the JavaScript thread.
27 | Function("hello") {
28 | "Hello world! I am android👋"
29 | }
30 |
31 | // Defines a JavaScript function that always returns a Promise and whose native code
32 | // is by default dispatched on the different thread than the JavaScript runtime runs on.
33 | AsyncFunction("setValueAsync") { value: String ->
34 | // Send an event to JavaScript.
35 | sendEvent("onChange", mapOf(
36 | "value" to value
37 | ))
38 | }
39 |
40 | // An asynchronous function that takes a list of package names and returns their installation status.
41 | AsyncFunction("checkAppsInstalled") { packageNames: Array, promise: Promise ->
42 | // Call the function to check installed apps and return the result
43 | checkAppsInstalled(packageNames, promise)
44 | }
45 |
46 | }
47 |
48 | private val context
49 | get() = requireNotNull(appContext.reactContext)
50 |
51 | // Function to check if multiple apps are installed and resolve the promise with the result
52 | private fun checkAppsInstalled(packageNames: Array, promise: Promise) {
53 | val pm: PackageManager = context.packageManager
54 | val result = mutableMapOf()
55 |
56 | // Iterate through the package names and check if each app is installed
57 | for (packageName in packageNames) {
58 | try {
59 | pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES)
60 | result[packageName] = true // App is installed
61 | } catch (e: PackageManager.NameNotFoundException) {
62 | result[packageName] = false // App is not installed
63 | }
64 | }
65 |
66 | // Resolve the promise with the map of package names and installation statuses
67 | promise.resolve(result)
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/example/android/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem https://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%"=="" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%"=="" set DIRNAME=.
29 | @rem This is normally unused
30 | set APP_BASE_NAME=%~n0
31 | set APP_HOME=%DIRNAME%
32 |
33 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
34 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
35 |
36 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
37 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
38 |
39 | @rem Find java.exe
40 | if defined JAVA_HOME goto findJavaFromJavaHome
41 |
42 | set JAVA_EXE=java.exe
43 | %JAVA_EXE% -version >NUL 2>&1
44 | if %ERRORLEVEL% equ 0 goto execute
45 |
46 | echo. 1>&2
47 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
48 | echo. 1>&2
49 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2
50 | echo location of your Java installation. 1>&2
51 |
52 | goto fail
53 |
54 | :findJavaFromJavaHome
55 | set JAVA_HOME=%JAVA_HOME:"=%
56 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
57 |
58 | if exist "%JAVA_EXE%" goto execute
59 |
60 | echo. 1>&2
61 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
62 | echo. 1>&2
63 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2
64 | echo location of your Java installation. 1>&2
65 |
66 | goto fail
67 |
68 | :execute
69 | @rem Setup the command line
70 |
71 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
72 |
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if %ERRORLEVEL% equ 0 goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | set EXIT_CODE=%ERRORLEVEL%
85 | if %EXIT_CODE% equ 0 set EXIT_CODE=1
86 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
87 | exit /b %EXIT_CODE%
88 |
89 | :mainEnd
90 | if "%OS%"=="Windows_NT" endlocal
91 |
92 | :omega
93 |
--------------------------------------------------------------------------------
/example/ios/Podfile:
--------------------------------------------------------------------------------
1 | require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking")
2 | require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods")
3 |
4 | require 'json'
5 | podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}
6 |
7 | ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0'
8 | ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR']
9 |
10 | use_autolinking_method_symbol = ('use' + '_native' + '_modules!').to_sym
11 | origin_autolinking_method = self.method(use_autolinking_method_symbol)
12 | self.define_singleton_method(use_autolinking_method_symbol) do |*args|
13 | if ENV['EXPO_UNSTABLE_CORE_AUTOLINKING'] == '1'
14 | Pod::UI.puts('Using expo-modules-autolinking as core autolinking source'.green)
15 | config_command = [
16 | 'node',
17 | '--no-warnings',
18 | '--eval',
19 | 'require(require.resolve(\'expo-modules-autolinking\', { paths: [require.resolve(\'expo/package.json\')] }))(process.argv.slice(1))',
20 | 'react-native-config',
21 | '--json',
22 | '--platform',
23 | 'ios'
24 | ]
25 | origin_autolinking_method.call(config_command)
26 | else
27 | origin_autolinking_method.call()
28 | end
29 | end
30 |
31 | platform :ios, podfile_properties['ios.deploymentTarget'] || '13.4'
32 | install! 'cocoapods',
33 | :deterministic_uuids => false
34 |
35 | prepare_react_native_project!
36 |
37 | target 'expocheckinstalledappsexample' do
38 | use_expo_modules!
39 | config = use_native_modules!
40 |
41 | use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']
42 | use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS']
43 |
44 | use_react_native!(
45 | :path => config[:reactNativePath],
46 | :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes',
47 | # An absolute path to your application root.
48 | :app_path => "#{Pod::Config.instance.installation_root}/..",
49 | :privacy_file_aggregation_enabled => podfile_properties['apple.privacyManifestAggregationEnabled'] != 'false',
50 | )
51 |
52 | post_install do |installer|
53 | react_native_post_install(
54 | installer,
55 | config[:reactNativePath],
56 | :mac_catalyst_enabled => false,
57 | :ccache_enabled => podfile_properties['apple.ccacheEnabled'] == 'true',
58 | )
59 |
60 | # This is necessary for Xcode 14, because it signs resource bundles by default
61 | # when building for devices.
62 | installer.target_installation_results.pod_target_installation_results
63 | .each do |pod_name, target_installation_result|
64 | target_installation_result.resource_bundle_targets.each do |resource_bundle_target|
65 | resource_bundle_target.build_configurations.each do |config|
66 | config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
67 | end
68 | end
69 | end
70 | end
71 |
72 | post_integrate do |installer|
73 | begin
74 | expo_patch_react_imports!(installer)
75 | rescue => e
76 | Pod::UI.warn e
77 | end
78 | end
79 | end
80 |
--------------------------------------------------------------------------------
/plugin/src/index.ts:
--------------------------------------------------------------------------------
1 | import {
2 | withAndroidManifest,
3 | withInfoPlist,
4 | ConfigPlugin,
5 | } from "@expo/config-plugins";
6 |
7 | interface PluginOptions {
8 | android?: string[];
9 | ios?: string[];
10 | }
11 |
12 | const withAndroid: ConfigPlugin = (config, { android }) => {
13 | config = withAndroidManifest(config, (config) => {
14 | const manifest = config.modResults.manifest;
15 |
16 | // Ensure `manifest` exists and is valid
17 | if (!manifest) {
18 | throw new Error("AndroidManifest.xml is invalid or missing!");
19 | }
20 |
21 | // Ensure `queries` exists
22 | if (!manifest.queries) {
23 | manifest.queries = [];
24 | }
25 |
26 | // Get the first `` block or create one if none exists
27 | let queriesBlock = manifest.queries.find((query) => query.package);
28 |
29 | if (!queriesBlock) {
30 | // If no `` block exists, create one
31 | queriesBlock = { package: [] };
32 | manifest.queries.push(queriesBlock);
33 | }
34 |
35 | // Ensure `queriesBlock.package` exists
36 | if (!queriesBlock.package) {
37 | queriesBlock.package = [];
38 | }
39 |
40 | // Extract current packages from the manifest
41 | const currentPackages = new Set(
42 | queriesBlock.package?.map((pkg: any) => pkg.$["android:name"]) || []
43 | );
44 |
45 | // Convert the `android` array from `app.json` into a Set for easy comparison
46 | const desiredPackages = new Set(android || []);
47 |
48 | // Determine packages to add and remove
49 | const packagesToAdd = Array.from(desiredPackages).filter(
50 | (pkg) => !currentPackages.has(pkg)
51 | );
52 | const packagesToRemove = Array.from(currentPackages).filter(
53 | (pkg) => !desiredPackages.has(pkg)
54 | );
55 |
56 | // Add new packages
57 | packagesToAdd.forEach((pkg) => {
58 | queriesBlock!.package!.push({ $: { "android:name": pkg } });
59 | });
60 |
61 | // Remove packages no longer in `app.json`
62 | queriesBlock.package = queriesBlock.package!.filter(
63 | (pkg: any) => !packagesToRemove.includes(pkg.$["android:name"])
64 | );
65 |
66 | return config;
67 | });
68 |
69 | return config;
70 | };
71 |
72 | const withIos: ConfigPlugin = (config, { ios }) => {
73 | if (!ios || ios.length === 0) {
74 | return config;
75 | }
76 |
77 | config = withInfoPlist(config, (config) => {
78 | const plist = config.modResults;
79 |
80 | // Ensure `LSApplicationQueriesSchemes` exists
81 | if (!plist.LSApplicationQueriesSchemes) {
82 | plist.LSApplicationQueriesSchemes = [];
83 | }
84 |
85 | // Avoid duplicates by adding only new schemes
86 | plist.LSApplicationQueriesSchemes = Array.from(
87 | new Set([...plist.LSApplicationQueriesSchemes, ...ios])
88 | );
89 |
90 | return config;
91 | });
92 |
93 | return config;
94 | };
95 |
96 | /**
97 | * Apply all above plugins
98 | */
99 | const withExpoCheckInstalledApps: ConfigPlugin = (
100 | config,
101 | opts
102 | ) => {
103 | config = withAndroid(config, opts);
104 | config = withIos(config, opts);
105 | return config;
106 | };
107 |
108 | export default withExpoCheckInstalledApps;
109 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample.xcodeproj/xcshareddata/xcschemes/expocheckinstalledappsexample.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
42 |
43 |
53 |
55 |
61 |
62 |
63 |
64 |
70 |
72 |
78 |
79 |
80 |
81 |
83 |
84 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample/SplashScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Expo Check Installed Apps
2 |
3 |
4 |

5 |

6 |
7 |
8 |
9 | A **config plugin** for Expo to check for the existence of installed apps on Android and iOS.
10 |
11 | > **Note:** This library supports **Expo SDK 51 and above**.
12 |
13 | ---
14 |
15 | ## Table of Contents
16 |
17 | - [Installation](#installation)
18 | - [For Managed Expo Projects](#installation-in-managed-expo-projects)
19 | - [For Bare React Native Projects](#installation-in-bare-react-native-projects)
20 | - [Setup](#setup)
21 | - [Automatic Configuration](#automatic-configuration)
22 | - [Manual Configuration](#manual-configuration)
23 | - [API Documentation](#api-documentation)
24 | - [`checkInstalledApps`](#checkinstalledapps)
25 | - [Example Usage](#example-usage)
26 | - [Contributing](#contributing)
27 | - [Support the Project](#support-the-project)
28 |
29 | ---
30 |
31 | ## Installation
32 |
33 | You can find the package on npm: [expo-check-installed-apps](https://www.npmjs.com/package/expo-check-installed-apps).
34 |
35 | ### Installation in Managed Expo Projects
36 |
37 | For [managed Expo projects](https://docs.expo.dev/archive/managed-vs-bare/), follow the installation instructions in the [API documentation for the latest stable release](https://docs.expo.dev/versions/latest/sdk/android-check-installed-apps/).
38 |
39 | > If documentation for managed projects is unavailable, this library may not yet be supported within managed workflows and is likely to be included in an upcoming Expo SDK release.
40 |
41 | ### Installation in Bare React Native Projects
42 |
43 | For bare React Native projects, ensure you have [installed and configured the `expo` package](https://docs.expo.dev/bare/installing-expo-modules/) before proceeding.
44 |
45 | Install the package via npm:
46 |
47 | ```bash
48 | npm install expo-check-installed-apps
49 | ```
50 |
51 | ---
52 |
53 | ## Setup
54 |
55 | ### Automatic Configuration
56 |
57 | If using Expo's **prebuild method**, you can configure the plugin automatically in your `app.json` or `app.config.js` file. Specify the package names and URL schemes for the apps you want to check:
58 |
59 | ```json
60 | {
61 | "expo": {
62 | "plugins": [
63 | [
64 | "expo-check-installed-apps",
65 | {
66 | "android": ["com.facebook.katana", "com.twitter.android"],
67 | "ios": ["fb", "twitter"]
68 | }
69 | ]
70 | ]
71 | }
72 | }
73 | ```
74 |
75 | ### Manual Configuration
76 |
77 | If you are not using `app.json` or `app.config.js`, you'll need to manually update your native project files.
78 |
79 | #### Android
80 |
81 | Add the package names to your `AndroidManifest.xml`:
82 |
83 | ```xml
84 |
85 |
86 |
87 |
88 |
89 |
90 | ```
91 |
92 | #### iOS
93 |
94 | Add the URL schemes to your `Info.plist`:
95 |
96 | ```xml
97 | LSApplicationQueriesSchemes
98 |
99 | fb
100 | twitter
101 |
102 | ```
103 |
104 | ---
105 |
106 | ## API Documentation
107 |
108 | ### `checkInstalledApps`
109 |
110 | Checks whether specific apps are installed on the user's device.
111 |
112 | #### Parameters
113 |
114 | - **`packageNames`** (`Array`):
115 | An array of package names (for Android) or URL schemes (for iOS) to check.
116 |
117 | #### Returns
118 |
119 | - **`Promise>`**:
120 | Resolves to an object where keys are package names or URL schemes, and values are booleans:
121 | - `true`: App is installed.
122 | - `false`: App is not installed.
123 |
124 | ---
125 |
126 | ## Example Usage
127 |
128 | ```typescript
129 | import { checkInstalledApps } from "expo-check-installed-apps";
130 | import { Platform } from "react-native";
131 |
132 | const packageNames: string[] =
133 | Platform.select({
134 | android: ["com.google.android.apps.fitness", "com.android.chrome"], // Use package name of android apps
135 | ios: ["fb://", "twitter://"], // Use proper url scheme of ios apps
136 | }) || [];
137 |
138 | checkInstalledApps(packageNames)
139 | .then((installedApps) => {
140 | console.log(installedApps);
141 | })
142 | .catch((error) => {
143 | console.error("Error checking installed apps:", error);
144 | });
145 | ```
146 |
147 | ### Example Response
148 |
149 | ```json
150 | {
151 | "com.google.android.apps.fitness": false,
152 | "com.android.chrome": true,
153 | "fb://": true,
154 | "twitter://": false
155 | }
156 | ```
157 |
158 | ---
159 |
160 | ## Contributing
161 |
162 | Contributions are welcome!
163 |
164 | ---
165 |
166 | ## Support the Project
167 |
168 | If you find this library helpful, consider supporting it:
169 |
170 | [](https://www.buymeacoffee.com/mantu.728)
171 | [](https://paypal.me/Monty728)
172 |
--------------------------------------------------------------------------------
/example/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: "com.android.application"
2 | apply plugin: "org.jetbrains.kotlin.android"
3 | apply plugin: "com.facebook.react"
4 |
5 | def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath()
6 |
7 | static def versionToNumber(major, minor, patch) {
8 | return patch * 100 + minor * 10000 + major * 1000000
9 | }
10 |
11 | def getRNVersion() {
12 | def version = providers.exec {
13 | workingDir(projectDir)
14 | commandLine("node", "-e", "console.log(require('react-native/package.json').version);")
15 | }.standardOutput.asText.get().trim()
16 |
17 | def coreVersion = version.split("-")[0]
18 | def (major, minor, patch) = coreVersion.tokenize('.').collect { it.toInteger() }
19 |
20 | return versionToNumber(
21 | major,
22 | minor,
23 | patch
24 | )
25 | }
26 | def rnVersion = getRNVersion()
27 |
28 | /**
29 | * This is the configuration block to customize your React Native Android app.
30 | * By default you don't need to apply any configuration, just uncomment the lines you need.
31 | */
32 | react {
33 | entryFile = file(["node", "-e", "require('expo/scripts/resolveAppEntry')", projectRoot, "android", "absolute"].execute(null, rootDir).text.trim())
34 | reactNativeDir = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()
35 | hermesCommand = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + "/sdks/hermesc/%OS-BIN%/hermesc"
36 | codegenDir = new File(["node", "--print", "require.resolve('@react-native/codegen/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()
37 |
38 | // Use Expo CLI to bundle the app, this ensures the Metro config
39 | // works correctly with Expo projects.
40 | cliFile = new File(["node", "--print", "require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })"].execute(null, rootDir).text.trim())
41 | bundleCommand = "export:embed"
42 |
43 | /* Folders */
44 | // The root of your project, i.e. where "package.json" lives. Default is '..'
45 | // root = file("../")
46 | // The folder where the react-native NPM package is. Default is ../node_modules/react-native
47 | // reactNativeDir = file("../node_modules/react-native")
48 | // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen
49 | // codegenDir = file("../node_modules/@react-native/codegen")
50 |
51 | /* Variants */
52 | // The list of variants to that are debuggable. For those we're going to
53 | // skip the bundling of the JS bundle and the assets. By default is just 'debug'.
54 | // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
55 | // debuggableVariants = ["liteDebug", "prodDebug"]
56 |
57 | /* Bundling */
58 | // A list containing the node command and its flags. Default is just 'node'.
59 | // nodeExecutableAndArgs = ["node"]
60 |
61 | //
62 | // The path to the CLI configuration file. Default is empty.
63 | // bundleConfig = file(../rn-cli.config.js)
64 | //
65 | // The name of the generated asset file containing your JS bundle
66 | // bundleAssetName = "MyApplication.android.bundle"
67 | //
68 | // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
69 | // entryFile = file("../js/MyApplication.android.js")
70 | //
71 | // A list of extra flags to pass to the 'bundle' commands.
72 | // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
73 | // extraPackagerArgs = []
74 |
75 | /* Hermes Commands */
76 | // The hermes compiler command to run. By default it is 'hermesc'
77 | // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
78 | //
79 | // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
80 | // hermesFlags = ["-O", "-output-source-map"]
81 |
82 | if (rnVersion >= versionToNumber(0, 75, 0)) {
83 | /* Autolinking */
84 | autolinkLibrariesWithApp()
85 | }
86 | }
87 |
88 | /**
89 | * Set this to true to Run Proguard on Release builds to minify the Java bytecode.
90 | */
91 | def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean()
92 |
93 | /**
94 | * The preferred build flavor of JavaScriptCore (JSC)
95 | *
96 | * For example, to use the international variant, you can use:
97 | * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
98 | *
99 | * The international variant includes ICU i18n library and necessary data
100 | * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
101 | * give correct results when using with locales other than en-US. Note that
102 | * this variant is about 6MiB larger per architecture than default.
103 | */
104 | def jscFlavor = 'org.webkit:android-jsc:+'
105 |
106 | android {
107 | ndkVersion rootProject.ext.ndkVersion
108 |
109 | buildToolsVersion rootProject.ext.buildToolsVersion
110 | compileSdk rootProject.ext.compileSdkVersion
111 |
112 | namespace 'expo.modules.checkinstalledapps.example'
113 | defaultConfig {
114 | applicationId 'expo.modules.checkinstalledapps.example'
115 | minSdkVersion rootProject.ext.minSdkVersion
116 | targetSdkVersion rootProject.ext.targetSdkVersion
117 | versionCode 1
118 | versionName "1.0.0"
119 | }
120 | signingConfigs {
121 | debug {
122 | storeFile file('debug.keystore')
123 | storePassword 'android'
124 | keyAlias 'androiddebugkey'
125 | keyPassword 'android'
126 | }
127 | }
128 | buildTypes {
129 | debug {
130 | signingConfig signingConfigs.debug
131 | }
132 | release {
133 | // Caution! In production, you need to generate your own keystore file.
134 | // see https://reactnative.dev/docs/signed-apk-android.
135 | signingConfig signingConfigs.debug
136 | shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false)
137 | minifyEnabled enableProguardInReleaseBuilds
138 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
139 | crunchPngs (findProperty('android.enablePngCrunchInReleaseBuilds')?.toBoolean() ?: true)
140 | }
141 | }
142 | packagingOptions {
143 | jniLibs {
144 | useLegacyPackaging (findProperty('expo.useLegacyPackaging')?.toBoolean() ?: false)
145 | }
146 | }
147 | }
148 |
149 | // Apply static values from `gradle.properties` to the `android.packagingOptions`
150 | // Accepts values in comma delimited lists, example:
151 | // android.packagingOptions.pickFirsts=/LICENSE,**/picasa.ini
152 | ["pickFirsts", "excludes", "merges", "doNotStrip"].each { prop ->
153 | // Split option: 'foo,bar' -> ['foo', 'bar']
154 | def options = (findProperty("android.packagingOptions.$prop") ?: "").split(",");
155 | // Trim all elements in place.
156 | for (i in 0.. 0) {
161 | println "android.packagingOptions.$prop += $options ($options.length)"
162 | // Ex: android.packagingOptions.pickFirsts += '**/SCCS/**'
163 | options.each {
164 | android.packagingOptions[prop] += it
165 | }
166 | }
167 | }
168 |
169 | dependencies {
170 | // The version of react-native is set by the React Native Gradle Plugin
171 | implementation("com.facebook.react:react-android")
172 |
173 | def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true";
174 | def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true";
175 | def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true";
176 |
177 | if (isGifEnabled) {
178 | // For animated gif support
179 | implementation("com.facebook.fresco:animated-gif:${reactAndroidLibs.versions.fresco.get()}")
180 | }
181 |
182 | if (isWebpEnabled) {
183 | // For webp support
184 | implementation("com.facebook.fresco:webpsupport:${reactAndroidLibs.versions.fresco.get()}")
185 | if (isWebpAnimatedEnabled) {
186 | // Animated webp support
187 | implementation("com.facebook.fresco:animated-webp:${reactAndroidLibs.versions.fresco.get()}")
188 | }
189 | }
190 |
191 | if (hermesEnabled.toBoolean()) {
192 | implementation("com.facebook.react:hermes-android")
193 | } else {
194 | implementation jscFlavor
195 | }
196 | }
197 |
198 | if (rnVersion < versionToNumber(0, 75, 0)) {
199 | apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), "../native_modules.gradle");
200 | applyNativeModulesAppBuildGradle(project)
201 | }
202 |
--------------------------------------------------------------------------------
/example/android/gradlew:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #
4 | # Copyright © 2015-2021 the original authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # https://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | #
21 | # Gradle start up script for POSIX generated by Gradle.
22 | #
23 | # Important for running:
24 | #
25 | # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
26 | # noncompliant, but you have some other compliant shell such as ksh or
27 | # bash, then to run this script, type that shell name before the whole
28 | # command line, like:
29 | #
30 | # ksh Gradle
31 | #
32 | # Busybox and similar reduced shells will NOT work, because this script
33 | # requires all of these POSIX shell features:
34 | # * functions;
35 | # * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
36 | # «${var#prefix}», «${var%suffix}», and «$( cmd )»;
37 | # * compound commands having a testable exit status, especially «case»;
38 | # * various built-in commands including «command», «set», and «ulimit».
39 | #
40 | # Important for patching:
41 | #
42 | # (2) This script targets any POSIX shell, so it avoids extensions provided
43 | # by Bash, Ksh, etc; in particular arrays are avoided.
44 | #
45 | # The "traditional" practice of packing multiple parameters into a
46 | # space-separated string is a well documented source of bugs and security
47 | # problems, so this is (mostly) avoided, by progressively accumulating
48 | # options in "$@", and eventually passing that to Java.
49 | #
50 | # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
51 | # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
52 | # see the in-line comments for details.
53 | #
54 | # There are tweaks for specific operating systems such as AIX, CygWin,
55 | # Darwin, MinGW, and NonStop.
56 | #
57 | # (3) This script is generated from the Groovy template
58 | # https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
59 | # within the Gradle project.
60 | #
61 | # You can find Gradle at https://github.com/gradle/gradle/.
62 | #
63 | ##############################################################################
64 |
65 | # Attempt to set APP_HOME
66 |
67 | # Resolve links: $0 may be a link
68 | app_path=$0
69 |
70 | # Need this for daisy-chained symlinks.
71 | while
72 | APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
73 | [ -h "$app_path" ]
74 | do
75 | ls=$( ls -ld "$app_path" )
76 | link=${ls#*' -> '}
77 | case $link in #(
78 | /*) app_path=$link ;; #(
79 | *) app_path=$APP_HOME$link ;;
80 | esac
81 | done
82 |
83 | # This is normally unused
84 | # shellcheck disable=SC2034
85 | APP_BASE_NAME=${0##*/}
86 | # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
87 | APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
88 |
89 | # Use the maximum available, or set MAX_FD != -1 to use that value.
90 | MAX_FD=maximum
91 |
92 | warn () {
93 | echo "$*"
94 | } >&2
95 |
96 | die () {
97 | echo
98 | echo "$*"
99 | echo
100 | exit 1
101 | } >&2
102 |
103 | # OS specific support (must be 'true' or 'false').
104 | cygwin=false
105 | msys=false
106 | darwin=false
107 | nonstop=false
108 | case "$( uname )" in #(
109 | CYGWIN* ) cygwin=true ;; #(
110 | Darwin* ) darwin=true ;; #(
111 | MSYS* | MINGW* ) msys=true ;; #(
112 | NONSTOP* ) nonstop=true ;;
113 | esac
114 |
115 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
116 |
117 |
118 | # Determine the Java command to use to start the JVM.
119 | if [ -n "$JAVA_HOME" ] ; then
120 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
121 | # IBM's JDK on AIX uses strange locations for the executables
122 | JAVACMD=$JAVA_HOME/jre/sh/java
123 | else
124 | JAVACMD=$JAVA_HOME/bin/java
125 | fi
126 | if [ ! -x "$JAVACMD" ] ; then
127 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
128 |
129 | Please set the JAVA_HOME variable in your environment to match the
130 | location of your Java installation."
131 | fi
132 | else
133 | JAVACMD=java
134 | if ! command -v java >/dev/null 2>&1
135 | then
136 | die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
137 |
138 | Please set the JAVA_HOME variable in your environment to match the
139 | location of your Java installation."
140 | fi
141 | fi
142 |
143 | # Increase the maximum file descriptors if we can.
144 | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
145 | case $MAX_FD in #(
146 | max*)
147 | # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
148 | # shellcheck disable=SC2039,SC3045
149 | MAX_FD=$( ulimit -H -n ) ||
150 | warn "Could not query maximum file descriptor limit"
151 | esac
152 | case $MAX_FD in #(
153 | '' | soft) :;; #(
154 | *)
155 | # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
156 | # shellcheck disable=SC2039,SC3045
157 | ulimit -n "$MAX_FD" ||
158 | warn "Could not set maximum file descriptor limit to $MAX_FD"
159 | esac
160 | fi
161 |
162 | # Collect all arguments for the java command, stacking in reverse order:
163 | # * args from the command line
164 | # * the main class name
165 | # * -classpath
166 | # * -D...appname settings
167 | # * --module-path (only if needed)
168 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
169 |
170 | # For Cygwin or MSYS, switch paths to Windows format before running java
171 | if "$cygwin" || "$msys" ; then
172 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
173 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
174 |
175 | JAVACMD=$( cygpath --unix "$JAVACMD" )
176 |
177 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
178 | for arg do
179 | if
180 | case $arg in #(
181 | -*) false ;; # don't mess with options #(
182 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
183 | [ -e "$t" ] ;; #(
184 | *) false ;;
185 | esac
186 | then
187 | arg=$( cygpath --path --ignore --mixed "$arg" )
188 | fi
189 | # Roll the args list around exactly as many times as the number of
190 | # args, so each arg winds up back in the position where it started, but
191 | # possibly modified.
192 | #
193 | # NB: a `for` loop captures its iteration list before it begins, so
194 | # changing the positional parameters here affects neither the number of
195 | # iterations, nor the values presented in `arg`.
196 | shift # remove old arg
197 | set -- "$@" "$arg" # push replacement arg
198 | done
199 | fi
200 |
201 |
202 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
203 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
204 |
205 | # Collect all arguments for the java command:
206 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
207 | # and any embedded shellness will be escaped.
208 | # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
209 | # treated as '${Hostname}' itself on the command line.
210 |
211 | set -- \
212 | "-Dorg.gradle.appname=$APP_BASE_NAME" \
213 | -classpath "$CLASSPATH" \
214 | org.gradle.wrapper.GradleWrapperMain \
215 | "$@"
216 |
217 | # Stop when "xargs" is not available.
218 | if ! command -v xargs >/dev/null 2>&1
219 | then
220 | die "xargs is not available"
221 | fi
222 |
223 | # Use "xargs" to parse quoted args.
224 | #
225 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed.
226 | #
227 | # In Bash we could simply go:
228 | #
229 | # readarray ARGS < <( xargs -n1 <<<"$var" ) &&
230 | # set -- "${ARGS[@]}" "$@"
231 | #
232 | # but POSIX shell has neither arrays nor command substitution, so instead we
233 | # post-process each arg (as a line of input to sed) to backslash-escape any
234 | # character that might be a shell metacharacter, then use eval to reverse
235 | # that process (while maintaining the separation between arguments), and wrap
236 | # the whole thing up as a single "set" statement.
237 | #
238 | # This will of course break if any of these variables contains a newline or
239 | # an unmatched quote.
240 | #
241 |
242 | eval "set -- $(
243 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
244 | xargs -n1 |
245 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
246 | tr '\n' ' '
247 | )" '"$@"'
248 |
249 | exec "$JAVACMD" "$@"
250 |
--------------------------------------------------------------------------------
/example/ios/expocheckinstalledappsexample.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
11 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
12 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
13 | 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; };
14 | 6E450670F8B643378A1454B4 /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D6D5EE6516A48A2A147C52D /* noop-file.swift */; };
15 | 96905EF65AED1B983A6B3ABC /* libPods-expocheckinstalledappsexample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-expocheckinstalledappsexample.a */; };
16 | 9901D8E45CE50C73CC913900 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 180A3948227DEBA10760199B /* PrivacyInfo.xcprivacy */; };
17 | B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; };
18 | BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; };
19 | /* End PBXBuildFile section */
20 |
21 | /* Begin PBXFileReference section */
22 | 13B07F961A680F5B00A75B9A /* expocheckinstalledappsexample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = expocheckinstalledappsexample.app; sourceTree = BUILT_PRODUCTS_DIR; };
23 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = expocheckinstalledappsexample/AppDelegate.h; sourceTree = ""; };
24 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = expocheckinstalledappsexample/AppDelegate.mm; sourceTree = ""; };
25 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = expocheckinstalledappsexample/Images.xcassets; sourceTree = ""; };
26 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = expocheckinstalledappsexample/Info.plist; sourceTree = ""; };
27 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = expocheckinstalledappsexample/main.m; sourceTree = ""; };
28 | 155C7A5582824F0784990C45 /* expocheckinstalledappsexample-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "expocheckinstalledappsexample-Bridging-Header.h"; path = "expocheckinstalledappsexample/expocheckinstalledappsexample-Bridging-Header.h"; sourceTree = ""; };
29 | 180A3948227DEBA10760199B /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = expocheckinstalledappsexample/PrivacyInfo.xcprivacy; sourceTree = ""; };
30 | 3D6D5EE6516A48A2A147C52D /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "expocheckinstalledappsexample/noop-file.swift"; sourceTree = ""; };
31 | 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-expocheckinstalledappsexample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-expocheckinstalledappsexample.a"; sourceTree = BUILT_PRODUCTS_DIR; };
32 | 6C2E3173556A471DD304B334 /* Pods-expocheckinstalledappsexample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-expocheckinstalledappsexample.debug.xcconfig"; path = "Target Support Files/Pods-expocheckinstalledappsexample/Pods-expocheckinstalledappsexample.debug.xcconfig"; sourceTree = ""; };
33 | 7A4D352CD337FB3A3BF06240 /* Pods-expocheckinstalledappsexample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-expocheckinstalledappsexample.release.xcconfig"; path = "Target Support Files/Pods-expocheckinstalledappsexample/Pods-expocheckinstalledappsexample.release.xcconfig"; sourceTree = ""; };
34 | AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = expocheckinstalledappsexample/SplashScreen.storyboard; sourceTree = ""; };
35 | BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; };
36 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
37 | FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-expocheckinstalledappsexample/ExpoModulesProvider.swift"; sourceTree = ""; };
38 | /* End PBXFileReference section */
39 |
40 | /* Begin PBXFrameworksBuildPhase section */
41 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
42 | isa = PBXFrameworksBuildPhase;
43 | buildActionMask = 2147483647;
44 | files = (
45 | 96905EF65AED1B983A6B3ABC /* libPods-expocheckinstalledappsexample.a in Frameworks */,
46 | );
47 | runOnlyForDeploymentPostprocessing = 0;
48 | };
49 | /* End PBXFrameworksBuildPhase section */
50 |
51 | /* Begin PBXGroup section */
52 | 13B07FAE1A68108700A75B9A /* expocheckinstalledappsexample */ = {
53 | isa = PBXGroup;
54 | children = (
55 | BB2F792B24A3F905000567C9 /* Supporting */,
56 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */,
57 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */,
58 | 13B07FB51A68108700A75B9A /* Images.xcassets */,
59 | 13B07FB61A68108700A75B9A /* Info.plist */,
60 | 13B07FB71A68108700A75B9A /* main.m */,
61 | AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */,
62 | 3D6D5EE6516A48A2A147C52D /* noop-file.swift */,
63 | 155C7A5582824F0784990C45 /* expocheckinstalledappsexample-Bridging-Header.h */,
64 | 180A3948227DEBA10760199B /* PrivacyInfo.xcprivacy */,
65 | );
66 | name = expocheckinstalledappsexample;
67 | sourceTree = "";
68 | };
69 | 2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
70 | isa = PBXGroup;
71 | children = (
72 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
73 | 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-expocheckinstalledappsexample.a */,
74 | );
75 | name = Frameworks;
76 | sourceTree = "";
77 | };
78 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = {
79 | isa = PBXGroup;
80 | children = (
81 | );
82 | name = Libraries;
83 | sourceTree = "";
84 | };
85 | 83CBB9F61A601CBA00E9B192 = {
86 | isa = PBXGroup;
87 | children = (
88 | 13B07FAE1A68108700A75B9A /* expocheckinstalledappsexample */,
89 | 832341AE1AAA6A7D00B99B32 /* Libraries */,
90 | 83CBBA001A601CBA00E9B192 /* Products */,
91 | 2D16E6871FA4F8E400B85C8A /* Frameworks */,
92 | D65327D7A22EEC0BE12398D9 /* Pods */,
93 | D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */,
94 | );
95 | indentWidth = 2;
96 | sourceTree = "";
97 | tabWidth = 2;
98 | usesTabs = 0;
99 | };
100 | 83CBBA001A601CBA00E9B192 /* Products */ = {
101 | isa = PBXGroup;
102 | children = (
103 | 13B07F961A680F5B00A75B9A /* expocheckinstalledappsexample.app */,
104 | );
105 | name = Products;
106 | sourceTree = "";
107 | };
108 | 92DBD88DE9BF7D494EA9DA96 /* expocheckinstalledappsexample */ = {
109 | isa = PBXGroup;
110 | children = (
111 | FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */,
112 | );
113 | name = expocheckinstalledappsexample;
114 | sourceTree = "";
115 | };
116 | BB2F792B24A3F905000567C9 /* Supporting */ = {
117 | isa = PBXGroup;
118 | children = (
119 | BB2F792C24A3F905000567C9 /* Expo.plist */,
120 | );
121 | name = Supporting;
122 | path = expocheckinstalledappsexample/Supporting;
123 | sourceTree = "";
124 | };
125 | D65327D7A22EEC0BE12398D9 /* Pods */ = {
126 | isa = PBXGroup;
127 | children = (
128 | 6C2E3173556A471DD304B334 /* Pods-expocheckinstalledappsexample.debug.xcconfig */,
129 | 7A4D352CD337FB3A3BF06240 /* Pods-expocheckinstalledappsexample.release.xcconfig */,
130 | );
131 | path = Pods;
132 | sourceTree = "";
133 | };
134 | D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */ = {
135 | isa = PBXGroup;
136 | children = (
137 | 92DBD88DE9BF7D494EA9DA96 /* expocheckinstalledappsexample */,
138 | );
139 | name = ExpoModulesProviders;
140 | sourceTree = "";
141 | };
142 | /* End PBXGroup section */
143 |
144 | /* Begin PBXNativeTarget section */
145 | 13B07F861A680F5B00A75B9A /* expocheckinstalledappsexample */ = {
146 | isa = PBXNativeTarget;
147 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "expocheckinstalledappsexample" */;
148 | buildPhases = (
149 | 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */,
150 | D8D4244A98356490A18D4213 /* [Expo] Configure project */,
151 | 13B07F871A680F5B00A75B9A /* Sources */,
152 | 13B07F8C1A680F5B00A75B9A /* Frameworks */,
153 | 13B07F8E1A680F5B00A75B9A /* Resources */,
154 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
155 | 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */,
156 | 7CA789523722D4A7FF87DF77 /* [CP] Embed Pods Frameworks */,
157 | );
158 | buildRules = (
159 | );
160 | dependencies = (
161 | );
162 | name = expocheckinstalledappsexample;
163 | productName = expocheckinstalledappsexample;
164 | productReference = 13B07F961A680F5B00A75B9A /* expocheckinstalledappsexample.app */;
165 | productType = "com.apple.product-type.application";
166 | };
167 | /* End PBXNativeTarget section */
168 |
169 | /* Begin PBXProject section */
170 | 83CBB9F71A601CBA00E9B192 /* Project object */ = {
171 | isa = PBXProject;
172 | attributes = {
173 | LastUpgradeCheck = 1130;
174 | TargetAttributes = {
175 | 13B07F861A680F5B00A75B9A = {
176 | LastSwiftMigration = 1250;
177 | };
178 | };
179 | };
180 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "expocheckinstalledappsexample" */;
181 | compatibilityVersion = "Xcode 3.2";
182 | developmentRegion = en;
183 | hasScannedForEncodings = 0;
184 | knownRegions = (
185 | en,
186 | Base,
187 | );
188 | mainGroup = 83CBB9F61A601CBA00E9B192;
189 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
190 | projectDirPath = "";
191 | projectRoot = "";
192 | targets = (
193 | 13B07F861A680F5B00A75B9A /* expocheckinstalledappsexample */,
194 | );
195 | };
196 | /* End PBXProject section */
197 |
198 | /* Begin PBXResourcesBuildPhase section */
199 | 13B07F8E1A680F5B00A75B9A /* Resources */ = {
200 | isa = PBXResourcesBuildPhase;
201 | buildActionMask = 2147483647;
202 | files = (
203 | BB2F792D24A3F905000567C9 /* Expo.plist in Resources */,
204 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
205 | 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */,
206 | 9901D8E45CE50C73CC913900 /* PrivacyInfo.xcprivacy in Resources */,
207 | );
208 | runOnlyForDeploymentPostprocessing = 0;
209 | };
210 | /* End PBXResourcesBuildPhase section */
211 |
212 | /* Begin PBXShellScriptBuildPhase section */
213 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
214 | isa = PBXShellScriptBuildPhase;
215 | alwaysOutOfDate = 1;
216 | buildActionMask = 2147483647;
217 | files = (
218 | );
219 | inputPaths = (
220 | );
221 | name = "Bundle React Native code and images";
222 | outputPaths = (
223 | );
224 | runOnlyForDeploymentPostprocessing = 0;
225 | shellPath = /bin/sh;
226 | 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\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios absolute | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n# Source .xcode.env.updates if it exists to allow\n# SKIP_BUNDLING to be unset if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.updates\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.updates\"\nfi\n# Source local changes to allow overrides\n# if needed\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n";
227 | };
228 | 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {
229 | isa = PBXShellScriptBuildPhase;
230 | buildActionMask = 2147483647;
231 | files = (
232 | );
233 | inputFileListPaths = (
234 | );
235 | inputPaths = (
236 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
237 | "${PODS_ROOT}/Manifest.lock",
238 | );
239 | name = "[CP] Check Pods Manifest.lock";
240 | outputFileListPaths = (
241 | );
242 | outputPaths = (
243 | "$(DERIVED_FILE_DIR)/Pods-expocheckinstalledappsexample-checkManifestLockResult.txt",
244 | );
245 | runOnlyForDeploymentPostprocessing = 0;
246 | shellPath = /bin/sh;
247 | 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";
248 | showEnvVarsInLog = 0;
249 | };
250 | 7CA789523722D4A7FF87DF77 /* [CP] Embed Pods Frameworks */ = {
251 | isa = PBXShellScriptBuildPhase;
252 | buildActionMask = 2147483647;
253 | files = (
254 | );
255 | inputPaths = (
256 | "${PODS_ROOT}/Target Support Files/Pods-expocheckinstalledappsexample/Pods-expocheckinstalledappsexample-frameworks.sh",
257 | "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes",
258 | );
259 | name = "[CP] Embed Pods Frameworks";
260 | outputPaths = (
261 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
262 | );
263 | runOnlyForDeploymentPostprocessing = 0;
264 | shellPath = /bin/sh;
265 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-expocheckinstalledappsexample/Pods-expocheckinstalledappsexample-frameworks.sh\"\n";
266 | showEnvVarsInLog = 0;
267 | };
268 | 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = {
269 | isa = PBXShellScriptBuildPhase;
270 | buildActionMask = 2147483647;
271 | files = (
272 | );
273 | inputPaths = (
274 | "${PODS_ROOT}/Target Support Files/Pods-expocheckinstalledappsexample/Pods-expocheckinstalledappsexample-resources.sh",
275 | "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle",
276 | "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/ExpoConstants_privacy.bundle",
277 | "${PODS_CONFIGURATION_BUILD_DIR}/ExpoFileSystem/ExpoFileSystem_privacy.bundle",
278 | "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle",
279 | );
280 | name = "[CP] Copy Pods Resources";
281 | outputPaths = (
282 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle",
283 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoConstants_privacy.bundle",
284 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoFileSystem_privacy.bundle",
285 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle",
286 | );
287 | runOnlyForDeploymentPostprocessing = 0;
288 | shellPath = /bin/sh;
289 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-expocheckinstalledappsexample/Pods-expocheckinstalledappsexample-resources.sh\"\n";
290 | showEnvVarsInLog = 0;
291 | };
292 | D8D4244A98356490A18D4213 /* [Expo] Configure project */ = {
293 | isa = PBXShellScriptBuildPhase;
294 | alwaysOutOfDate = 1;
295 | buildActionMask = 2147483647;
296 | files = (
297 | );
298 | inputFileListPaths = (
299 | );
300 | inputPaths = (
301 | );
302 | name = "[Expo] Configure project";
303 | outputFileListPaths = (
304 | );
305 | outputPaths = (
306 | );
307 | runOnlyForDeploymentPostprocessing = 0;
308 | shellPath = /bin/sh;
309 | shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-expocheckinstalledappsexample/expo-configure-project.sh\"\n";
310 | };
311 | /* End PBXShellScriptBuildPhase section */
312 |
313 | /* Begin PBXSourcesBuildPhase section */
314 | 13B07F871A680F5B00A75B9A /* Sources */ = {
315 | isa = PBXSourcesBuildPhase;
316 | buildActionMask = 2147483647;
317 | files = (
318 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
319 | 13B07FC11A68108700A75B9A /* main.m in Sources */,
320 | B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */,
321 | 6E450670F8B643378A1454B4 /* noop-file.swift in Sources */,
322 | );
323 | runOnlyForDeploymentPostprocessing = 0;
324 | };
325 | /* End PBXSourcesBuildPhase section */
326 |
327 | /* Begin XCBuildConfiguration section */
328 | 13B07F941A680F5B00A75B9A /* Debug */ = {
329 | isa = XCBuildConfiguration;
330 | baseConfigurationReference = 6C2E3173556A471DD304B334 /* Pods-expocheckinstalledappsexample.debug.xcconfig */;
331 | buildSettings = {
332 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
333 | CLANG_ENABLE_MODULES = YES;
334 | CODE_SIGN_ENTITLEMENTS = expocheckinstalledappsexample/expocheckinstalledappsexample.entitlements;
335 | CURRENT_PROJECT_VERSION = 1;
336 | ENABLE_BITCODE = NO;
337 | GCC_PREPROCESSOR_DEFINITIONS = (
338 | "$(inherited)",
339 | "FB_SONARKIT_ENABLED=1",
340 | );
341 | INFOPLIST_FILE = expocheckinstalledappsexample/Info.plist;
342 | IPHONEOS_DEPLOYMENT_TARGET = 13.4;
343 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
344 | MARKETING_VERSION = 1.0;
345 | OTHER_LDFLAGS = (
346 | "$(inherited)",
347 | "-ObjC",
348 | "-lc++",
349 | );
350 | OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
351 | PRODUCT_BUNDLE_IDENTIFIER = expo.modules.checkinstalledapps.example;
352 | PRODUCT_NAME = "expocheckinstalledappsexample";
353 | SWIFT_OBJC_BRIDGING_HEADER = "expocheckinstalledappsexample/expocheckinstalledappsexample-Bridging-Header.h";
354 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
355 | SWIFT_VERSION = 5.0;
356 | TARGETED_DEVICE_FAMILY = "1,2";
357 | VERSIONING_SYSTEM = "apple-generic";
358 | };
359 | name = Debug;
360 | };
361 | 13B07F951A680F5B00A75B9A /* Release */ = {
362 | isa = XCBuildConfiguration;
363 | baseConfigurationReference = 7A4D352CD337FB3A3BF06240 /* Pods-expocheckinstalledappsexample.release.xcconfig */;
364 | buildSettings = {
365 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
366 | CLANG_ENABLE_MODULES = YES;
367 | CODE_SIGN_ENTITLEMENTS = expocheckinstalledappsexample/expocheckinstalledappsexample.entitlements;
368 | CURRENT_PROJECT_VERSION = 1;
369 | INFOPLIST_FILE = expocheckinstalledappsexample/Info.plist;
370 | IPHONEOS_DEPLOYMENT_TARGET = 13.4;
371 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
372 | MARKETING_VERSION = 1.0;
373 | OTHER_LDFLAGS = (
374 | "$(inherited)",
375 | "-ObjC",
376 | "-lc++",
377 | );
378 | OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
379 | PRODUCT_BUNDLE_IDENTIFIER = expo.modules.checkinstalledapps.example;
380 | PRODUCT_NAME = "expocheckinstalledappsexample";
381 | SWIFT_OBJC_BRIDGING_HEADER = "expocheckinstalledappsexample/expocheckinstalledappsexample-Bridging-Header.h";
382 | SWIFT_VERSION = 5.0;
383 | TARGETED_DEVICE_FAMILY = "1,2";
384 | VERSIONING_SYSTEM = "apple-generic";
385 | };
386 | name = Release;
387 | };
388 | 83CBBA201A601CBA00E9B192 /* Debug */ = {
389 | isa = XCBuildConfiguration;
390 | buildSettings = {
391 | ALWAYS_SEARCH_USER_PATHS = NO;
392 | CC = "";
393 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
394 | CLANG_CXX_LANGUAGE_STANDARD = "c++20";
395 | CLANG_CXX_LIBRARY = "libc++";
396 | CLANG_ENABLE_MODULES = YES;
397 | CLANG_ENABLE_OBJC_ARC = YES;
398 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
399 | CLANG_WARN_BOOL_CONVERSION = YES;
400 | CLANG_WARN_COMMA = YES;
401 | CLANG_WARN_CONSTANT_CONVERSION = YES;
402 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
403 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
404 | CLANG_WARN_EMPTY_BODY = YES;
405 | CLANG_WARN_ENUM_CONVERSION = YES;
406 | CLANG_WARN_INFINITE_RECURSION = YES;
407 | CLANG_WARN_INT_CONVERSION = YES;
408 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
409 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
410 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
411 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
412 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
413 | CLANG_WARN_STRICT_PROTOTYPES = YES;
414 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
415 | CLANG_WARN_UNREACHABLE_CODE = YES;
416 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
417 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
418 | COPY_PHASE_STRIP = NO;
419 | CXX = "";
420 | ENABLE_STRICT_OBJC_MSGSEND = YES;
421 | ENABLE_TESTABILITY = YES;
422 | GCC_C_LANGUAGE_STANDARD = gnu99;
423 | GCC_DYNAMIC_NO_PIC = NO;
424 | GCC_NO_COMMON_BLOCKS = YES;
425 | GCC_OPTIMIZATION_LEVEL = 0;
426 | GCC_PREPROCESSOR_DEFINITIONS = (
427 | "DEBUG=1",
428 | "$(inherited)",
429 | );
430 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
431 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
432 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
433 | GCC_WARN_UNDECLARED_SELECTOR = YES;
434 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
435 | GCC_WARN_UNUSED_FUNCTION = YES;
436 | GCC_WARN_UNUSED_VARIABLE = YES;
437 | IPHONEOS_DEPLOYMENT_TARGET = 13.4;
438 | LD = "";
439 | LDPLUSPLUS = "";
440 | LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
441 | LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\"";
442 | MTL_ENABLE_DEBUG_INFO = YES;
443 | ONLY_ACTIVE_ARCH = YES;
444 | OTHER_LDFLAGS = (
445 | "$(inherited)",
446 | " ",
447 | );
448 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
449 | SDKROOT = iphoneos;
450 | USE_HERMES = true;
451 | };
452 | name = Debug;
453 | };
454 | 83CBBA211A601CBA00E9B192 /* Release */ = {
455 | isa = XCBuildConfiguration;
456 | buildSettings = {
457 | ALWAYS_SEARCH_USER_PATHS = NO;
458 | CC = "";
459 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
460 | CLANG_CXX_LANGUAGE_STANDARD = "c++20";
461 | CLANG_CXX_LIBRARY = "libc++";
462 | CLANG_ENABLE_MODULES = YES;
463 | CLANG_ENABLE_OBJC_ARC = YES;
464 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
465 | CLANG_WARN_BOOL_CONVERSION = YES;
466 | CLANG_WARN_COMMA = YES;
467 | CLANG_WARN_CONSTANT_CONVERSION = YES;
468 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
469 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
470 | CLANG_WARN_EMPTY_BODY = YES;
471 | CLANG_WARN_ENUM_CONVERSION = YES;
472 | CLANG_WARN_INFINITE_RECURSION = YES;
473 | CLANG_WARN_INT_CONVERSION = YES;
474 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
475 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
476 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
477 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
478 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
479 | CLANG_WARN_STRICT_PROTOTYPES = YES;
480 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
481 | CLANG_WARN_UNREACHABLE_CODE = YES;
482 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
483 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
484 | COPY_PHASE_STRIP = YES;
485 | CXX = "";
486 | ENABLE_NS_ASSERTIONS = NO;
487 | ENABLE_STRICT_OBJC_MSGSEND = YES;
488 | GCC_C_LANGUAGE_STANDARD = gnu99;
489 | GCC_NO_COMMON_BLOCKS = YES;
490 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
491 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
492 | GCC_WARN_UNDECLARED_SELECTOR = YES;
493 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
494 | GCC_WARN_UNUSED_FUNCTION = YES;
495 | GCC_WARN_UNUSED_VARIABLE = YES;
496 | IPHONEOS_DEPLOYMENT_TARGET = 13.4;
497 | LD = "";
498 | LDPLUSPLUS = "";
499 | LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
500 | LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\"";
501 | MTL_ENABLE_DEBUG_INFO = NO;
502 | OTHER_LDFLAGS = (
503 | "$(inherited)",
504 | " ",
505 | );
506 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
507 | SDKROOT = iphoneos;
508 | USE_HERMES = true;
509 | VALIDATE_PRODUCT = YES;
510 | };
511 | name = Release;
512 | };
513 | /* End XCBuildConfiguration section */
514 |
515 | /* Begin XCConfigurationList section */
516 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "expocheckinstalledappsexample" */ = {
517 | isa = XCConfigurationList;
518 | buildConfigurations = (
519 | 13B07F941A680F5B00A75B9A /* Debug */,
520 | 13B07F951A680F5B00A75B9A /* Release */,
521 | );
522 | defaultConfigurationIsVisible = 0;
523 | defaultConfigurationName = Release;
524 | };
525 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "expocheckinstalledappsexample" */ = {
526 | isa = XCConfigurationList;
527 | buildConfigurations = (
528 | 83CBBA201A601CBA00E9B192 /* Debug */,
529 | 83CBBA211A601CBA00E9B192 /* Release */,
530 | );
531 | defaultConfigurationIsVisible = 0;
532 | defaultConfigurationName = Release;
533 | };
534 | /* End XCConfigurationList section */
535 | };
536 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
537 | }
538 |
--------------------------------------------------------------------------------
/example/ios/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - boost (1.83.0)
3 | - DoubleConversion (1.1.6)
4 | - EXConstants (16.0.2):
5 | - ExpoModulesCore
6 | - Expo (51.0.38):
7 | - ExpoModulesCore
8 | - ExpoAsset (10.0.10):
9 | - ExpoModulesCore
10 | - ExpoCheckInstalledApps (0.2.1):
11 | - ExpoModulesCore
12 | - ExpoFileSystem (17.0.1):
13 | - ExpoModulesCore
14 | - ExpoFont (12.0.10):
15 | - ExpoModulesCore
16 | - ExpoKeepAwake (13.0.2):
17 | - ExpoModulesCore
18 | - ExpoModulesCore (1.12.26):
19 | - DoubleConversion
20 | - glog
21 | - hermes-engine
22 | - RCT-Folly (= 2024.01.01.00)
23 | - RCTRequired
24 | - RCTTypeSafety
25 | - React-Codegen
26 | - React-Core
27 | - React-debug
28 | - React-Fabric
29 | - React-featureflags
30 | - React-graphics
31 | - React-ImageManager
32 | - React-jsinspector
33 | - React-NativeModulesApple
34 | - React-RCTAppDelegate
35 | - React-RCTFabric
36 | - React-rendererdebug
37 | - React-utils
38 | - ReactCommon/turbomodule/bridging
39 | - ReactCommon/turbomodule/core
40 | - Yoga
41 | - FBLazyVector (0.74.5)
42 | - fmt (9.1.0)
43 | - glog (0.3.5)
44 | - hermes-engine (0.74.5):
45 | - hermes-engine/Pre-built (= 0.74.5)
46 | - hermes-engine/Pre-built (0.74.5)
47 | - RCT-Folly (2024.01.01.00):
48 | - boost
49 | - DoubleConversion
50 | - fmt (= 9.1.0)
51 | - glog
52 | - RCT-Folly/Default (= 2024.01.01.00)
53 | - RCT-Folly/Default (2024.01.01.00):
54 | - boost
55 | - DoubleConversion
56 | - fmt (= 9.1.0)
57 | - glog
58 | - RCT-Folly/Fabric (2024.01.01.00):
59 | - boost
60 | - DoubleConversion
61 | - fmt (= 9.1.0)
62 | - glog
63 | - RCTDeprecation (0.74.5)
64 | - RCTRequired (0.74.5)
65 | - RCTTypeSafety (0.74.5):
66 | - FBLazyVector (= 0.74.5)
67 | - RCTRequired (= 0.74.5)
68 | - React-Core (= 0.74.5)
69 | - React (0.74.5):
70 | - React-Core (= 0.74.5)
71 | - React-Core/DevSupport (= 0.74.5)
72 | - React-Core/RCTWebSocket (= 0.74.5)
73 | - React-RCTActionSheet (= 0.74.5)
74 | - React-RCTAnimation (= 0.74.5)
75 | - React-RCTBlob (= 0.74.5)
76 | - React-RCTImage (= 0.74.5)
77 | - React-RCTLinking (= 0.74.5)
78 | - React-RCTNetwork (= 0.74.5)
79 | - React-RCTSettings (= 0.74.5)
80 | - React-RCTText (= 0.74.5)
81 | - React-RCTVibration (= 0.74.5)
82 | - React-callinvoker (0.74.5)
83 | - React-Codegen (0.74.5):
84 | - DoubleConversion
85 | - glog
86 | - hermes-engine
87 | - RCT-Folly
88 | - RCTRequired
89 | - RCTTypeSafety
90 | - React-Core
91 | - React-debug
92 | - React-Fabric
93 | - React-FabricImage
94 | - React-featureflags
95 | - React-graphics
96 | - React-jsi
97 | - React-jsiexecutor
98 | - React-NativeModulesApple
99 | - React-rendererdebug
100 | - React-utils
101 | - ReactCommon/turbomodule/bridging
102 | - ReactCommon/turbomodule/core
103 | - React-Core (0.74.5):
104 | - glog
105 | - hermes-engine
106 | - RCT-Folly (= 2024.01.01.00)
107 | - RCTDeprecation
108 | - React-Core/Default (= 0.74.5)
109 | - React-cxxreact
110 | - React-featureflags
111 | - React-hermes
112 | - React-jsi
113 | - React-jsiexecutor
114 | - React-jsinspector
115 | - React-perflogger
116 | - React-runtimescheduler
117 | - React-utils
118 | - SocketRocket (= 0.7.0)
119 | - Yoga
120 | - React-Core/CoreModulesHeaders (0.74.5):
121 | - glog
122 | - hermes-engine
123 | - RCT-Folly (= 2024.01.01.00)
124 | - RCTDeprecation
125 | - React-Core/Default
126 | - React-cxxreact
127 | - React-featureflags
128 | - React-hermes
129 | - React-jsi
130 | - React-jsiexecutor
131 | - React-jsinspector
132 | - React-perflogger
133 | - React-runtimescheduler
134 | - React-utils
135 | - SocketRocket (= 0.7.0)
136 | - Yoga
137 | - React-Core/Default (0.74.5):
138 | - glog
139 | - hermes-engine
140 | - RCT-Folly (= 2024.01.01.00)
141 | - RCTDeprecation
142 | - React-cxxreact
143 | - React-featureflags
144 | - React-hermes
145 | - React-jsi
146 | - React-jsiexecutor
147 | - React-jsinspector
148 | - React-perflogger
149 | - React-runtimescheduler
150 | - React-utils
151 | - SocketRocket (= 0.7.0)
152 | - Yoga
153 | - React-Core/DevSupport (0.74.5):
154 | - glog
155 | - hermes-engine
156 | - RCT-Folly (= 2024.01.01.00)
157 | - RCTDeprecation
158 | - React-Core/Default (= 0.74.5)
159 | - React-Core/RCTWebSocket (= 0.74.5)
160 | - React-cxxreact
161 | - React-featureflags
162 | - React-hermes
163 | - React-jsi
164 | - React-jsiexecutor
165 | - React-jsinspector
166 | - React-perflogger
167 | - React-runtimescheduler
168 | - React-utils
169 | - SocketRocket (= 0.7.0)
170 | - Yoga
171 | - React-Core/RCTActionSheetHeaders (0.74.5):
172 | - glog
173 | - hermes-engine
174 | - RCT-Folly (= 2024.01.01.00)
175 | - RCTDeprecation
176 | - React-Core/Default
177 | - React-cxxreact
178 | - React-featureflags
179 | - React-hermes
180 | - React-jsi
181 | - React-jsiexecutor
182 | - React-jsinspector
183 | - React-perflogger
184 | - React-runtimescheduler
185 | - React-utils
186 | - SocketRocket (= 0.7.0)
187 | - Yoga
188 | - React-Core/RCTAnimationHeaders (0.74.5):
189 | - glog
190 | - hermes-engine
191 | - RCT-Folly (= 2024.01.01.00)
192 | - RCTDeprecation
193 | - React-Core/Default
194 | - React-cxxreact
195 | - React-featureflags
196 | - React-hermes
197 | - React-jsi
198 | - React-jsiexecutor
199 | - React-jsinspector
200 | - React-perflogger
201 | - React-runtimescheduler
202 | - React-utils
203 | - SocketRocket (= 0.7.0)
204 | - Yoga
205 | - React-Core/RCTBlobHeaders (0.74.5):
206 | - glog
207 | - hermes-engine
208 | - RCT-Folly (= 2024.01.01.00)
209 | - RCTDeprecation
210 | - React-Core/Default
211 | - React-cxxreact
212 | - React-featureflags
213 | - React-hermes
214 | - React-jsi
215 | - React-jsiexecutor
216 | - React-jsinspector
217 | - React-perflogger
218 | - React-runtimescheduler
219 | - React-utils
220 | - SocketRocket (= 0.7.0)
221 | - Yoga
222 | - React-Core/RCTImageHeaders (0.74.5):
223 | - glog
224 | - hermes-engine
225 | - RCT-Folly (= 2024.01.01.00)
226 | - RCTDeprecation
227 | - React-Core/Default
228 | - React-cxxreact
229 | - React-featureflags
230 | - React-hermes
231 | - React-jsi
232 | - React-jsiexecutor
233 | - React-jsinspector
234 | - React-perflogger
235 | - React-runtimescheduler
236 | - React-utils
237 | - SocketRocket (= 0.7.0)
238 | - Yoga
239 | - React-Core/RCTLinkingHeaders (0.74.5):
240 | - glog
241 | - hermes-engine
242 | - RCT-Folly (= 2024.01.01.00)
243 | - RCTDeprecation
244 | - React-Core/Default
245 | - React-cxxreact
246 | - React-featureflags
247 | - React-hermes
248 | - React-jsi
249 | - React-jsiexecutor
250 | - React-jsinspector
251 | - React-perflogger
252 | - React-runtimescheduler
253 | - React-utils
254 | - SocketRocket (= 0.7.0)
255 | - Yoga
256 | - React-Core/RCTNetworkHeaders (0.74.5):
257 | - glog
258 | - hermes-engine
259 | - RCT-Folly (= 2024.01.01.00)
260 | - RCTDeprecation
261 | - React-Core/Default
262 | - React-cxxreact
263 | - React-featureflags
264 | - React-hermes
265 | - React-jsi
266 | - React-jsiexecutor
267 | - React-jsinspector
268 | - React-perflogger
269 | - React-runtimescheduler
270 | - React-utils
271 | - SocketRocket (= 0.7.0)
272 | - Yoga
273 | - React-Core/RCTSettingsHeaders (0.74.5):
274 | - glog
275 | - hermes-engine
276 | - RCT-Folly (= 2024.01.01.00)
277 | - RCTDeprecation
278 | - React-Core/Default
279 | - React-cxxreact
280 | - React-featureflags
281 | - React-hermes
282 | - React-jsi
283 | - React-jsiexecutor
284 | - React-jsinspector
285 | - React-perflogger
286 | - React-runtimescheduler
287 | - React-utils
288 | - SocketRocket (= 0.7.0)
289 | - Yoga
290 | - React-Core/RCTTextHeaders (0.74.5):
291 | - glog
292 | - hermes-engine
293 | - RCT-Folly (= 2024.01.01.00)
294 | - RCTDeprecation
295 | - React-Core/Default
296 | - React-cxxreact
297 | - React-featureflags
298 | - React-hermes
299 | - React-jsi
300 | - React-jsiexecutor
301 | - React-jsinspector
302 | - React-perflogger
303 | - React-runtimescheduler
304 | - React-utils
305 | - SocketRocket (= 0.7.0)
306 | - Yoga
307 | - React-Core/RCTVibrationHeaders (0.74.5):
308 | - glog
309 | - hermes-engine
310 | - RCT-Folly (= 2024.01.01.00)
311 | - RCTDeprecation
312 | - React-Core/Default
313 | - React-cxxreact
314 | - React-featureflags
315 | - React-hermes
316 | - React-jsi
317 | - React-jsiexecutor
318 | - React-jsinspector
319 | - React-perflogger
320 | - React-runtimescheduler
321 | - React-utils
322 | - SocketRocket (= 0.7.0)
323 | - Yoga
324 | - React-Core/RCTWebSocket (0.74.5):
325 | - glog
326 | - hermes-engine
327 | - RCT-Folly (= 2024.01.01.00)
328 | - RCTDeprecation
329 | - React-Core/Default (= 0.74.5)
330 | - React-cxxreact
331 | - React-featureflags
332 | - React-hermes
333 | - React-jsi
334 | - React-jsiexecutor
335 | - React-jsinspector
336 | - React-perflogger
337 | - React-runtimescheduler
338 | - React-utils
339 | - SocketRocket (= 0.7.0)
340 | - Yoga
341 | - React-CoreModules (0.74.5):
342 | - DoubleConversion
343 | - fmt (= 9.1.0)
344 | - RCT-Folly (= 2024.01.01.00)
345 | - RCTTypeSafety (= 0.74.5)
346 | - React-Codegen
347 | - React-Core/CoreModulesHeaders (= 0.74.5)
348 | - React-jsi (= 0.74.5)
349 | - React-jsinspector
350 | - React-NativeModulesApple
351 | - React-RCTBlob
352 | - React-RCTImage (= 0.74.5)
353 | - ReactCommon
354 | - SocketRocket (= 0.7.0)
355 | - React-cxxreact (0.74.5):
356 | - boost (= 1.83.0)
357 | - DoubleConversion
358 | - fmt (= 9.1.0)
359 | - glog
360 | - hermes-engine
361 | - RCT-Folly (= 2024.01.01.00)
362 | - React-callinvoker (= 0.74.5)
363 | - React-debug (= 0.74.5)
364 | - React-jsi (= 0.74.5)
365 | - React-jsinspector
366 | - React-logger (= 0.74.5)
367 | - React-perflogger (= 0.74.5)
368 | - React-runtimeexecutor (= 0.74.5)
369 | - React-debug (0.74.5)
370 | - React-Fabric (0.74.5):
371 | - DoubleConversion
372 | - fmt (= 9.1.0)
373 | - glog
374 | - hermes-engine
375 | - RCT-Folly/Fabric (= 2024.01.01.00)
376 | - RCTRequired
377 | - RCTTypeSafety
378 | - React-Core
379 | - React-cxxreact
380 | - React-debug
381 | - React-Fabric/animations (= 0.74.5)
382 | - React-Fabric/attributedstring (= 0.74.5)
383 | - React-Fabric/componentregistry (= 0.74.5)
384 | - React-Fabric/componentregistrynative (= 0.74.5)
385 | - React-Fabric/components (= 0.74.5)
386 | - React-Fabric/core (= 0.74.5)
387 | - React-Fabric/imagemanager (= 0.74.5)
388 | - React-Fabric/leakchecker (= 0.74.5)
389 | - React-Fabric/mounting (= 0.74.5)
390 | - React-Fabric/scheduler (= 0.74.5)
391 | - React-Fabric/telemetry (= 0.74.5)
392 | - React-Fabric/templateprocessor (= 0.74.5)
393 | - React-Fabric/textlayoutmanager (= 0.74.5)
394 | - React-Fabric/uimanager (= 0.74.5)
395 | - React-graphics
396 | - React-jsi
397 | - React-jsiexecutor
398 | - React-logger
399 | - React-rendererdebug
400 | - React-runtimescheduler
401 | - React-utils
402 | - ReactCommon/turbomodule/core
403 | - React-Fabric/animations (0.74.5):
404 | - DoubleConversion
405 | - fmt (= 9.1.0)
406 | - glog
407 | - hermes-engine
408 | - RCT-Folly/Fabric (= 2024.01.01.00)
409 | - RCTRequired
410 | - RCTTypeSafety
411 | - React-Core
412 | - React-cxxreact
413 | - React-debug
414 | - React-graphics
415 | - React-jsi
416 | - React-jsiexecutor
417 | - React-logger
418 | - React-rendererdebug
419 | - React-runtimescheduler
420 | - React-utils
421 | - ReactCommon/turbomodule/core
422 | - React-Fabric/attributedstring (0.74.5):
423 | - DoubleConversion
424 | - fmt (= 9.1.0)
425 | - glog
426 | - hermes-engine
427 | - RCT-Folly/Fabric (= 2024.01.01.00)
428 | - RCTRequired
429 | - RCTTypeSafety
430 | - React-Core
431 | - React-cxxreact
432 | - React-debug
433 | - React-graphics
434 | - React-jsi
435 | - React-jsiexecutor
436 | - React-logger
437 | - React-rendererdebug
438 | - React-runtimescheduler
439 | - React-utils
440 | - ReactCommon/turbomodule/core
441 | - React-Fabric/componentregistry (0.74.5):
442 | - DoubleConversion
443 | - fmt (= 9.1.0)
444 | - glog
445 | - hermes-engine
446 | - RCT-Folly/Fabric (= 2024.01.01.00)
447 | - RCTRequired
448 | - RCTTypeSafety
449 | - React-Core
450 | - React-cxxreact
451 | - React-debug
452 | - React-graphics
453 | - React-jsi
454 | - React-jsiexecutor
455 | - React-logger
456 | - React-rendererdebug
457 | - React-runtimescheduler
458 | - React-utils
459 | - ReactCommon/turbomodule/core
460 | - React-Fabric/componentregistrynative (0.74.5):
461 | - DoubleConversion
462 | - fmt (= 9.1.0)
463 | - glog
464 | - hermes-engine
465 | - RCT-Folly/Fabric (= 2024.01.01.00)
466 | - RCTRequired
467 | - RCTTypeSafety
468 | - React-Core
469 | - React-cxxreact
470 | - React-debug
471 | - React-graphics
472 | - React-jsi
473 | - React-jsiexecutor
474 | - React-logger
475 | - React-rendererdebug
476 | - React-runtimescheduler
477 | - React-utils
478 | - ReactCommon/turbomodule/core
479 | - React-Fabric/components (0.74.5):
480 | - DoubleConversion
481 | - fmt (= 9.1.0)
482 | - glog
483 | - hermes-engine
484 | - RCT-Folly/Fabric (= 2024.01.01.00)
485 | - RCTRequired
486 | - RCTTypeSafety
487 | - React-Core
488 | - React-cxxreact
489 | - React-debug
490 | - React-Fabric/components/inputaccessory (= 0.74.5)
491 | - React-Fabric/components/legacyviewmanagerinterop (= 0.74.5)
492 | - React-Fabric/components/modal (= 0.74.5)
493 | - React-Fabric/components/rncore (= 0.74.5)
494 | - React-Fabric/components/root (= 0.74.5)
495 | - React-Fabric/components/safeareaview (= 0.74.5)
496 | - React-Fabric/components/scrollview (= 0.74.5)
497 | - React-Fabric/components/text (= 0.74.5)
498 | - React-Fabric/components/textinput (= 0.74.5)
499 | - React-Fabric/components/unimplementedview (= 0.74.5)
500 | - React-Fabric/components/view (= 0.74.5)
501 | - React-graphics
502 | - React-jsi
503 | - React-jsiexecutor
504 | - React-logger
505 | - React-rendererdebug
506 | - React-runtimescheduler
507 | - React-utils
508 | - ReactCommon/turbomodule/core
509 | - React-Fabric/components/inputaccessory (0.74.5):
510 | - DoubleConversion
511 | - fmt (= 9.1.0)
512 | - glog
513 | - hermes-engine
514 | - RCT-Folly/Fabric (= 2024.01.01.00)
515 | - RCTRequired
516 | - RCTTypeSafety
517 | - React-Core
518 | - React-cxxreact
519 | - React-debug
520 | - React-graphics
521 | - React-jsi
522 | - React-jsiexecutor
523 | - React-logger
524 | - React-rendererdebug
525 | - React-runtimescheduler
526 | - React-utils
527 | - ReactCommon/turbomodule/core
528 | - React-Fabric/components/legacyviewmanagerinterop (0.74.5):
529 | - DoubleConversion
530 | - fmt (= 9.1.0)
531 | - glog
532 | - hermes-engine
533 | - RCT-Folly/Fabric (= 2024.01.01.00)
534 | - RCTRequired
535 | - RCTTypeSafety
536 | - React-Core
537 | - React-cxxreact
538 | - React-debug
539 | - React-graphics
540 | - React-jsi
541 | - React-jsiexecutor
542 | - React-logger
543 | - React-rendererdebug
544 | - React-runtimescheduler
545 | - React-utils
546 | - ReactCommon/turbomodule/core
547 | - React-Fabric/components/modal (0.74.5):
548 | - DoubleConversion
549 | - fmt (= 9.1.0)
550 | - glog
551 | - hermes-engine
552 | - RCT-Folly/Fabric (= 2024.01.01.00)
553 | - RCTRequired
554 | - RCTTypeSafety
555 | - React-Core
556 | - React-cxxreact
557 | - React-debug
558 | - React-graphics
559 | - React-jsi
560 | - React-jsiexecutor
561 | - React-logger
562 | - React-rendererdebug
563 | - React-runtimescheduler
564 | - React-utils
565 | - ReactCommon/turbomodule/core
566 | - React-Fabric/components/rncore (0.74.5):
567 | - DoubleConversion
568 | - fmt (= 9.1.0)
569 | - glog
570 | - hermes-engine
571 | - RCT-Folly/Fabric (= 2024.01.01.00)
572 | - RCTRequired
573 | - RCTTypeSafety
574 | - React-Core
575 | - React-cxxreact
576 | - React-debug
577 | - React-graphics
578 | - React-jsi
579 | - React-jsiexecutor
580 | - React-logger
581 | - React-rendererdebug
582 | - React-runtimescheduler
583 | - React-utils
584 | - ReactCommon/turbomodule/core
585 | - React-Fabric/components/root (0.74.5):
586 | - DoubleConversion
587 | - fmt (= 9.1.0)
588 | - glog
589 | - hermes-engine
590 | - RCT-Folly/Fabric (= 2024.01.01.00)
591 | - RCTRequired
592 | - RCTTypeSafety
593 | - React-Core
594 | - React-cxxreact
595 | - React-debug
596 | - React-graphics
597 | - React-jsi
598 | - React-jsiexecutor
599 | - React-logger
600 | - React-rendererdebug
601 | - React-runtimescheduler
602 | - React-utils
603 | - ReactCommon/turbomodule/core
604 | - React-Fabric/components/safeareaview (0.74.5):
605 | - DoubleConversion
606 | - fmt (= 9.1.0)
607 | - glog
608 | - hermes-engine
609 | - RCT-Folly/Fabric (= 2024.01.01.00)
610 | - RCTRequired
611 | - RCTTypeSafety
612 | - React-Core
613 | - React-cxxreact
614 | - React-debug
615 | - React-graphics
616 | - React-jsi
617 | - React-jsiexecutor
618 | - React-logger
619 | - React-rendererdebug
620 | - React-runtimescheduler
621 | - React-utils
622 | - ReactCommon/turbomodule/core
623 | - React-Fabric/components/scrollview (0.74.5):
624 | - DoubleConversion
625 | - fmt (= 9.1.0)
626 | - glog
627 | - hermes-engine
628 | - RCT-Folly/Fabric (= 2024.01.01.00)
629 | - RCTRequired
630 | - RCTTypeSafety
631 | - React-Core
632 | - React-cxxreact
633 | - React-debug
634 | - React-graphics
635 | - React-jsi
636 | - React-jsiexecutor
637 | - React-logger
638 | - React-rendererdebug
639 | - React-runtimescheduler
640 | - React-utils
641 | - ReactCommon/turbomodule/core
642 | - React-Fabric/components/text (0.74.5):
643 | - DoubleConversion
644 | - fmt (= 9.1.0)
645 | - glog
646 | - hermes-engine
647 | - RCT-Folly/Fabric (= 2024.01.01.00)
648 | - RCTRequired
649 | - RCTTypeSafety
650 | - React-Core
651 | - React-cxxreact
652 | - React-debug
653 | - React-graphics
654 | - React-jsi
655 | - React-jsiexecutor
656 | - React-logger
657 | - React-rendererdebug
658 | - React-runtimescheduler
659 | - React-utils
660 | - ReactCommon/turbomodule/core
661 | - React-Fabric/components/textinput (0.74.5):
662 | - DoubleConversion
663 | - fmt (= 9.1.0)
664 | - glog
665 | - hermes-engine
666 | - RCT-Folly/Fabric (= 2024.01.01.00)
667 | - RCTRequired
668 | - RCTTypeSafety
669 | - React-Core
670 | - React-cxxreact
671 | - React-debug
672 | - React-graphics
673 | - React-jsi
674 | - React-jsiexecutor
675 | - React-logger
676 | - React-rendererdebug
677 | - React-runtimescheduler
678 | - React-utils
679 | - ReactCommon/turbomodule/core
680 | - React-Fabric/components/unimplementedview (0.74.5):
681 | - DoubleConversion
682 | - fmt (= 9.1.0)
683 | - glog
684 | - hermes-engine
685 | - RCT-Folly/Fabric (= 2024.01.01.00)
686 | - RCTRequired
687 | - RCTTypeSafety
688 | - React-Core
689 | - React-cxxreact
690 | - React-debug
691 | - React-graphics
692 | - React-jsi
693 | - React-jsiexecutor
694 | - React-logger
695 | - React-rendererdebug
696 | - React-runtimescheduler
697 | - React-utils
698 | - ReactCommon/turbomodule/core
699 | - React-Fabric/components/view (0.74.5):
700 | - DoubleConversion
701 | - fmt (= 9.1.0)
702 | - glog
703 | - hermes-engine
704 | - RCT-Folly/Fabric (= 2024.01.01.00)
705 | - RCTRequired
706 | - RCTTypeSafety
707 | - React-Core
708 | - React-cxxreact
709 | - React-debug
710 | - React-graphics
711 | - React-jsi
712 | - React-jsiexecutor
713 | - React-logger
714 | - React-rendererdebug
715 | - React-runtimescheduler
716 | - React-utils
717 | - ReactCommon/turbomodule/core
718 | - Yoga
719 | - React-Fabric/core (0.74.5):
720 | - DoubleConversion
721 | - fmt (= 9.1.0)
722 | - glog
723 | - hermes-engine
724 | - RCT-Folly/Fabric (= 2024.01.01.00)
725 | - RCTRequired
726 | - RCTTypeSafety
727 | - React-Core
728 | - React-cxxreact
729 | - React-debug
730 | - React-graphics
731 | - React-jsi
732 | - React-jsiexecutor
733 | - React-logger
734 | - React-rendererdebug
735 | - React-runtimescheduler
736 | - React-utils
737 | - ReactCommon/turbomodule/core
738 | - React-Fabric/imagemanager (0.74.5):
739 | - DoubleConversion
740 | - fmt (= 9.1.0)
741 | - glog
742 | - hermes-engine
743 | - RCT-Folly/Fabric (= 2024.01.01.00)
744 | - RCTRequired
745 | - RCTTypeSafety
746 | - React-Core
747 | - React-cxxreact
748 | - React-debug
749 | - React-graphics
750 | - React-jsi
751 | - React-jsiexecutor
752 | - React-logger
753 | - React-rendererdebug
754 | - React-runtimescheduler
755 | - React-utils
756 | - ReactCommon/turbomodule/core
757 | - React-Fabric/leakchecker (0.74.5):
758 | - DoubleConversion
759 | - fmt (= 9.1.0)
760 | - glog
761 | - hermes-engine
762 | - RCT-Folly/Fabric (= 2024.01.01.00)
763 | - RCTRequired
764 | - RCTTypeSafety
765 | - React-Core
766 | - React-cxxreact
767 | - React-debug
768 | - React-graphics
769 | - React-jsi
770 | - React-jsiexecutor
771 | - React-logger
772 | - React-rendererdebug
773 | - React-runtimescheduler
774 | - React-utils
775 | - ReactCommon/turbomodule/core
776 | - React-Fabric/mounting (0.74.5):
777 | - DoubleConversion
778 | - fmt (= 9.1.0)
779 | - glog
780 | - hermes-engine
781 | - RCT-Folly/Fabric (= 2024.01.01.00)
782 | - RCTRequired
783 | - RCTTypeSafety
784 | - React-Core
785 | - React-cxxreact
786 | - React-debug
787 | - React-graphics
788 | - React-jsi
789 | - React-jsiexecutor
790 | - React-logger
791 | - React-rendererdebug
792 | - React-runtimescheduler
793 | - React-utils
794 | - ReactCommon/turbomodule/core
795 | - React-Fabric/scheduler (0.74.5):
796 | - DoubleConversion
797 | - fmt (= 9.1.0)
798 | - glog
799 | - hermes-engine
800 | - RCT-Folly/Fabric (= 2024.01.01.00)
801 | - RCTRequired
802 | - RCTTypeSafety
803 | - React-Core
804 | - React-cxxreact
805 | - React-debug
806 | - React-graphics
807 | - React-jsi
808 | - React-jsiexecutor
809 | - React-logger
810 | - React-rendererdebug
811 | - React-runtimescheduler
812 | - React-utils
813 | - ReactCommon/turbomodule/core
814 | - React-Fabric/telemetry (0.74.5):
815 | - DoubleConversion
816 | - fmt (= 9.1.0)
817 | - glog
818 | - hermes-engine
819 | - RCT-Folly/Fabric (= 2024.01.01.00)
820 | - RCTRequired
821 | - RCTTypeSafety
822 | - React-Core
823 | - React-cxxreact
824 | - React-debug
825 | - React-graphics
826 | - React-jsi
827 | - React-jsiexecutor
828 | - React-logger
829 | - React-rendererdebug
830 | - React-runtimescheduler
831 | - React-utils
832 | - ReactCommon/turbomodule/core
833 | - React-Fabric/templateprocessor (0.74.5):
834 | - DoubleConversion
835 | - fmt (= 9.1.0)
836 | - glog
837 | - hermes-engine
838 | - RCT-Folly/Fabric (= 2024.01.01.00)
839 | - RCTRequired
840 | - RCTTypeSafety
841 | - React-Core
842 | - React-cxxreact
843 | - React-debug
844 | - React-graphics
845 | - React-jsi
846 | - React-jsiexecutor
847 | - React-logger
848 | - React-rendererdebug
849 | - React-runtimescheduler
850 | - React-utils
851 | - ReactCommon/turbomodule/core
852 | - React-Fabric/textlayoutmanager (0.74.5):
853 | - DoubleConversion
854 | - fmt (= 9.1.0)
855 | - glog
856 | - hermes-engine
857 | - RCT-Folly/Fabric (= 2024.01.01.00)
858 | - RCTRequired
859 | - RCTTypeSafety
860 | - React-Core
861 | - React-cxxreact
862 | - React-debug
863 | - React-Fabric/uimanager
864 | - React-graphics
865 | - React-jsi
866 | - React-jsiexecutor
867 | - React-logger
868 | - React-rendererdebug
869 | - React-runtimescheduler
870 | - React-utils
871 | - ReactCommon/turbomodule/core
872 | - React-Fabric/uimanager (0.74.5):
873 | - DoubleConversion
874 | - fmt (= 9.1.0)
875 | - glog
876 | - hermes-engine
877 | - RCT-Folly/Fabric (= 2024.01.01.00)
878 | - RCTRequired
879 | - RCTTypeSafety
880 | - React-Core
881 | - React-cxxreact
882 | - React-debug
883 | - React-graphics
884 | - React-jsi
885 | - React-jsiexecutor
886 | - React-logger
887 | - React-rendererdebug
888 | - React-runtimescheduler
889 | - React-utils
890 | - ReactCommon/turbomodule/core
891 | - React-FabricImage (0.74.5):
892 | - DoubleConversion
893 | - fmt (= 9.1.0)
894 | - glog
895 | - hermes-engine
896 | - RCT-Folly/Fabric (= 2024.01.01.00)
897 | - RCTRequired (= 0.74.5)
898 | - RCTTypeSafety (= 0.74.5)
899 | - React-Fabric
900 | - React-graphics
901 | - React-ImageManager
902 | - React-jsi
903 | - React-jsiexecutor (= 0.74.5)
904 | - React-logger
905 | - React-rendererdebug
906 | - React-utils
907 | - ReactCommon
908 | - Yoga
909 | - React-featureflags (0.74.5)
910 | - React-graphics (0.74.5):
911 | - DoubleConversion
912 | - fmt (= 9.1.0)
913 | - glog
914 | - RCT-Folly/Fabric (= 2024.01.01.00)
915 | - React-Core/Default (= 0.74.5)
916 | - React-utils
917 | - React-hermes (0.74.5):
918 | - DoubleConversion
919 | - fmt (= 9.1.0)
920 | - glog
921 | - hermes-engine
922 | - RCT-Folly (= 2024.01.01.00)
923 | - React-cxxreact (= 0.74.5)
924 | - React-jsi
925 | - React-jsiexecutor (= 0.74.5)
926 | - React-jsinspector
927 | - React-perflogger (= 0.74.5)
928 | - React-runtimeexecutor
929 | - React-ImageManager (0.74.5):
930 | - glog
931 | - RCT-Folly/Fabric
932 | - React-Core/Default
933 | - React-debug
934 | - React-Fabric
935 | - React-graphics
936 | - React-rendererdebug
937 | - React-utils
938 | - React-jserrorhandler (0.74.5):
939 | - RCT-Folly/Fabric (= 2024.01.01.00)
940 | - React-debug
941 | - React-jsi
942 | - React-Mapbuffer
943 | - React-jsi (0.74.5):
944 | - boost (= 1.83.0)
945 | - DoubleConversion
946 | - fmt (= 9.1.0)
947 | - glog
948 | - hermes-engine
949 | - RCT-Folly (= 2024.01.01.00)
950 | - React-jsiexecutor (0.74.5):
951 | - DoubleConversion
952 | - fmt (= 9.1.0)
953 | - glog
954 | - hermes-engine
955 | - RCT-Folly (= 2024.01.01.00)
956 | - React-cxxreact (= 0.74.5)
957 | - React-jsi (= 0.74.5)
958 | - React-jsinspector
959 | - React-perflogger (= 0.74.5)
960 | - React-jsinspector (0.74.5):
961 | - DoubleConversion
962 | - glog
963 | - hermes-engine
964 | - RCT-Folly (= 2024.01.01.00)
965 | - React-featureflags
966 | - React-jsi
967 | - React-runtimeexecutor (= 0.74.5)
968 | - React-jsitracing (0.74.5):
969 | - React-jsi
970 | - React-logger (0.74.5):
971 | - glog
972 | - React-Mapbuffer (0.74.5):
973 | - glog
974 | - React-debug
975 | - React-nativeconfig (0.74.5)
976 | - React-NativeModulesApple (0.74.5):
977 | - glog
978 | - hermes-engine
979 | - React-callinvoker
980 | - React-Core
981 | - React-cxxreact
982 | - React-jsi
983 | - React-jsinspector
984 | - React-runtimeexecutor
985 | - ReactCommon/turbomodule/bridging
986 | - ReactCommon/turbomodule/core
987 | - React-perflogger (0.74.5)
988 | - React-RCTActionSheet (0.74.5):
989 | - React-Core/RCTActionSheetHeaders (= 0.74.5)
990 | - React-RCTAnimation (0.74.5):
991 | - RCT-Folly (= 2024.01.01.00)
992 | - RCTTypeSafety
993 | - React-Codegen
994 | - React-Core/RCTAnimationHeaders
995 | - React-jsi
996 | - React-NativeModulesApple
997 | - ReactCommon
998 | - React-RCTAppDelegate (0.74.5):
999 | - RCT-Folly (= 2024.01.01.00)
1000 | - RCTRequired
1001 | - RCTTypeSafety
1002 | - React-Codegen
1003 | - React-Core
1004 | - React-CoreModules
1005 | - React-debug
1006 | - React-Fabric
1007 | - React-featureflags
1008 | - React-graphics
1009 | - React-hermes
1010 | - React-nativeconfig
1011 | - React-NativeModulesApple
1012 | - React-RCTFabric
1013 | - React-RCTImage
1014 | - React-RCTNetwork
1015 | - React-rendererdebug
1016 | - React-RuntimeApple
1017 | - React-RuntimeCore
1018 | - React-RuntimeHermes
1019 | - React-runtimescheduler
1020 | - React-utils
1021 | - ReactCommon
1022 | - React-RCTBlob (0.74.5):
1023 | - DoubleConversion
1024 | - fmt (= 9.1.0)
1025 | - hermes-engine
1026 | - RCT-Folly (= 2024.01.01.00)
1027 | - React-Codegen
1028 | - React-Core/RCTBlobHeaders
1029 | - React-Core/RCTWebSocket
1030 | - React-jsi
1031 | - React-jsinspector
1032 | - React-NativeModulesApple
1033 | - React-RCTNetwork
1034 | - ReactCommon
1035 | - React-RCTFabric (0.74.5):
1036 | - glog
1037 | - hermes-engine
1038 | - RCT-Folly/Fabric (= 2024.01.01.00)
1039 | - React-Core
1040 | - React-debug
1041 | - React-Fabric
1042 | - React-FabricImage
1043 | - React-featureflags
1044 | - React-graphics
1045 | - React-ImageManager
1046 | - React-jsi
1047 | - React-jsinspector
1048 | - React-nativeconfig
1049 | - React-RCTImage
1050 | - React-RCTText
1051 | - React-rendererdebug
1052 | - React-runtimescheduler
1053 | - React-utils
1054 | - Yoga
1055 | - React-RCTImage (0.74.5):
1056 | - RCT-Folly (= 2024.01.01.00)
1057 | - RCTTypeSafety
1058 | - React-Codegen
1059 | - React-Core/RCTImageHeaders
1060 | - React-jsi
1061 | - React-NativeModulesApple
1062 | - React-RCTNetwork
1063 | - ReactCommon
1064 | - React-RCTLinking (0.74.5):
1065 | - React-Codegen
1066 | - React-Core/RCTLinkingHeaders (= 0.74.5)
1067 | - React-jsi (= 0.74.5)
1068 | - React-NativeModulesApple
1069 | - ReactCommon
1070 | - ReactCommon/turbomodule/core (= 0.74.5)
1071 | - React-RCTNetwork (0.74.5):
1072 | - RCT-Folly (= 2024.01.01.00)
1073 | - RCTTypeSafety
1074 | - React-Codegen
1075 | - React-Core/RCTNetworkHeaders
1076 | - React-jsi
1077 | - React-NativeModulesApple
1078 | - ReactCommon
1079 | - React-RCTSettings (0.74.5):
1080 | - RCT-Folly (= 2024.01.01.00)
1081 | - RCTTypeSafety
1082 | - React-Codegen
1083 | - React-Core/RCTSettingsHeaders
1084 | - React-jsi
1085 | - React-NativeModulesApple
1086 | - ReactCommon
1087 | - React-RCTText (0.74.5):
1088 | - React-Core/RCTTextHeaders (= 0.74.5)
1089 | - Yoga
1090 | - React-RCTVibration (0.74.5):
1091 | - RCT-Folly (= 2024.01.01.00)
1092 | - React-Codegen
1093 | - React-Core/RCTVibrationHeaders
1094 | - React-jsi
1095 | - React-NativeModulesApple
1096 | - ReactCommon
1097 | - React-rendererdebug (0.74.5):
1098 | - DoubleConversion
1099 | - fmt (= 9.1.0)
1100 | - RCT-Folly (= 2024.01.01.00)
1101 | - React-debug
1102 | - React-rncore (0.74.5)
1103 | - React-RuntimeApple (0.74.5):
1104 | - hermes-engine
1105 | - RCT-Folly/Fabric (= 2024.01.01.00)
1106 | - React-callinvoker
1107 | - React-Core/Default
1108 | - React-CoreModules
1109 | - React-cxxreact
1110 | - React-jserrorhandler
1111 | - React-jsi
1112 | - React-jsiexecutor
1113 | - React-jsinspector
1114 | - React-Mapbuffer
1115 | - React-NativeModulesApple
1116 | - React-RCTFabric
1117 | - React-RuntimeCore
1118 | - React-runtimeexecutor
1119 | - React-RuntimeHermes
1120 | - React-utils
1121 | - React-RuntimeCore (0.74.5):
1122 | - glog
1123 | - hermes-engine
1124 | - RCT-Folly/Fabric (= 2024.01.01.00)
1125 | - React-cxxreact
1126 | - React-featureflags
1127 | - React-jserrorhandler
1128 | - React-jsi
1129 | - React-jsiexecutor
1130 | - React-jsinspector
1131 | - React-runtimeexecutor
1132 | - React-runtimescheduler
1133 | - React-utils
1134 | - React-runtimeexecutor (0.74.5):
1135 | - React-jsi (= 0.74.5)
1136 | - React-RuntimeHermes (0.74.5):
1137 | - hermes-engine
1138 | - RCT-Folly/Fabric (= 2024.01.01.00)
1139 | - React-featureflags
1140 | - React-hermes
1141 | - React-jsi
1142 | - React-jsinspector
1143 | - React-jsitracing
1144 | - React-nativeconfig
1145 | - React-RuntimeCore
1146 | - React-utils
1147 | - React-runtimescheduler (0.74.5):
1148 | - glog
1149 | - hermes-engine
1150 | - RCT-Folly (= 2024.01.01.00)
1151 | - React-callinvoker
1152 | - React-cxxreact
1153 | - React-debug
1154 | - React-featureflags
1155 | - React-jsi
1156 | - React-rendererdebug
1157 | - React-runtimeexecutor
1158 | - React-utils
1159 | - React-utils (0.74.5):
1160 | - glog
1161 | - hermes-engine
1162 | - RCT-Folly (= 2024.01.01.00)
1163 | - React-debug
1164 | - React-jsi (= 0.74.5)
1165 | - ReactCommon (0.74.5):
1166 | - ReactCommon/turbomodule (= 0.74.5)
1167 | - ReactCommon/turbomodule (0.74.5):
1168 | - DoubleConversion
1169 | - fmt (= 9.1.0)
1170 | - glog
1171 | - hermes-engine
1172 | - RCT-Folly (= 2024.01.01.00)
1173 | - React-callinvoker (= 0.74.5)
1174 | - React-cxxreact (= 0.74.5)
1175 | - React-jsi (= 0.74.5)
1176 | - React-logger (= 0.74.5)
1177 | - React-perflogger (= 0.74.5)
1178 | - ReactCommon/turbomodule/bridging (= 0.74.5)
1179 | - ReactCommon/turbomodule/core (= 0.74.5)
1180 | - ReactCommon/turbomodule/bridging (0.74.5):
1181 | - DoubleConversion
1182 | - fmt (= 9.1.0)
1183 | - glog
1184 | - hermes-engine
1185 | - RCT-Folly (= 2024.01.01.00)
1186 | - React-callinvoker (= 0.74.5)
1187 | - React-cxxreact (= 0.74.5)
1188 | - React-jsi (= 0.74.5)
1189 | - React-logger (= 0.74.5)
1190 | - React-perflogger (= 0.74.5)
1191 | - ReactCommon/turbomodule/core (0.74.5):
1192 | - DoubleConversion
1193 | - fmt (= 9.1.0)
1194 | - glog
1195 | - hermes-engine
1196 | - RCT-Folly (= 2024.01.01.00)
1197 | - React-callinvoker (= 0.74.5)
1198 | - React-cxxreact (= 0.74.5)
1199 | - React-debug (= 0.74.5)
1200 | - React-jsi (= 0.74.5)
1201 | - React-logger (= 0.74.5)
1202 | - React-perflogger (= 0.74.5)
1203 | - React-utils (= 0.74.5)
1204 | - SocketRocket (0.7.0)
1205 | - Yoga (0.0.0)
1206 |
1207 | DEPENDENCIES:
1208 | - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
1209 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
1210 | - EXConstants (from `../node_modules/expo-constants/ios`)
1211 | - Expo (from `../node_modules/expo`)
1212 | - ExpoAsset (from `../node_modules/expo-asset/ios`)
1213 | - ExpoCheckInstalledApps (from `../../ios`)
1214 | - ExpoFileSystem (from `../node_modules/expo-file-system/ios`)
1215 | - ExpoFont (from `../node_modules/expo-font/ios`)
1216 | - ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`)
1217 | - ExpoModulesCore (from `../node_modules/expo-modules-core`)
1218 | - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
1219 | - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`)
1220 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
1221 | - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
1222 | - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
1223 | - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
1224 | - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`)
1225 | - RCTRequired (from `../node_modules/react-native/Libraries/Required`)
1226 | - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
1227 | - React (from `../node_modules/react-native/`)
1228 | - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
1229 | - React-Codegen (from `build/generated/ios`)
1230 | - React-Core (from `../node_modules/react-native/`)
1231 | - React-Core/RCTWebSocket (from `../node_modules/react-native/`)
1232 | - React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
1233 | - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
1234 | - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`)
1235 | - React-Fabric (from `../node_modules/react-native/ReactCommon`)
1236 | - React-FabricImage (from `../node_modules/react-native/ReactCommon`)
1237 | - React-featureflags (from `../node_modules/react-native/ReactCommon/react/featureflags`)
1238 | - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`)
1239 | - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`)
1240 | - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`)
1241 | - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`)
1242 | - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
1243 | - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
1244 | - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`)
1245 | - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`)
1246 | - React-logger (from `../node_modules/react-native/ReactCommon/logger`)
1247 | - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`)
1248 | - React-nativeconfig (from `../node_modules/react-native/ReactCommon`)
1249 | - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
1250 | - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
1251 | - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
1252 | - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
1253 | - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`)
1254 | - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
1255 | - React-RCTFabric (from `../node_modules/react-native/React`)
1256 | - React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
1257 | - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
1258 | - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
1259 | - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
1260 | - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
1261 | - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
1262 | - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`)
1263 | - React-rncore (from `../node_modules/react-native/ReactCommon`)
1264 | - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`)
1265 | - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`)
1266 | - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
1267 | - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`)
1268 | - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
1269 | - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
1270 | - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
1271 | - Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
1272 |
1273 | SPEC REPOS:
1274 | trunk:
1275 | - SocketRocket
1276 |
1277 | EXTERNAL SOURCES:
1278 | boost:
1279 | :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec"
1280 | DoubleConversion:
1281 | :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
1282 | EXConstants:
1283 | :path: "../node_modules/expo-constants/ios"
1284 | Expo:
1285 | :path: "../node_modules/expo"
1286 | ExpoAsset:
1287 | :path: "../node_modules/expo-asset/ios"
1288 | ExpoCheckInstalledApps:
1289 | :path: "../../ios"
1290 | ExpoFileSystem:
1291 | :path: "../node_modules/expo-file-system/ios"
1292 | ExpoFont:
1293 | :path: "../node_modules/expo-font/ios"
1294 | ExpoKeepAwake:
1295 | :path: "../node_modules/expo-keep-awake/ios"
1296 | ExpoModulesCore:
1297 | :path: "../node_modules/expo-modules-core"
1298 | FBLazyVector:
1299 | :path: "../node_modules/react-native/Libraries/FBLazyVector"
1300 | fmt:
1301 | :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec"
1302 | glog:
1303 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
1304 | hermes-engine:
1305 | :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
1306 | :tag: hermes-2024-06-28-RNv0.74.3-7bda0c267e76d11b68a585f84cfdd65000babf85
1307 | RCT-Folly:
1308 | :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
1309 | RCTDeprecation:
1310 | :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation"
1311 | RCTRequired:
1312 | :path: "../node_modules/react-native/Libraries/Required"
1313 | RCTTypeSafety:
1314 | :path: "../node_modules/react-native/Libraries/TypeSafety"
1315 | React:
1316 | :path: "../node_modules/react-native/"
1317 | React-callinvoker:
1318 | :path: "../node_modules/react-native/ReactCommon/callinvoker"
1319 | React-Codegen:
1320 | :path: build/generated/ios
1321 | React-Core:
1322 | :path: "../node_modules/react-native/"
1323 | React-CoreModules:
1324 | :path: "../node_modules/react-native/React/CoreModules"
1325 | React-cxxreact:
1326 | :path: "../node_modules/react-native/ReactCommon/cxxreact"
1327 | React-debug:
1328 | :path: "../node_modules/react-native/ReactCommon/react/debug"
1329 | React-Fabric:
1330 | :path: "../node_modules/react-native/ReactCommon"
1331 | React-FabricImage:
1332 | :path: "../node_modules/react-native/ReactCommon"
1333 | React-featureflags:
1334 | :path: "../node_modules/react-native/ReactCommon/react/featureflags"
1335 | React-graphics:
1336 | :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics"
1337 | React-hermes:
1338 | :path: "../node_modules/react-native/ReactCommon/hermes"
1339 | React-ImageManager:
1340 | :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios"
1341 | React-jserrorhandler:
1342 | :path: "../node_modules/react-native/ReactCommon/jserrorhandler"
1343 | React-jsi:
1344 | :path: "../node_modules/react-native/ReactCommon/jsi"
1345 | React-jsiexecutor:
1346 | :path: "../node_modules/react-native/ReactCommon/jsiexecutor"
1347 | React-jsinspector:
1348 | :path: "../node_modules/react-native/ReactCommon/jsinspector-modern"
1349 | React-jsitracing:
1350 | :path: "../node_modules/react-native/ReactCommon/hermes/executor/"
1351 | React-logger:
1352 | :path: "../node_modules/react-native/ReactCommon/logger"
1353 | React-Mapbuffer:
1354 | :path: "../node_modules/react-native/ReactCommon"
1355 | React-nativeconfig:
1356 | :path: "../node_modules/react-native/ReactCommon"
1357 | React-NativeModulesApple:
1358 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios"
1359 | React-perflogger:
1360 | :path: "../node_modules/react-native/ReactCommon/reactperflogger"
1361 | React-RCTActionSheet:
1362 | :path: "../node_modules/react-native/Libraries/ActionSheetIOS"
1363 | React-RCTAnimation:
1364 | :path: "../node_modules/react-native/Libraries/NativeAnimation"
1365 | React-RCTAppDelegate:
1366 | :path: "../node_modules/react-native/Libraries/AppDelegate"
1367 | React-RCTBlob:
1368 | :path: "../node_modules/react-native/Libraries/Blob"
1369 | React-RCTFabric:
1370 | :path: "../node_modules/react-native/React"
1371 | React-RCTImage:
1372 | :path: "../node_modules/react-native/Libraries/Image"
1373 | React-RCTLinking:
1374 | :path: "../node_modules/react-native/Libraries/LinkingIOS"
1375 | React-RCTNetwork:
1376 | :path: "../node_modules/react-native/Libraries/Network"
1377 | React-RCTSettings:
1378 | :path: "../node_modules/react-native/Libraries/Settings"
1379 | React-RCTText:
1380 | :path: "../node_modules/react-native/Libraries/Text"
1381 | React-RCTVibration:
1382 | :path: "../node_modules/react-native/Libraries/Vibration"
1383 | React-rendererdebug:
1384 | :path: "../node_modules/react-native/ReactCommon/react/renderer/debug"
1385 | React-rncore:
1386 | :path: "../node_modules/react-native/ReactCommon"
1387 | React-RuntimeApple:
1388 | :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios"
1389 | React-RuntimeCore:
1390 | :path: "../node_modules/react-native/ReactCommon/react/runtime"
1391 | React-runtimeexecutor:
1392 | :path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
1393 | React-RuntimeHermes:
1394 | :path: "../node_modules/react-native/ReactCommon/react/runtime"
1395 | React-runtimescheduler:
1396 | :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler"
1397 | React-utils:
1398 | :path: "../node_modules/react-native/ReactCommon/react/utils"
1399 | ReactCommon:
1400 | :path: "../node_modules/react-native/ReactCommon"
1401 | Yoga:
1402 | :path: "../node_modules/react-native/ReactCommon/yoga"
1403 |
1404 | SPEC CHECKSUMS:
1405 | boost: d3f49c53809116a5d38da093a8aa78bf551aed09
1406 | DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5
1407 | EXConstants: 409690fbfd5afea964e5e9d6c4eb2c2b59222c59
1408 | Expo: 9b6666ef2fedcfc89c5b9be2aa1ce12b81f9e7f5
1409 | ExpoAsset: 323700f291684f110fb55f0d4022a3362ea9f875
1410 | ExpoCheckInstalledApps: d1181123d716af565c50ce02e2633db3c91056f0
1411 | ExpoFileSystem: 80bfe850b1f9922c16905822ecbf97acd711dc51
1412 | ExpoFont: 00756e6c796d8f7ee8d211e29c8b619e75cbf238
1413 | ExpoKeepAwake: 3b8815d9dd1d419ee474df004021c69fdd316d08
1414 | ExpoModulesCore: 831ece8311a489418746925820bbffdda587d6f4
1415 | FBLazyVector: ac12dc084d1c8ec4cc4d7b3cf1b0ebda6dab85af
1416 | fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120
1417 | glog: fdfdfe5479092de0c4bdbebedd9056951f092c4f
1418 | hermes-engine: 8c1577f3fdb849cbe7729c2e7b5abc4b845e88f8
1419 | RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47
1420 | RCTDeprecation: 3afceddffa65aee666dafd6f0116f1d975db1584
1421 | RCTRequired: ec1239bc9d8bf63e10fb92bd8b26171a9258e0c1
1422 | RCTTypeSafety: f5ecbc86c5c5fa163c05acb7a1c5012e15b5f994
1423 | React: fc9fa7258eff606f44d58c5b233a82dc9cf09018
1424 | React-callinvoker: e3fab14d69607fb7e8e3a57e5a415aed863d3599
1425 | React-Codegen: 6fa87b7c6b8efcd0cef4bfeaec8c8bc8a6abe75a
1426 | React-Core: 3a5fd9e781cecf87803e5b091496a606a3df774a
1427 | React-CoreModules: cbf4707dafab8f9f826ac0c63a07d0bf5d01e256
1428 | React-cxxreact: 7b188556271e3c7fdf22a04819f6a6225045b9dd
1429 | React-debug: d30893c49ae1bce4037ea5cd8bb2511d2a38d057
1430 | React-Fabric: 826729dd2304fda9b89ff0a579f60ba2a470bc26
1431 | React-FabricImage: 2ad1fb8ffa5778eda9ed204a7b3cdd70bc333ce7
1432 | React-featureflags: 4ae83e72d9a92452793601ac9ac7d2280e486089
1433 | React-graphics: 61a026e1c1e7e20d20ac9fec6f6de631732b233d
1434 | React-hermes: a7054fbcbda3957e3c5eaad06ef9bf79998d535a
1435 | React-ImageManager: 2bbd6eb2e696bc680f76f84563e4b87d241614e1
1436 | React-jserrorhandler: 56fa04d49bfbe54ddfece7916673a73ebfea286b
1437 | React-jsi: f3ce1dd2e950b6ad12b65ea3ef89168f1b94c584
1438 | React-jsiexecutor: b4df3a27973d82f9abf3c4bd0f88e042cda25f16
1439 | React-jsinspector: 97ea746c023687de7313ee289817d6991d596c7d
1440 | React-jsitracing: 3b6060bbf5317663667e1dd93560c7943ab86ccc
1441 | React-logger: 257858bd55f3a4e1bc0cf07ddc8fb9faba6f8c7c
1442 | React-Mapbuffer: 6c1cacdbf40b531f549eba249e531a7d0bfd8e7f
1443 | React-nativeconfig: ba9a2e54e2f0882cf7882698825052793ed4c851
1444 | React-NativeModulesApple: 8d11ff8955181540585c944cf48e9e7236952697
1445 | React-perflogger: ed4e0c65781521e0424f2e5e40b40cc7879d737e
1446 | React-RCTActionSheet: 49d53ff03bb5688ca4606c55859053a0cd129ea5
1447 | React-RCTAnimation: 07b4923885c52c397c4ec103924bf6e53b42c73e
1448 | React-RCTAppDelegate: 316e295076734baf9bdf1bfac7d92ab647aed930
1449 | React-RCTBlob: 85c57b0d5e667ff8a472163ba3af0628171a64bb
1450 | React-RCTFabric: 97c1465ded4dc92841f5376a39e43e1b2c455f40
1451 | React-RCTImage: b965c85bec820e2a9c154b1fb00a2ecdd59a9c92
1452 | React-RCTLinking: 75f04a5f27c26c4e73a39c50df470820d219df79
1453 | React-RCTNetwork: c1a9143f4d5778efc92da40d83969d03912ccc24
1454 | React-RCTSettings: c6800f91c0ecd48868cd5db754b0b0a7f5ffe039
1455 | React-RCTText: b923e24f9b7250bc4f7ab154c4168ad9f8d8fc9d
1456 | React-RCTVibration: 08c4f0c917c435b3619386c25a94ee5d64c250f0
1457 | React-rendererdebug: 3cda04217d9df67b94397ee0ead8ef3d8b7e427b
1458 | React-rncore: 4013508a2f3fcf46c961919bbbd4bfdda198977e
1459 | React-RuntimeApple: 447844a2bdb0a03ffd24e5b4a4b96cfc50325b88
1460 | React-RuntimeCore: 9b5bffdaccee9b707b1c2694c9044e13ff0bb087
1461 | React-runtimeexecutor: 0e688aefc14c6bc8601f4968d8d01c3fb6446844
1462 | React-RuntimeHermes: 4d6ef6bb0f2b0b40d59143317f6b99c82764c959
1463 | React-runtimescheduler: cfbe85c3510c541ec6dc815c7729b41304b67961
1464 | React-utils: f242eb7e7889419d979ca0e1c02ccc0ea6e43b29
1465 | ReactCommon: f7da14a8827b72704169a48c929bcde802698361
1466 | SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d
1467 | Yoga: 950bbfd7e6f04790fdb51149ed51df41f329fcc8
1468 |
1469 | PODFILE CHECKSUM: b4fee261fb7f6e5b531dd61914c93496c7af3ed4
1470 |
1471 | COCOAPODS: 1.14.3
1472 |
--------------------------------------------------------------------------------