diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index d33db3b3..78664b2a 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -7,16 +7,16 @@ on: paths: - '.github/workflows/build-android.yml' - 'android/**' - - 'examples/basic/android/**' + - 'examples/bare/android/**' - 'yarn.lock' - - 'examples/basic/yarn.lock' + - 'examples/bare/yarn.lock' pull_request: paths: - '.github/workflows/build-android.yml' - 'android/**' - - 'examples/basic/android/**' + - 'examples/bare/android/**' - 'yarn.lock' - - 'examples/basic/yarn.lock' + - 'examples/bare/yarn.lock' jobs: build: @@ -32,10 +32,18 @@ jobs: java-version: 17 java-package: jdk - - name: Install node_modules + - name: Install node_modules at Root uses: ./.github/actions/setup-node with: - working-directory: examples/basic + working-directory: ./ + + - name: Build Library + run: yarn build + + - name: Install node_modules at Example + uses: ./.github/actions/setup-node + with: + working-directory: examples/bare - name: Restore Gradle cache uses: actions/cache@v3 @@ -46,11 +54,11 @@ jobs: key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle- - - name: Run Gradle Build for basic example - run: cd examples/basic/android && ./gradlew assembleDebug --build-cache && cd ../../.. + - name: Run Gradle Build for bare example + run: cd examples/bare/android && ./gradlew assembleDebug --build-cache && cd ../../.. - build-without-ads: - name: Build Android Example App Without Ads + build-with-ads: + name: Build Android Example App With Ads runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -62,10 +70,18 @@ jobs: java-version: 17 java-package: jdk - - name: Install node_modules + - name: Install node_modules at Root uses: ./.github/actions/setup-node with: - working-directory: examples/basic + working-directory: ./ + + - name: Build Library + run: yarn build + + - name: Install node_modules at Example + uses: ./.github/actions/setup-node + with: + working-directory: examples/bare - name: Restore Gradle cache uses: actions/cache@v3 @@ -76,5 +92,5 @@ jobs: key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle- - - name: Run Gradle Build for basic example - run: cd examples/basic/android && export RNV_SAMPLE_ENABLE_ADS=false && ./gradlew assembleDebug --build-cache && cd ../../.. \ No newline at end of file + - name: Run Gradle Build for bare example + run: cd examples/bare/android && export RNV_SAMPLE_ENABLE_ADS=true && ./gradlew assembleDebug --build-cache && cd ../../.. diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 9e9d4854..f78a8105 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -9,28 +9,37 @@ on: - '.github/workflows/build-ios.yml' - 'ios/**' - '*.podspec' - - 'examples/basic/ios/**' + - 'examples/bare/ios/**' pull_request: paths: - '.github/workflows/build-ios.yml' - 'ios/**' - '*.podspec' - - 'examples/basic/ios/**' + - 'examples/bare/ios/**' jobs: build: name: Build iOS Example App - runs-on: macos-14 # This allow us to use Xcode 15.0.1 which is a lot faster - TODO change to "macos-latest" once it's out of beta + runs-on: macos-latest defaults: run: - working-directory: examples/basic/ios + working-directory: examples/bare/ios steps: - uses: actions/checkout@v4 - - name: Install node_modules + - name: Install node_modules at Root uses: ./.github/actions/setup-node with: - working-directory: examples/basic + working-directory: ./ + + - name: Build Library + working-directory: ./ + run: yarn build + + - name: Install node_modules at Example + uses: ./.github/actions/setup-node + with: + working-directory: examples/bare - name: Restore buildcache uses: mikehardy/buildcache-action@v2 @@ -46,21 +55,27 @@ jobs: uses: actions/cache@v3 with: path: | - examples/basic/ios/Pods + examples/bare/ios/Pods ~/Library/Caches/CocoaPods ~/.cocoapods key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} restore-keys: | ${{ runner.os }}-pods- + + - name: Generate Native Project + run: pod install + - name: Install Pods run: pod install + - name: Install xcpretty run: gem install xcpretty + - name: Build App run: "set -o pipefail && xcodebuild \ -derivedDataPath build -UseModernBuildSystem=YES \ - -workspace videoplayer.xcworkspace \ - -scheme videoplayer \ + -workspace BareExample.xcworkspace \ + -scheme BareExample \ -sdk iphonesimulator \ -configuration Debug \ -destination 'platform=iOS Simulator,name=iPhone 14' \ @@ -69,17 +84,26 @@ jobs: build-with-ads: name: Build iOS Example App With Ads - runs-on: macos-14 # This allow us to use Xcode 15.0.1 which is a lot faster - TODO change to "macos-latest" once it's out of beta + runs-on: macos-latest defaults: run: - working-directory: examples/basic/ios + working-directory: examples/bare/ios steps: - uses: actions/checkout@v4 - - name: Install node_modules + - name: Install node_modules at Root uses: ./.github/actions/setup-node with: - working-directory: examples/basic + working-directory: ./ + + - name: Build Library + working-directory: ./ + run: yarn build + + - name: Install node_modules at Example + uses: ./.github/actions/setup-node + with: + working-directory: examples/bare - name: Restore buildcache uses: mikehardy/buildcache-action@v2 @@ -95,21 +119,27 @@ jobs: uses: actions/cache@v3 with: path: | - examples/basic/ios/Pods + examples/bare/ios/Pods ~/Library/Caches/CocoaPods ~/.cocoapods key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} restore-keys: | ${{ runner.os }}-pods- + + - name: Generate Native Project + run: export RNV_SAMPLE_ENABLE_ADS=true && pod install + - name: Install Pods run: export RNV_SAMPLE_ENABLE_ADS=true && pod install + - name: Install xcpretty run: gem install xcpretty + - name: Build App run: "set -o pipefail && export RNV_SAMPLE_ENABLE_ADS=true && xcodebuild \ -derivedDataPath build -UseModernBuildSystem=YES \ - -workspace videoplayer.xcworkspace \ - -scheme videoplayer \ + -workspace BareExample.xcworkspace \ + -scheme BareExample \ -sdk iphonesimulator \ -configuration Debug \ -destination 'platform=iOS Simulator,name=iPhone 14' \ @@ -118,17 +148,26 @@ jobs: build-with-caching: name: Build iOS Example App With Caching - runs-on: macos-14 # This allow us to use Xcode 15.0.1 which is a lot faster - TODO change to "macos-latest" once it's out of beta + runs-on: macos-latest defaults: run: - working-directory: examples/basic/ios + working-directory: examples/bare/ios steps: - uses: actions/checkout@v4 - - name: Install node_modules + - name: Install node_modules at Root uses: ./.github/actions/setup-node with: - working-directory: examples/basic + working-directory: ./ + + - name: Build Library + working-directory: ./ + run: yarn build + + - name: Install node_modules at Example + uses: ./.github/actions/setup-node + with: + working-directory: examples/bare - name: Restore buildcache uses: mikehardy/buildcache-action@v2 @@ -144,21 +183,27 @@ jobs: uses: actions/cache@v3 with: path: | - examples/basic/ios/Pods + examples/bare/ios/Pods ~/Library/Caches/CocoaPods ~/.cocoapods key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} restore-keys: | ${{ runner.os }}-pods- + + - name: Generate Native Project + run: export RNV_SAMPLE_VIDEO_CACHING=true && pod install + - name: Install Pods run: export RNV_SAMPLE_VIDEO_CACHING=true && pod install + - name: Install xcpretty run: gem install xcpretty + - name: Build App run: "set -o pipefail && export RNV_SAMPLE_VIDEO_CACHING=true && xcodebuild \ -derivedDataPath build -UseModernBuildSystem=YES \ - -workspace videoplayer.xcworkspace \ - -scheme videoplayer \ + -workspace BareExample.xcworkspace \ + -scheme BareExample \ -sdk iphonesimulator \ -configuration Debug \ -destination 'platform=iOS Simulator,name=iPhone 14' \ diff --git a/docs/pages/_meta.json b/docs/pages/_meta.json index bbf5bdae..3e330ad3 100644 --- a/docs/pages/_meta.json +++ b/docs/pages/_meta.json @@ -17,5 +17,10 @@ "type": "separator", "title": "" }, + "example_apps": { + "title": "Example Apps", + "newWindow": true, + "href": "https://github.com/TheWidlarzGroup/react-native-video/tree/master/examples" + }, "projects": "Useful projects" } \ No newline at end of file diff --git a/examples/FabricExample/.buckconfig b/examples/FabricExample/.buckconfig deleted file mode 100644 index 934256cb..00000000 --- a/examples/FabricExample/.buckconfig +++ /dev/null @@ -1,6 +0,0 @@ - -[android] - target = Google Inc.:Google APIs:23 - -[maven_repositories] - central = https://repo1.maven.org/maven2 diff --git a/examples/FabricExample/.bundle/config b/examples/FabricExample/.bundle/config deleted file mode 100644 index 848943bb..00000000 --- a/examples/FabricExample/.bundle/config +++ /dev/null @@ -1,2 +0,0 @@ -BUNDLE_PATH: "vendor/bundle" -BUNDLE_FORCE_RUBY_PLATFORM: 1 diff --git a/examples/FabricExample/.eslintrc.js b/examples/FabricExample/.eslintrc.js deleted file mode 100644 index 9dd57a79..00000000 --- a/examples/FabricExample/.eslintrc.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - root: true, - extends: '@react-native', - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint'], - overrides: [ - { - files: ['*.ts', '*.tsx'], - rules: { - '@typescript-eslint/no-shadow': ['error'], - 'no-shadow': 'off', - 'no-undef': 'off', - }, - }, - ], -}; diff --git a/examples/FabricExample/.gitignore b/examples/FabricExample/.gitignore deleted file mode 100644 index 613b9bdc..00000000 --- a/examples/FabricExample/.gitignore +++ /dev/null @@ -1,67 +0,0 @@ -# OSX -# -.DS_Store - -# Xcode -# -build/ -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata -*.xccheckout -*.moved-aside -DerivedData -*.hmap -*.ipa -*.xcuserstate -ios/.xcode.env.local - -# Android/IntelliJ -# -build/ -.idea -.gradle -local.properties -*.iml -*.hprof -.cxx/ - -# node.js -# -node_modules/ -npm-debug.log -yarn-error.log - -# BUCK -buck-out/ -\.buckd/ -*.keystore -!debug.keystore - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the -# screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/ - -**/fastlane/report.xml -**/fastlane/Preview.html -**/fastlane/screenshots -**/fastlane/test_output - -# Bundle artifact -*.jsbundle - -# Ruby / CocoaPods -/ios/Pods/ -/vendor/bundle/ - -# testing -/coverage \ No newline at end of file diff --git a/examples/FabricExample/.prettierrc.js b/examples/FabricExample/.prettierrc.js deleted file mode 100644 index 2b540746..00000000 --- a/examples/FabricExample/.prettierrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - arrowParens: 'avoid', - bracketSameLine: true, - bracketSpacing: false, - singleQuote: true, - trailingComma: 'all', -}; diff --git a/examples/FabricExample/.ruby-version b/examples/FabricExample/.ruby-version deleted file mode 100644 index a603bb50..00000000 --- a/examples/FabricExample/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -2.7.5 diff --git a/examples/FabricExample/.watchmanconfig b/examples/FabricExample/.watchmanconfig deleted file mode 100644 index 9e26dfee..00000000 --- a/examples/FabricExample/.watchmanconfig +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/examples/FabricExample/App.tsx b/examples/FabricExample/App.tsx deleted file mode 100644 index 2a3575dc..00000000 --- a/examples/FabricExample/App.tsx +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Sample React Native App - * https://github.com/facebook/react-native - * - * Generated with the TypeScript template - * https://github.com/react-native-community/react-native-template-typescript - * - * @format - */ - -import React, {type PropsWithChildren} from 'react'; -import {StyleSheet, View} from 'react-native'; -import VideoPlayer from './src/VideoPlayer'; - -const App = () => { - return ; -}; - -export default App; diff --git a/examples/FabricExample/Gemfile b/examples/FabricExample/Gemfile deleted file mode 100644 index 6a7d5c7a..00000000 --- a/examples/FabricExample/Gemfile +++ /dev/null @@ -1,7 +0,0 @@ -source 'https://rubygems.org' - -# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version -ruby ">= 2.6.10" - -gem 'cocoapods', '~> 1.13' -gem 'activesupport', '>= 6.1.7.3', '< 7.1.0' diff --git a/examples/FabricExample/Gemfile.lock b/examples/FabricExample/Gemfile.lock deleted file mode 100644 index ab5cb310..00000000 --- a/examples/FabricExample/Gemfile.lock +++ /dev/null @@ -1,107 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - CFPropertyList (3.0.7) - base64 - nkf - rexml - activesupport (6.1.7.8) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 1.6, < 2) - minitest (>= 5.1) - tzinfo (~> 2.0) - zeitwerk (~> 2.3) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) - algoliasearch (1.27.5) - httpclient (~> 2.8, >= 2.8.3) - json (>= 1.5.1) - atomos (0.1.3) - base64 (0.2.0) - claide (1.1.0) - cocoapods (1.15.2) - addressable (~> 2.8) - claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.15.2) - cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 2.1, < 3.0) - cocoapods-plugins (>= 1.0.0, < 2.0) - cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.6.0, < 2.0) - cocoapods-try (>= 1.1.0, < 2.0) - colored2 (~> 3.1) - escape (~> 0.0.4) - fourflusher (>= 2.3.0, < 3.0) - gh_inspector (~> 1.0) - molinillo (~> 0.8.0) - nap (~> 1.0) - ruby-macho (>= 2.3.0, < 3.0) - xcodeproj (>= 1.23.0, < 2.0) - cocoapods-core (1.15.2) - activesupport (>= 5.0, < 8) - addressable (~> 2.8) - algoliasearch (~> 1.0) - concurrent-ruby (~> 1.1) - fuzzy_match (~> 2.0.4) - nap (~> 1.0) - netrc (~> 0.11) - public_suffix (~> 4.0) - typhoeus (~> 1.0) - cocoapods-deintegrate (1.0.5) - cocoapods-downloader (2.1) - cocoapods-plugins (1.0.0) - nap - cocoapods-search (1.0.1) - cocoapods-trunk (1.6.0) - nap (>= 0.8, < 2.0) - netrc (~> 0.11) - cocoapods-try (1.2.0) - colored2 (3.1.2) - concurrent-ruby (1.2.2) - escape (0.0.4) - ethon (0.16.0) - ffi (>= 1.15.0) - ffi (1.17.0) - fourflusher (2.3.1) - fuzzy_match (2.0.4) - gh_inspector (1.1.3) - httpclient (2.8.3) - i18n (1.12.0) - concurrent-ruby (~> 1.0) - json (2.7.2) - minitest (5.18.0) - molinillo (0.8.0) - nanaimo (0.3.0) - nap (1.1.0) - netrc (0.11.0) - nkf (0.2.0) - public_suffix (4.0.7) - rexml (3.2.9) - strscan - ruby-macho (2.5.1) - strscan (3.1.0) - typhoeus (1.4.1) - ethon (>= 0.9.0) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - xcodeproj (1.24.0) - CFPropertyList (>= 2.3.3, < 4.0) - atomos (~> 0.1.3) - claide (>= 1.0.2, < 2.0) - colored2 (~> 3.1) - nanaimo (~> 0.3.0) - rexml (~> 3.2.4) - zeitwerk (2.6.16) - -PLATFORMS - ruby - -DEPENDENCIES - activesupport (>= 6.1.7.3, < 7.1.0) - cocoapods (~> 1.13) - -RUBY VERSION - ruby 2.7.5p203 - -BUNDLED WITH - 2.4.5 diff --git a/examples/FabricExample/__tests__/App-test.tsx b/examples/FabricExample/__tests__/App-test.tsx deleted file mode 100644 index 9eac6fbc..00000000 --- a/examples/FabricExample/__tests__/App-test.tsx +++ /dev/null @@ -1,17 +0,0 @@ -/** - * @format - */ - -import 'react-native'; -import React from 'react'; -import App from '../App'; - -// Note: import explicitly to use the types shipped with jest. -import {it} from '@jest/globals'; - -// Note: test renderer must be required after react-native. -import renderer from 'react-test-renderer'; - -it('renders correctly', () => { - renderer.create(); -}); diff --git a/examples/FabricExample/android/app/_BUCK b/examples/FabricExample/android/app/_BUCK deleted file mode 100644 index 6f629726..00000000 --- a/examples/FabricExample/android/app/_BUCK +++ /dev/null @@ -1,55 +0,0 @@ -# To learn about Buck see [Docs](https://buckbuild.com/). -# To run your application with Buck: -# - install Buck -# - `npm start` - to start the packager -# - `cd android` -# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` -# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck -# - `buck install -r android/app` - compile, install and run application -# - -load(":build_defs.bzl", "create_aar_targets", "create_jar_targets") - -lib_deps = [] - -create_aar_targets(glob(["libs/*.aar"])) - -create_jar_targets(glob(["libs/*.jar"])) - -android_library( - name = "all-libs", - exported_deps = lib_deps, -) - -android_library( - name = "app-code", - srcs = glob([ - "src/main/java/**/*.java", - ]), - deps = [ - ":all-libs", - ":build_config", - ":res", - ], -) - -android_build_config( - name = "build_config", - package = "net.video.fabricexample", -) - -android_resource( - name = "res", - package = "net.video.fabricexample", - res = "src/main/res", -) - -android_binary( - name = "app", - keystore = "//android/keystores:debug", - manifest = "src/main/AndroidManifest.xml", - package_type = "debug", - deps = [ - ":app-code", - ], -) diff --git a/examples/FabricExample/android/app/build.gradle b/examples/FabricExample/android/app/build.gradle deleted file mode 100644 index 6da4d1a8..00000000 --- a/examples/FabricExample/android/app/build.gradle +++ /dev/null @@ -1,123 +0,0 @@ -apply plugin: "com.android.application" -apply plugin: "org.jetbrains.kotlin.android" -apply plugin: "com.facebook.react" - -import com.android.build.OutputFile - -/** - * This is the configuration block to customize your React Native Android app. - * By default you don't need to apply any configuration, just uncomment the lines you need. - */ -react { - /* Folders */ - // The root of your project, i.e. where "package.json" lives. Default is '..' - // root = file("../") - // The folder where the react-native NPM package is. Default is ../node_modules/react-native - // reactNativeDir = file("../node-modules/react-native") - // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen - // codegenDir = file("../node_modules/@react-native/codegen") - // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js - // cliFile = file("../node_modules/react-native/cli.js") - - /* Variants */ - // The list of variants to that are debuggable. For those we're going to - // skip the bundling of the JS bundle and the assets. By default is just 'debug'. - // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. - // debuggableVariants = ["liteDebug", "prodDebug"] - - /* Bundling */ - // A list containing the node command and its flags. Default is just 'node'. - // nodeExecutableAndArgs = ["node"] - // - // The command to run when bundling. By default is 'bundle' - // bundleCommand = "ram-bundle" - // - // The path to the CLI configuration file. Default is empty. - // bundleConfig = file(../rn-cli.config.js) - // - // The name of the generated asset file containing your JS bundle - // bundleAssetName = "MyApplication.android.bundle" - // - // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' - // entryFile = file("../js/MyApplication.android.js") - // - // A list of extra flags to pass to the 'bundle' commands. - // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle - // extraPackagerArgs = [] - - /* Hermes Commands */ - // The hermes compiler command to run. By default it is 'hermesc' - // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" - // - // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" - // hermesFlags = ["-O", "-output-source-map"] -} - -/** - * Set this to true to Run Proguard on Release builds to minify the Java bytecode. - */ -def enableProguardInReleaseBuilds = false - -/** - * The preferred build flavor of JavaScriptCore (JSC) - * - * For example, to use the international variant, you can use: - * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` - * - * The international variant includes ICU i18n library and necessary data - * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that - * give correct results when using with locales other than en-US. Note that - * this variant is about 6MiB larger per architecture than default. - */ -def jscFlavor = 'org.webkit:android-jsc:+' - -android { - ndkVersion rootProject.ext.ndkVersion - - buildToolsVersion rootProject.ext.buildToolsVersion - compileSdk rootProject.ext.compileSdkVersion - - namespace "net.video.fabricexample" - defaultConfig { - applicationId "net.video.fabricexample" - minSdkVersion rootProject.ext.minSdkVersion - targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName "1.0" - } - - signingConfigs { - debug { - storeFile file('debug.keystore') - storePassword 'android' - keyAlias 'androiddebugkey' - keyPassword 'android' - } - } - buildTypes { - debug { - signingConfig signingConfigs.debug - } - release { - // Caution! In production, you need to generate your own keystore file. - // see https://reactnative.dev/docs/signed-apk-android. - signingConfig signingConfigs.debug - minifyEnabled enableProguardInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - } - } -} - -dependencies { - // The version of react-native is set by the React Native Gradle Plugin - implementation("com.facebook.react:react-android") - implementation("com.facebook.react:flipper-integration") - - if (hermesEnabled.toBoolean()) { - implementation("com.facebook.react:hermes-android") - } else { - implementation jscFlavor - } -} - -apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) \ No newline at end of file diff --git a/examples/FabricExample/android/app/build_defs.bzl b/examples/FabricExample/android/app/build_defs.bzl deleted file mode 100644 index fff270f8..00000000 --- a/examples/FabricExample/android/app/build_defs.bzl +++ /dev/null @@ -1,19 +0,0 @@ -"""Helper definitions to glob .aar and .jar targets""" - -def create_aar_targets(aarfiles): - for aarfile in aarfiles: - name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")] - lib_deps.append(":" + name) - android_prebuilt_aar( - name = name, - aar = aarfile, - ) - -def create_jar_targets(jarfiles): - for jarfile in jarfiles: - name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")] - lib_deps.append(":" + name) - prebuilt_jar( - name = name, - binary_jar = jarfile, - ) diff --git a/examples/FabricExample/android/app/proguard-rules.pro b/examples/FabricExample/android/app/proguard-rules.pro deleted file mode 100644 index 11b02572..00000000 --- a/examples/FabricExample/android/app/proguard-rules.pro +++ /dev/null @@ -1,10 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: diff --git a/examples/FabricExample/android/app/src/main/AndroidManifest.xml b/examples/FabricExample/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index 91cd85a6..00000000 --- a/examples/FabricExample/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - diff --git a/examples/FabricExample/android/app/src/main/java/net/video/fabricexample/MainActivity.kt b/examples/FabricExample/android/app/src/main/java/net/video/fabricexample/MainActivity.kt deleted file mode 100644 index d88d6bb9..00000000 --- a/examples/FabricExample/android/app/src/main/java/net/video/fabricexample/MainActivity.kt +++ /dev/null @@ -1,22 +0,0 @@ -package net.video.fabricexample - -import com.facebook.react.ReactActivity -import com.facebook.react.ReactActivityDelegate -import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled -import com.facebook.react.defaults.DefaultReactActivityDelegate - -class MainActivity : ReactActivity() { - - /** - * Returns the name of the main component registered from JavaScript. This is used to schedule - * rendering of the component. - */ - override fun getMainComponentName(): String = "FabricExample" - - /** - * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] - * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] - */ - override fun createReactActivityDelegate(): ReactActivityDelegate = - DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled) -} \ No newline at end of file diff --git a/examples/FabricExample/android/app/src/main/java/net/video/fabricexample/MainApplication.kt b/examples/FabricExample/android/app/src/main/java/net/video/fabricexample/MainApplication.kt deleted file mode 100644 index d6909c94..00000000 --- a/examples/FabricExample/android/app/src/main/java/net/video/fabricexample/MainApplication.kt +++ /dev/null @@ -1,45 +0,0 @@ -package net.video.fabricexample - -import android.app.Application -import com.facebook.react.PackageList -import com.facebook.react.ReactApplication -import com.facebook.react.ReactHost -import com.facebook.react.ReactNativeHost -import com.facebook.react.ReactPackage -import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load -import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost -import com.facebook.react.defaults.DefaultReactNativeHost -import com.facebook.react.flipper.ReactNativeFlipper -import com.facebook.soloader.SoLoader - -class MainApplication : Application(), ReactApplication { - - override val reactNativeHost: ReactNativeHost = - object : DefaultReactNativeHost(this) { - override fun getPackages(): List = - PackageList(this).packages.apply { - // Packages that cannot be autolinked yet can be added manually here, for example: - // add(MyReactNativePackage()) - } - - override fun getJSMainModuleName(): String = "index" - - override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG - - override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED - override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED - } - - override val reactHost: ReactHost - get() = getDefaultReactHost(this.applicationContext, reactNativeHost) - - override fun onCreate() { - super.onCreate() - SoLoader.init(this, false) - if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { - // If you opted-in for the New Architecture, we load the native entry point for this app. - load() - } - ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager) - } -} diff --git a/examples/FabricExample/android/app/src/main/jni/CMakeLists.txt b/examples/FabricExample/android/app/src/main/jni/CMakeLists.txt deleted file mode 100644 index 119269e6..00000000 --- a/examples/FabricExample/android/app/src/main/jni/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -cmake_minimum_required(VERSION 3.13) - -# Define the library name here. -project(fabricexample_appmodules) - -# This file includes all the necessary to let you build your application with the New Architecture. -include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake) diff --git a/examples/FabricExample/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/examples/FabricExample/android/app/src/main/jni/MainApplicationModuleProvider.cpp deleted file mode 100644 index 26162dd8..00000000 --- a/examples/FabricExample/android/app/src/main/jni/MainApplicationModuleProvider.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "MainApplicationModuleProvider.h" - -#include -#include - -namespace facebook { -namespace react { - -std::shared_ptr MainApplicationModuleProvider( - const std::string &moduleName, - const JavaTurboModule::InitParams ¶ms) { - // Here you can provide your own module provider for TurboModules coming from - // either your application or from external libraries. The approach to follow - // is similar to the following (for a library called `samplelibrary`: - // - // auto module = samplelibrary_ModuleProvider(moduleName, params); - // if (module != nullptr) { - // return module; - // } - // return rncore_ModuleProvider(moduleName, params); - - // Module providers autolinked by RN CLI - auto rncli_module = rncli_ModuleProvider(moduleName, params); - if (rncli_module != nullptr) { - return rncli_module; - } - - return rncore_ModuleProvider(moduleName, params); -} - -} // namespace react -} // namespace facebook diff --git a/examples/FabricExample/android/app/src/main/jni/MainApplicationModuleProvider.h b/examples/FabricExample/android/app/src/main/jni/MainApplicationModuleProvider.h deleted file mode 100644 index b38ccf53..00000000 --- a/examples/FabricExample/android/app/src/main/jni/MainApplicationModuleProvider.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#include -#include - -#include - -namespace facebook { -namespace react { - -std::shared_ptr MainApplicationModuleProvider( - const std::string &moduleName, - const JavaTurboModule::InitParams ¶ms); - -} // namespace react -} // namespace facebook diff --git a/examples/FabricExample/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/examples/FabricExample/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp deleted file mode 100644 index 5fd688c5..00000000 --- a/examples/FabricExample/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp +++ /dev/null @@ -1,45 +0,0 @@ -#include "MainApplicationTurboModuleManagerDelegate.h" -#include "MainApplicationModuleProvider.h" - -namespace facebook { -namespace react { - -jni::local_ref -MainApplicationTurboModuleManagerDelegate::initHybrid( - jni::alias_ref) { - return makeCxxInstance(); -} - -void MainApplicationTurboModuleManagerDelegate::registerNatives() { - registerHybrid({ - makeNativeMethod( - "initHybrid", MainApplicationTurboModuleManagerDelegate::initHybrid), - makeNativeMethod( - "canCreateTurboModule", - MainApplicationTurboModuleManagerDelegate::canCreateTurboModule), - }); -} - -std::shared_ptr -MainApplicationTurboModuleManagerDelegate::getTurboModule( - const std::string &name, - const std::shared_ptr &jsInvoker) { - // Not implemented yet: provide pure-C++ NativeModules here. - return nullptr; -} - -std::shared_ptr -MainApplicationTurboModuleManagerDelegate::getTurboModule( - const std::string &name, - const JavaTurboModule::InitParams ¶ms) { - return MainApplicationModuleProvider(name, params); -} - -bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule( - const std::string &name) { - return getTurboModule(name, nullptr) != nullptr || - getTurboModule(name, {.moduleName = name}) != nullptr; -} - -} // namespace react -} // namespace facebook diff --git a/examples/FabricExample/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/examples/FabricExample/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h deleted file mode 100644 index b2b85e64..00000000 --- a/examples/FabricExample/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -#include -#include - -namespace facebook { -namespace react { - -class MainApplicationTurboModuleManagerDelegate - : public jni::HybridClass< - MainApplicationTurboModuleManagerDelegate, - TurboModuleManagerDelegate> { - public: - // Adapt it to the package you used for your Java class. - static constexpr auto kJavaDescriptor = - "Lnet/video/fabricexample/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;"; - - static jni::local_ref initHybrid(jni::alias_ref); - - static void registerNatives(); - - std::shared_ptr getTurboModule( - const std::string &name, - const std::shared_ptr &jsInvoker) override; - std::shared_ptr getTurboModule( - const std::string &name, - const JavaTurboModule::InitParams ¶ms) override; - - /** - * Test-only method. Allows user to verify whether a TurboModule can be - * created by instances of this class. - */ - bool canCreateTurboModule(const std::string &name); -}; - -} // namespace react -} // namespace facebook diff --git a/examples/FabricExample/android/app/src/main/jni/MainComponentsRegistry.cpp b/examples/FabricExample/android/app/src/main/jni/MainComponentsRegistry.cpp deleted file mode 100644 index 54f598a4..00000000 --- a/examples/FabricExample/android/app/src/main/jni/MainComponentsRegistry.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "MainComponentsRegistry.h" - -#include -#include -#include -#include -#include - -namespace facebook { -namespace react { - -MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {} - -std::shared_ptr -MainComponentsRegistry::sharedProviderRegistry() { - auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry(); - - // Autolinked providers registered by RN CLI - rncli_registerProviders(providerRegistry); - - // Custom Fabric Components go here. You can register custom - // components coming from your App or from 3rd party libraries here. - // - // providerRegistry->add(concreteComponentDescriptorProvider< - // AocViewerComponentDescriptor>()); - return providerRegistry; -} - -jni::local_ref -MainComponentsRegistry::initHybrid( - jni::alias_ref, - ComponentFactory *delegate) { - auto instance = makeCxxInstance(delegate); - - auto buildRegistryFunction = - [](EventDispatcher::Weak const &eventDispatcher, - ContextContainer::Shared const &contextContainer) - -> ComponentDescriptorRegistry::Shared { - auto registry = MainComponentsRegistry::sharedProviderRegistry() - ->createComponentDescriptorRegistry( - {eventDispatcher, contextContainer}); - - auto mutableRegistry = - std::const_pointer_cast(registry); - - mutableRegistry->setFallbackComponentDescriptor( - std::make_shared( - ComponentDescriptorParameters{ - eventDispatcher, contextContainer, nullptr})); - - return registry; - }; - - delegate->buildRegistryFunction = buildRegistryFunction; - return instance; -} - -void MainComponentsRegistry::registerNatives() { - registerHybrid({ - makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid), - }); -} - -} // namespace react -} // namespace facebook diff --git a/examples/FabricExample/android/app/src/main/jni/MainComponentsRegistry.h b/examples/FabricExample/android/app/src/main/jni/MainComponentsRegistry.h deleted file mode 100644 index 011a3486..00000000 --- a/examples/FabricExample/android/app/src/main/jni/MainComponentsRegistry.h +++ /dev/null @@ -1,32 +0,0 @@ -#pragma once - -#include -#include -#include -#include - -namespace facebook { -namespace react { - -class MainComponentsRegistry - : public facebook::jni::HybridClass { - public: - // Adapt it to the package you used for your Java class. - constexpr static auto kJavaDescriptor = - "Lnet/video/fabricexample/newarchitecture/components/MainComponentsRegistry;"; - - static void registerNatives(); - - MainComponentsRegistry(ComponentFactory *delegate); - - private: - static std::shared_ptr - sharedProviderRegistry(); - - static jni::local_ref initHybrid( - jni::alias_ref, - ComponentFactory *delegate); -}; - -} // namespace react -} // namespace facebook diff --git a/examples/FabricExample/android/app/src/main/jni/OnLoad.cpp b/examples/FabricExample/android/app/src/main/jni/OnLoad.cpp deleted file mode 100644 index c569b6e8..00000000 --- a/examples/FabricExample/android/app/src/main/jni/OnLoad.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include "MainApplicationTurboModuleManagerDelegate.h" -#include "MainComponentsRegistry.h" - -JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) { - return facebook::jni::initialize(vm, [] { - facebook::react::MainApplicationTurboModuleManagerDelegate:: - registerNatives(); - facebook::react::MainComponentsRegistry::registerNatives(); - }); -} diff --git a/examples/FabricExample/android/app/src/main/res/drawable/rn_edit_text_material.xml b/examples/FabricExample/android/app/src/main/res/drawable/rn_edit_text_material.xml deleted file mode 100644 index f35d9962..00000000 --- a/examples/FabricExample/android/app/src/main/res/drawable/rn_edit_text_material.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - diff --git a/examples/FabricExample/android/app/src/main/res/values/strings.xml b/examples/FabricExample/android/app/src/main/res/values/strings.xml deleted file mode 100644 index 30038583..00000000 --- a/examples/FabricExample/android/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - FabricExample - diff --git a/examples/FabricExample/android/app/src/main/res/values/styles.xml b/examples/FabricExample/android/app/src/main/res/values/styles.xml deleted file mode 100644 index 7ba83a2a..00000000 --- a/examples/FabricExample/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/examples/FabricExample/android/build.gradle b/examples/FabricExample/android/build.gradle deleted file mode 100644 index 992bdc08..00000000 --- a/examples/FabricExample/android/build.gradle +++ /dev/null @@ -1,26 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - ext { - buildToolsVersion = "34.0.0" - minSdkVersion = 23 - compileSdkVersion = 34 - targetSdkVersion = 34 - ndkVersion = "26.1.10909125" - kotlinVersion = "1.9.22" - - useExoplayerIMA = System.getenv("RNV_SAMPLE_ENABLE_ADS") ?: true - useExoplayerRtsp = true - } - repositories { - google() - mavenCentral() - } -dependencies { - classpath("com.android.tools.build:gradle") - classpath("com.facebook.react:react-native-gradle-plugin") - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" - } -} - -apply plugin: "com.facebook.react.rootproject" \ No newline at end of file diff --git a/examples/FabricExample/android/gradle.properties b/examples/FabricExample/android/gradle.properties deleted file mode 100644 index a0f7834e..00000000 --- a/examples/FabricExample/android/gradle.properties +++ /dev/null @@ -1,39 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m -org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true - -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app's APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true - -# Use this property to specify which architecture you want to build. -# You can also override it from the CLI using -# ./gradlew -PreactNativeArchitectures=x86_64 -reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 - -# Use this property to enable support to the new architecture. -# This will allow you to use TurboModules and the Fabric render in -# your application. You should enable this flag either if you want -# to write custom TurboModules/Fabric components OR use libraries that -# are providing them. -newArchEnabled=true - -hermesEnabled=true \ No newline at end of file diff --git a/examples/FabricExample/android/gradle/wrapper/gradle-wrapper.jar b/examples/FabricExample/android/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 7f93135c..00000000 Binary files a/examples/FabricExample/android/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/examples/FabricExample/android/gradlew.bat b/examples/FabricExample/android/gradlew.bat deleted file mode 100644 index 2b2bdaa1..00000000 --- a/examples/FabricExample/android/gradlew.bat +++ /dev/null @@ -1,178 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/examples/FabricExample/android/settings.gradle b/examples/FabricExample/android/settings.gradle deleted file mode 100644 index e5a889bc..00000000 --- a/examples/FabricExample/android/settings.gradle +++ /dev/null @@ -1,11 +0,0 @@ -rootProject.name = 'FabricExample' -apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) -include ':app' -includeBuild('../node_modules/@react-native/gradle-plugin') - -// if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") { -// include(":ReactAndroid") -// project(":ReactAndroid").projectDir = file('../node_modules/react-native/ReactAndroid') -// include(":ReactAndroid:hermes-engine") -// project(":ReactAndroid:hermes-engine").projectDir = file('../node_modules/react-native/ReactAndroid/hermes-engine') -// } diff --git a/examples/FabricExample/app.json b/examples/FabricExample/app.json deleted file mode 100644 index 957883ae..00000000 --- a/examples/FabricExample/app.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "FabricExample", - "displayName": "FabricExample" -} \ No newline at end of file diff --git a/examples/FabricExample/babel.config.js b/examples/FabricExample/babel.config.js deleted file mode 100644 index bd1f13f2..00000000 --- a/examples/FabricExample/babel.config.js +++ /dev/null @@ -1,17 +0,0 @@ -const path = require('path'); -const pak = require('../../package.json'); - -module.exports = { - presets: ['module:@react-native/babel-preset'], - plugins: [ - [ - 'module-resolver', - { - extensions: ['.tsx', '.ts', '.js', '.json'], - alias: { - [pak.name]: path.join(__dirname, '../../', pak.source), - }, - }, - ], - ], -}; diff --git a/examples/FabricExample/index.js b/examples/FabricExample/index.js deleted file mode 100644 index a850d031..00000000 --- a/examples/FabricExample/index.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @format - */ - -import {AppRegistry} from 'react-native'; -import App from './App'; -import {name as appName} from './app.json'; - -AppRegistry.registerComponent(appName, () => App); diff --git a/examples/FabricExample/ios/FabricExample.xcodeproj/project.pbxproj b/examples/FabricExample/ios/FabricExample.xcodeproj/project.pbxproj deleted file mode 100644 index 26875e8c..00000000 --- a/examples/FabricExample/ios/FabricExample.xcodeproj/project.pbxproj +++ /dev/null @@ -1,730 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXBuildFile section */ - 00E356F31AD99517003FC87E /* FabricExampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* FabricExampleTests.m */; }; - 0C80B921A6F3F58F76C31292 /* libPods-FabricExample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-FabricExample.a */; }; - 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 7699B88040F8A987B510C191 /* libPods-FabricExample-FabricExampleTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-FabricExample-FabricExampleTests.a */; }; - 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 13B07F861A680F5B00A75B9A; - remoteInfo = FabricExample; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 00E356EE1AD99517003FC87E /* FabricExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FabricExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 00E356F21AD99517003FC87E /* FabricExampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FabricExampleTests.m; sourceTree = ""; }; - 13B07F961A680F5B00A75B9A /* FabricExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FabricExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = FabricExample/AppDelegate.h; sourceTree = ""; }; - 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = FabricExample/AppDelegate.mm; sourceTree = ""; }; - 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = FabricExample/Images.xcassets; sourceTree = ""; }; - 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = FabricExample/Info.plist; sourceTree = ""; }; - 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = FabricExample/main.m; sourceTree = ""; }; - 19F6CBCC0A4E27FBF8BF4A61 /* libPods-FabricExample-FabricExampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FabricExample-FabricExampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3B4392A12AC88292D35C810B /* Pods-FabricExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FabricExample.debug.xcconfig"; path = "Target Support Files/Pods-FabricExample/Pods-FabricExample.debug.xcconfig"; sourceTree = ""; }; - 5709B34CF0A7D63546082F79 /* Pods-FabricExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FabricExample.release.xcconfig"; path = "Target Support Files/Pods-FabricExample/Pods-FabricExample.release.xcconfig"; sourceTree = ""; }; - 5B7EB9410499542E8C5724F5 /* Pods-FabricExample-FabricExampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FabricExample-FabricExampleTests.debug.xcconfig"; path = "Target Support Files/Pods-FabricExample-FabricExampleTests/Pods-FabricExample-FabricExampleTests.debug.xcconfig"; sourceTree = ""; }; - 5DCACB8F33CDC322A6C60F78 /* libPods-FabricExample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FabricExample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = FabricExample/LaunchScreen.storyboard; sourceTree = ""; }; - 89C6BE57DB24E9ADA2F236DE /* Pods-FabricExample-FabricExampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FabricExample-FabricExampleTests.release.xcconfig"; path = "Target Support Files/Pods-FabricExample-FabricExampleTests/Pods-FabricExample-FabricExampleTests.release.xcconfig"; sourceTree = ""; }; - ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 00E356EB1AD99517003FC87E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7699B88040F8A987B510C191 /* libPods-FabricExample-FabricExampleTests.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 0C80B921A6F3F58F76C31292 /* libPods-FabricExample.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 00E356EF1AD99517003FC87E /* FabricExampleTests */ = { - isa = PBXGroup; - children = ( - 00E356F21AD99517003FC87E /* FabricExampleTests.m */, - 00E356F01AD99517003FC87E /* Supporting Files */, - ); - path = FabricExampleTests; - sourceTree = ""; - }; - 00E356F01AD99517003FC87E /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 00E356F11AD99517003FC87E /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 13B07FAE1A68108700A75B9A /* FabricExample */ = { - isa = PBXGroup; - children = ( - 13B07FAF1A68108700A75B9A /* AppDelegate.h */, - 13B07FB01A68108700A75B9A /* AppDelegate.mm */, - 13B07FB51A68108700A75B9A /* Images.xcassets */, - 13B07FB61A68108700A75B9A /* Info.plist */, - 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, - 13B07FB71A68108700A75B9A /* main.m */, - ); - name = FabricExample; - sourceTree = ""; - }; - 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { - isa = PBXGroup; - children = ( - ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - 5DCACB8F33CDC322A6C60F78 /* libPods-FabricExample.a */, - 19F6CBCC0A4E27FBF8BF4A61 /* libPods-FabricExample-FabricExampleTests.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - 832341AE1AAA6A7D00B99B32 /* Libraries */ = { - isa = PBXGroup; - children = ( - ); - name = Libraries; - sourceTree = ""; - }; - 83CBB9F61A601CBA00E9B192 = { - isa = PBXGroup; - children = ( - 13B07FAE1A68108700A75B9A /* FabricExample */, - 832341AE1AAA6A7D00B99B32 /* Libraries */, - 00E356EF1AD99517003FC87E /* FabricExampleTests */, - 83CBBA001A601CBA00E9B192 /* Products */, - 2D16E6871FA4F8E400B85C8A /* Frameworks */, - BBD78D7AC51CEA395F1C20DB /* Pods */, - ); - indentWidth = 2; - sourceTree = ""; - tabWidth = 2; - usesTabs = 0; - }; - 83CBBA001A601CBA00E9B192 /* Products */ = { - isa = PBXGroup; - children = ( - 13B07F961A680F5B00A75B9A /* FabricExample.app */, - 00E356EE1AD99517003FC87E /* FabricExampleTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - BBD78D7AC51CEA395F1C20DB /* Pods */ = { - isa = PBXGroup; - children = ( - 3B4392A12AC88292D35C810B /* Pods-FabricExample.debug.xcconfig */, - 5709B34CF0A7D63546082F79 /* Pods-FabricExample.release.xcconfig */, - 5B7EB9410499542E8C5724F5 /* Pods-FabricExample-FabricExampleTests.debug.xcconfig */, - 89C6BE57DB24E9ADA2F236DE /* Pods-FabricExample-FabricExampleTests.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 00E356ED1AD99517003FC87E /* FabricExampleTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "FabricExampleTests" */; - buildPhases = ( - A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */, - 00E356EA1AD99517003FC87E /* Sources */, - 00E356EB1AD99517003FC87E /* Frameworks */, - 00E356EC1AD99517003FC87E /* Resources */, - C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */, - F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - 00E356F51AD99517003FC87E /* PBXTargetDependency */, - ); - name = FabricExampleTests; - productReference = 00E356EE1AD99517003FC87E /* FabricExampleTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 13B07F861A680F5B00A75B9A /* FabricExample */ = { - isa = PBXNativeTarget; - buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "FabricExample" */; - buildPhases = ( - C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */, - FD10A7F022414F080027D42C /* Start Packager */, - 13B07F871A680F5B00A75B9A /* Sources */, - 13B07F8C1A680F5B00A75B9A /* Frameworks */, - 13B07F8E1A680F5B00A75B9A /* Resources */, - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */, - E235C05ADACE081382539298 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = FabricExample; - productName = FabricExample; - productReference = 13B07F961A680F5B00A75B9A /* FabricExample.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 83CBB9F71A601CBA00E9B192 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1210; - TargetAttributes = { - 00E356ED1AD99517003FC87E = { - CreatedOnToolsVersion = 6.2; - TestTargetID = 13B07F861A680F5B00A75B9A; - }; - 13B07F861A680F5B00A75B9A = { - LastSwiftMigration = 1120; - }; - }; - }; - buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "FabricExample" */; - compatibilityVersion = "Xcode 12.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 83CBB9F61A601CBA00E9B192; - productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 13B07F861A680F5B00A75B9A /* FabricExample */, - 00E356ED1AD99517003FC87E /* FabricExampleTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 00E356EC1AD99517003FC87E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8E1A680F5B00A75B9A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */, - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(SRCROOT)/.xcode.env.local", - "$(SRCROOT)/.xcode.env", - ); - name = "Bundle React Native code and images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; - }; - 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-FabricExample/Pods-FabricExample-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-FabricExample/Pods-FabricExample-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FabricExample/Pods-FabricExample-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-FabricExample-FabricExampleTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-FabricExample-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-FabricExample-FabricExampleTests/Pods-FabricExample-FabricExampleTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-FabricExample-FabricExampleTests/Pods-FabricExample-FabricExampleTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FabricExample-FabricExampleTests/Pods-FabricExample-FabricExampleTests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-FabricExample/Pods-FabricExample-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-FabricExample/Pods-FabricExample-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FabricExample/Pods-FabricExample-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-FabricExample-FabricExampleTests/Pods-FabricExample-FabricExampleTests-resources-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-FabricExample-FabricExampleTests/Pods-FabricExample-FabricExampleTests-resources-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FabricExample-FabricExampleTests/Pods-FabricExample-FabricExampleTests-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - FD10A7F022414F080027D42C /* Start Packager */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Start Packager"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > \"${SRCROOT}/../node_modules/react-native/scripts/.packager.env\"\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open \"$SRCROOT/../node_modules/react-native/scripts/launchPackager.command\" || echo \"Can't start packager automatically\"\n fi\nfi\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 00E356EA1AD99517003FC87E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 00E356F31AD99517003FC87E /* FabricExampleTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F871A680F5B00A75B9A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, - 13B07FC11A68108700A75B9A /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 13B07F861A680F5B00A75B9A /* FabricExample */; - targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 00E356F61AD99517003FC87E /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-FabricExample-FabricExampleTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = FabricExampleTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - "$(inherited)", - ); - PRODUCT_BUNDLE_IDENTIFIER = net.video.fabricexample; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/FabricExample.app/FabricExample"; - }; - name = Debug; - }; - 00E356F71AD99517003FC87E /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-FabricExample-FabricExampleTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - COPY_PHASE_STRIP = NO; - INFOPLIST_FILE = FabricExampleTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - "$(inherited)", - ); - PRODUCT_BUNDLE_IDENTIFIER = net.video.fabricexample; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/FabricExample.app/FabricExample"; - }; - name = Release; - }; - 13B07F941A680F5B00A75B9A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-FabricExample.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 1; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = FabricExample/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = FabricExample; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = net.video.fabricexample; - PRODUCT_NAME = FabricExample; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 13B07F951A680F5B00A75B9A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-FabricExample.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = 1; - INFOPLIST_FILE = FabricExample/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = FabricExample; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = net.video.fabricexample; - PRODUCT_NAME = FabricExample; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; - 83CBBA201A601CBA00E9B192 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION, - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); - LIBRARY_SEARCH_PATHS = ( - "\"$(SDKROOT)/usr/lib/swift\"", - "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", - "\"$(inherited)\"", - ); - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = ( - "$(inherited)", - "-DRN_FABRIC_ENABLED", - ); - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-DFOLLY_NO_CONFIG", - "-DFOLLY_MOBILE=1", - "-DFOLLY_USE_LIBCPP=1", - "-DRN_FABRIC_ENABLED", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-Wl", - "-ld_classic", - ); - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - USE_HERMES = true; - }; - name = Debug; - }; - 83CBBA211A601CBA00E9B192 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++20"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION, - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.4; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); - LIBRARY_SEARCH_PATHS = ( - "\"$(SDKROOT)/usr/lib/swift\"", - "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", - "\"$(inherited)\"", - ); - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = ( - "$(inherited)", - "-DRN_FABRIC_ENABLED", - ); - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "-DFOLLY_NO_CONFIG", - "-DFOLLY_MOBILE=1", - "-DFOLLY_USE_LIBCPP=1", - "-DRN_FABRIC_ENABLED", - ); - OTHER_LDFLAGS = ( - "$(inherited)", - "-Wl", - "-ld_classic", - ); - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - USE_HERMES = true; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "FabricExampleTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00E356F61AD99517003FC87E /* Debug */, - 00E356F71AD99517003FC87E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "FabricExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 13B07F941A680F5B00A75B9A /* Debug */, - 13B07F951A680F5B00A75B9A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "FabricExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 83CBBA201A601CBA00E9B192 /* Debug */, - 83CBBA211A601CBA00E9B192 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; -} diff --git a/examples/FabricExample/ios/FabricExample.xcodeproj/xcshareddata/xcschemes/FabricExample.xcscheme b/examples/FabricExample/ios/FabricExample.xcodeproj/xcshareddata/xcschemes/FabricExample.xcscheme deleted file mode 100644 index bc4aae22..00000000 --- a/examples/FabricExample/ios/FabricExample.xcodeproj/xcshareddata/xcschemes/FabricExample.xcscheme +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/FabricExample/ios/FabricExample.xcworkspace/contents.xcworkspacedata b/examples/FabricExample/ios/FabricExample.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 3e9ae53e..00000000 --- a/examples/FabricExample/ios/FabricExample.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/examples/FabricExample/ios/FabricExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/FabricExample/ios/FabricExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/FabricExample/ios/FabricExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/FabricExample/ios/FabricExample/AppDelegate.h b/examples/FabricExample/ios/FabricExample/AppDelegate.h deleted file mode 100644 index 5d280825..00000000 --- a/examples/FabricExample/ios/FabricExample/AppDelegate.h +++ /dev/null @@ -1,6 +0,0 @@ -#import -#import - -@interface AppDelegate : RCTAppDelegate - -@end diff --git a/examples/FabricExample/ios/FabricExample/AppDelegate.mm b/examples/FabricExample/ios/FabricExample/AppDelegate.mm deleted file mode 100644 index a429e31e..00000000 --- a/examples/FabricExample/ios/FabricExample/AppDelegate.mm +++ /dev/null @@ -1,31 +0,0 @@ -#import "AppDelegate.h" - -#import - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - self.moduleName = @"FabricExample"; - // You can add your custom initial props in the dictionary below. - // They will be passed down to the ViewController used by React Native. - self.initialProps = @{}; - - return [super application:application didFinishLaunchingWithOptions:launchOptions]; -} - -- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge -{ - return [self getBundleURL]; -} - -- (NSURL *)getBundleURL -{ -#if DEBUG - return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; -#else - return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; -#endif -} - -@end diff --git a/examples/FabricExample/ios/FabricExample/Images.xcassets/AppIcon.appiconset/Contents.json b/examples/FabricExample/ios/FabricExample/Images.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 81213230..00000000 --- a/examples/FabricExample/ios/FabricExample/Images.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "20x20" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "29x29" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "40x40" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "size" : "60x60" - }, - { - "idiom" : "iphone", - "scale" : "3x", - "size" : "60x60" - }, - { - "idiom" : "ios-marketing", - "scale" : "1x", - "size" : "1024x1024" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/examples/FabricExample/ios/FabricExample/Images.xcassets/Contents.json b/examples/FabricExample/ios/FabricExample/Images.xcassets/Contents.json deleted file mode 100644 index 2d92bd53..00000000 --- a/examples/FabricExample/ios/FabricExample/Images.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/examples/FabricExample/ios/FabricExample/Info.plist b/examples/FabricExample/ios/FabricExample/Info.plist deleted file mode 100644 index b0cb3dac..00000000 --- a/examples/FabricExample/ios/FabricExample/Info.plist +++ /dev/null @@ -1,51 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - FabricExample - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - NSAllowsLocalNetworking - - - NSLocationWhenInUseUsageDescription - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/examples/FabricExample/ios/FabricExample/LaunchScreen.storyboard b/examples/FabricExample/ios/FabricExample/LaunchScreen.storyboard deleted file mode 100644 index c4f28caf..00000000 --- a/examples/FabricExample/ios/FabricExample/LaunchScreen.storyboard +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/FabricExample/ios/FabricExample/main.m b/examples/FabricExample/ios/FabricExample/main.m deleted file mode 100644 index d645c724..00000000 --- a/examples/FabricExample/ios/FabricExample/main.m +++ /dev/null @@ -1,10 +0,0 @@ -#import - -#import "AppDelegate.h" - -int main(int argc, char *argv[]) -{ - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/examples/FabricExample/ios/FabricExampleTests/FabricExampleTests.m b/examples/FabricExample/ios/FabricExampleTests/FabricExampleTests.m deleted file mode 100644 index f023368a..00000000 --- a/examples/FabricExample/ios/FabricExampleTests/FabricExampleTests.m +++ /dev/null @@ -1,66 +0,0 @@ -#import -#import - -#import -#import - -#define TIMEOUT_SECONDS 600 -#define TEXT_TO_LOOK_FOR @"Welcome to React" - -@interface FabricExampleTests : XCTestCase - -@end - -@implementation FabricExampleTests - -- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test -{ - if (test(view)) { - return YES; - } - for (UIView *subview in [view subviews]) { - if ([self findSubviewInView:subview matching:test]) { - return YES; - } - } - return NO; -} - -- (void)testRendersWelcomeScreen -{ - UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; - NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; - BOOL foundElement = NO; - - __block NSString *redboxError = nil; -#ifdef DEBUG - RCTSetLogFunction( - ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { - if (level >= RCTLogLevelError) { - redboxError = message; - } - }); -#endif - - while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { - [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - - foundElement = [self findSubviewInView:vc.view - matching:^BOOL(UIView *view) { - if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { - return YES; - } - return NO; - }]; - } - -#ifdef DEBUG - RCTSetLogFunction(RCTDefaultLogFunction); -#endif - - XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); - XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); -} - -@end diff --git a/examples/FabricExample/ios/FabricExampleTests/Info.plist b/examples/FabricExample/ios/FabricExampleTests/Info.plist deleted file mode 100644 index ba72822e..00000000 --- a/examples/FabricExample/ios/FabricExampleTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/examples/FabricExample/ios/Podfile b/examples/FabricExample/ios/Podfile deleted file mode 100644 index eeaebf83..00000000 --- a/examples/FabricExample/ios/Podfile +++ /dev/null @@ -1,39 +0,0 @@ -ENV['RCT_NEW_ARCH_ENABLED'] = "1" - -# Resolve react_native_pods.rb with node to allow for hoisting -require Pod::Executable.execute_command('node', ['-p', - 'require.resolve( - "react-native/scripts/react_native_pods.rb", - {paths: [process.argv[1]]}, - )', __dir__]).strip - -platform :ios, '13.4' -install! 'cocoapods', :deterministic_uuids => false - -target 'FabricExample' do - config = use_native_modules! - - use_react_native!( - :path => config[:reactNativePath], - # Enables Flipper. - # - # Note that if you have use_frameworks! enabled, Flipper will not work and - # you should disable the next line. - # :flipper_configuration => FlipperConfiguration.enabled, - # An absolute path to your application root. - :app_path => "#{Pod::Config.instance.installation_root}/.." - ) - - target 'FabricExampleTests' do - inherit! :complete - # Pods for testing - end - - post_install do |installer| - react_native_post_install( - installer, - config[:reactNativePath], - :mac_catalyst_enabled => false - ) - end -end diff --git a/examples/FabricExample/ios/_xcode.env b/examples/FabricExample/ios/_xcode.env deleted file mode 100644 index 3d5782c7..00000000 --- a/examples/FabricExample/ios/_xcode.env +++ /dev/null @@ -1,11 +0,0 @@ -# This `.xcode.env` file is versioned and is used to source the environment -# used when running script phases inside Xcode. -# To customize your local environment, you can create an `.xcode.env.local` -# file that is not versioned. - -# NODE_BINARY variable contains the PATH to the node executable. -# -# Customize the NODE_BINARY variable here. -# For example, to use nvm with brew, add the following line -# . "$(brew --prefix nvm)/nvm.sh" --no-use -export NODE_BINARY=$(command -v node) diff --git a/examples/FabricExample/jest.config.js b/examples/FabricExample/jest.config.js deleted file mode 100644 index 8130fead..00000000 --- a/examples/FabricExample/jest.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - preset: 'react-native', -}; \ No newline at end of file diff --git a/examples/FabricExample/metro.config.js b/examples/FabricExample/metro.config.js deleted file mode 100644 index b5f681a8..00000000 --- a/examples/FabricExample/metro.config.js +++ /dev/null @@ -1,43 +0,0 @@ -const path = require('path'); -const escape = require('escape-string-regexp'); -const exclusionList = require('metro-config/src/defaults/exclusionList'); -const pak = require('../../package.json'); -const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config'); - -const root = path.resolve(__dirname, '../../'); - -const modules = Object.keys({ - ...pak.peerDependencies, -}); - -const config = { - projectRoot: __dirname, - watchFolders: [root], - - // We need to make sure that only one version is loaded for peerDependencies - // So we block them at the root, and alias them to the versions in example's node_modules - resolver: { - blacklistRE: exclusionList( - modules.map( - (m) => - new RegExp(`^${escape(path.join(root, 'node_modules', m))}\\/.*$`) - ) - ), - - extraNodeModules: modules.reduce((acc, name) => { - acc[name] = path.join(__dirname, 'node_modules', name); - return acc; - }, {}), - }, - - transformer: { - getTransformOptions: async () => ({ - transform: { - experimentalImportSupport: false, - inlineRequires: true, - }, - }), - }, -} - -module.exports = mergeConfig(getDefaultConfig(__dirname), config); diff --git a/examples/FabricExample/package.json b/examples/FabricExample/package.json deleted file mode 100644 index 2fdbd92d..00000000 --- a/examples/FabricExample/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "fabricexample", - "version": "0.0.1", - "private": true, - "scripts": { - "android": "react-native run-android", - "ios": "react-native run-ios", - "start": "react-native start", - "test": "jest", - "lint": "eslint . --ext .js,.jsx,.ts,.tsx", - "pod-install": "bundle exec npx pod-install --project-directory=ios --verbose" - }, - "dependencies": { - "@react-native-picker/picker": "2.7.5", - "react": "18.1.0", - "react-native": "0.73.2" - }, - "devDependencies": { - "@babel/core": "^7.12.9", - "@babel/runtime": "^7.12.5", - "@react-native-community/eslint-config": "^2.0.0", - "@react-native/babel-preset": "0.73.19", - "@react-native/eslint-config": "0.73.2", - "@react-native/metro-config": "0.73.3", - "@react-native/typescript-config": "0.73.1", - "@tsconfig/react-native": "^2.0.2", - "@types/jest": "^26.0.23", - "@types/react": "^18.2.6", - "@types/react-native": "^0.70.6", - "@types/react-test-renderer": "^18.0.0", - "@typescript-eslint/eslint-plugin": "^5.37.0", - "@typescript-eslint/parser": "^5.37.0", - "babel-jest": "^29.6.3", - "babel-plugin-module-resolver": "^5.0.0", - "eslint": "^7.32.0", - "jest": "^29.6.3", - "metro-react-native-babel-preset": "0.72.3", - "prettier": "2.8.8", - "react-test-renderer": "18.1.0", - "typescript": "5.0.4" - }, - "jest": { - "preset": "react-native", - "moduleFileExtensions": [ - "ts", - "tsx", - "js", - "jsx", - "json", - "node" - ] - }, - "engines": { - "node": ">=18" - } -} diff --git a/examples/FabricExample/react-native.config.js b/examples/FabricExample/react-native.config.js deleted file mode 100644 index 48ddfba3..00000000 --- a/examples/FabricExample/react-native.config.js +++ /dev/null @@ -1,10 +0,0 @@ -const path = require('path'); -const pak = require('../../package.json'); - -module.exports = { - dependencies: { - [pak.name]: { - root: path.join(__dirname, '../../'), - }, - }, -}; diff --git a/examples/FabricExample/src/VideoPlayer.tsx b/examples/FabricExample/src/VideoPlayer.tsx deleted file mode 100644 index ba12f403..00000000 --- a/examples/FabricExample/src/VideoPlayer.tsx +++ /dev/null @@ -1,831 +0,0 @@ -'use strict'; - -import React, {Component} from 'react'; - -import { - Text, - TouchableOpacity, - View, - ActivityIndicator, - ToastAndroid, - Platform, - Alert, -} from 'react-native'; - -import Video, { - AudioTrack, - OnAudioTracksData, - OnLoadData, - OnProgressData, - OnTextTracksData, - OnVideoAspectRatioData, - TextTrack, - VideoDecoderProperties, - OnBufferData, - OnAudioFocusChangedData, - OnVideoErrorData, - VideoRef, - ResizeMode, - SelectedTrack, - DRMType, - OnTextTrackDataChangedData, - TextTrackType, - ISO639_1, - OnSeekData, - OnPlaybackStateChangedData, - OnPlaybackRateChangeData, - OnVideoTracksData, - VideoTrack, - SelectedVideoTrackType, - SelectedVideoTrack, - BufferingStrategyType, - ReactVideoSource, - Drm, - TextTracks, -} from 'react-native-video'; -import ToggleControl from './ToggleControl'; -import MultiValueControl, { - MultiValueControlPropType, -} from './MultiValueControl'; -import styles from './styles'; -import AudioTrackSelector from './components/AudioTracksSelector'; -import TextTrackSelector from './components/TextTracksSelector'; -import VideoTrackSelector from './components/VideoTracksSelector'; -import Seeker from './components/Seeker'; - -type AdditionnalSourceInfo = { - textTracks: TextTracks; - adTagUrl: string; - description: string; - drm: Drm; - noView: boolean; -}; - -type SampleVideoSource = ReactVideoSource | AdditionnalSourceInfo; - -interface StateType { - rate: number; - volume: number; - muted: boolean; - resizeMode: ResizeMode; - duration: number; - currentTime: number; - videoWidth: number; - videoHeight: number; - paused: boolean; - fullscreen: true; - decoration: true; - isLoading: boolean; - audioTracks: Array; - textTracks: Array; - videoTracks: Array; - selectedAudioTrack: SelectedTrack | undefined; - selectedTextTrack: SelectedTrack | undefined; - selectedVideoTrack: SelectedVideoTrack; - srcListId: number; - loop: boolean; - showRNVControls: boolean; - useCache: boolean; - poster?: string; - showNotificationControls: boolean; - isSeeking: boolean; -} - -class VideoPlayer extends Component { - state: StateType = { - rate: 1, - volume: 1, - muted: false, - resizeMode: ResizeMode.CONTAIN, - duration: 0.0, - currentTime: 0.0, - videoWidth: 0, - videoHeight: 0, - paused: false, - fullscreen: true, - decoration: true, - isLoading: false, - audioTracks: [], - textTracks: [], - videoTracks: [], - selectedAudioTrack: undefined, - selectedTextTrack: undefined, - selectedVideoTrack: { - type: SelectedVideoTrackType.AUTO, - }, - srcListId: 0, - loop: false, - showRNVControls: false, - useCache: false, - poster: undefined, - showNotificationControls: false, - isSeeking: false, - }; - - // internal usage change to index if you want to select tracks by index instead of lang - textTracksSelectionBy = 'index'; - - srcAllPlatformList = [ - { - description: 'local file landscape', - uri: require('./broadchurch.mp4'), - }, - { - description: 'local file landscape cropped', - uri: require('./broadchurch.mp4'), - cropStart: 3000, - cropEnd: 10000, - }, - { - description: 'local file portrait', - uri: require('./portrait.mp4'), - metadata: { - title: 'Test Title', - subtitle: 'Test Subtitle', - artist: 'Test Artist', - description: 'Test Description', - imageUri: - 'https://pbs.twimg.com/profile_images/1498641868397191170/6qW2XkuI_400x400.png', - }, - }, - { - description: '(hls|live) red bull tv', - textTracksAllowChunklessPreparation: false, - uri: 'https://rbmn-live.akamaized.net/hls/live/590964/BoRB-AT/master_928.m3u8', - metadata: { - title: 'Custom Title', - subtitle: 'Custom Subtitle', - artist: 'Custom Artist', - description: 'Custom Description', - imageUri: - 'https://pbs.twimg.com/profile_images/1498641868397191170/6qW2XkuI_400x400.png', - }, - }, - { - description: 'invalid URL', - uri: 'mmt://www.youtube.com', - type: 'mpd', - }, - {description: '(no url) Stopped playback', uri: undefined}, - { - description: '(no view) no View', - noView: true, - }, - { - description: 'Another live sample', - uri: 'https://live.forstreet.cl/live/livestream.m3u8', - }, - { - description: 'another bunny (can be saved)', - uri: 'https://rawgit.com/mediaelement/mediaelement-files/master/big_buck_bunny.mp4', - headers: {referer: 'www.github.com', 'User-Agent': 'react.native.video'}, - }, - { - description: 'sintel with subtitles', - uri: 'https://bitmovin-a.akamaihd.net/content/sintel/hls/playlist.m3u8', - }, - { - description: 'sintel starts at 20sec', - uri: 'https://bitmovin-a.akamaihd.net/content/sintel/hls/playlist.m3u8', - startPosition: 50000, - }, - { - description: 'BigBugBunny sideLoaded subtitles', - // sideloaded subtitles wont work for streaming like HLS on ios - // mp4 - uri: 'https://d23dyxeqlo5psv.cloudfront.net/big_buck_bunny.mp4', - textTracks: [ - { - title: 'test', - language: 'en' as ISO639_1, - type: TextTrackType.VTT, - uri: 'https://bitdash-a.akamaihd.net/content/sintel/subtitles/subtitles_en.vtt', - }, - ], - }, - ]; - - srcIosList = []; - - srcAndroidList = [ - { - description: 'Another live sample', - uri: 'https://live.forstreet.cl/live/livestream.m3u8', - }, - { - description: 'asset file', - uri: 'asset:///broadchurch.mp4', - }, - { - description: '(dash) sintel subtitles', - uri: 'https://bitmovin-a.akamaihd.net/content/sintel/sintel.mpd', - }, - { - description: '(mp4) big buck bunny', - uri: 'http://d23dyxeqlo5psv.cloudfront.net/big_buck_bunny.mp4', - }, - { - description: '(mp4|subtitles) demo with sintel Subtitles', - uri: 'http://www.youtube.com/api/manifest/dash/id/bf5bb2419360daf1/source/youtube?as=fmp4_audio_clear,fmp4_sd_hd_clear&sparams=ip,ipbits,expire,source,id,as&ip=0.0.0.0&ipbits=0&expire=19000000000&signature=51AF5F39AB0CEC3E5497CD9C900EBFEAECCCB5C7.8506521BFC350652163895D4C26DEE124209AA9E&key=ik0', - type: 'mpd', - }, - { - description: '(mp4) big buck bunny With Ads', - adTagUrl: - 'https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpremidpostoptimizedpodbumper&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&cmsid=496&vid=short_onecue&correlator=', - uri: 'http://d23dyxeqlo5psv.cloudfront.net/big_buck_bunny.mp4', - }, - { - description: 'WV: Secure SD & HD (cbcs,MP4,H264)', - uri: 'https://storage.googleapis.com/wvmedia/cbcs/h264/tears/tears_aes_cbcs.mpd', - drm: { - type: DRMType.WIDEVINE, - licenseServer: - 'https://proxy.uat.widevine.com/proxy?provider=widevine_test', - }, - }, - { - description: 'Secure UHD (cenc)', - uri: 'https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears_uhd.mpd', - drm: { - type: DRMType.WIDEVINE, - licenseServer: - 'https://proxy.uat.widevine.com/proxy?provider=widevine_test', - }, - }, - { - description: 'rtsp big bug bunny', - uri: 'rtsp://rtspstream:3cfa3c36a9c00f4aa38f3cd35816b287@zephyr.rtsp.stream/movie', - type: 'rtsp', - }, - ]; - - // poster which can be displayed - samplePoster = - 'https://upload.wikimedia.org/wikipedia/commons/1/18/React_Native_Logo.png'; - - srcList: SampleVideoSource[] = this.srcAllPlatformList.concat( - Platform.OS === 'android' ? this.srcAndroidList : this.srcIosList, - ); - - video?: VideoRef; - - popupInfo = () => { - VideoDecoderProperties.getWidevineLevel().then((widevineLevel: number) => { - VideoDecoderProperties.isHEVCSupported().then((hevc: string) => { - VideoDecoderProperties.isCodecSupported('video/avc', 1920, 1080).then( - (avc: string) => { - this.toast( - true, - 'Widevine level: ' + - widevineLevel + - '\n hevc: ' + - hevc + - '\n avc: ' + - avc, - ); - }, - ); - }); - }); - }; - - onLoad = (data: OnLoadData) => { - this.setState({duration: data.duration, loading: false}); - this.onAudioTracks(data); - this.onTextTracks(data); - this.onVideoTracks(data); - }; - - onProgress = (data: OnProgressData) => { - this.setState({currentTime: data.currentTime}); - }; - - onSeek = (data: OnSeekData) => { - this.setState({isSeeking: false}); - this.setState({currentTime: data.currentTime}); - }; - - onVideoLoadStart = () => { - console.log('onVideoLoadStart'); - this.setState({isLoading: true}); - }; - - onAudioTracks = (data: OnAudioTracksData) => { - const selectedTrack = data.audioTracks?.find((x: AudioTrack) => { - return x.selected; - }); - if (selectedTrack?.index) { - this.setState({ - audioTracks: data.audioTracks, - selectedAudioTrack: { - type: SelectedVideoTrackType.INDEX, - value: selectedTrack?.index, - }, - }); - } else { - this.setState({ - audioTracks: data.audioTracks, - }); - } - }; - - onVideoTracks = (data: OnVideoTracksData) => { - console.log('onVideoTracks', data.videoTracks); - this.setState({ - videoTracks: data.videoTracks, - }); - }; - - onTextTracks = (data: OnTextTracksData) => { - const selectedTrack = data.textTracks?.find((x: TextTrack) => { - return x?.selected; - }); - - if (selectedTrack?.language) { - this.setState({ - textTracks: data.textTracks, - selectedTextTrack: - this.textTracksSelectionBy === 'index' - ? { - type: 'index', - value: selectedTrack?.index, - } - : { - type: 'language', - value: selectedTrack?.language, - }, - }); - } else { - this.setState({ - textTracks: data.textTracks, - }); - } - }; - - onTextTrackDataChanged = (data: OnTextTrackDataChangedData) => { - console.log(`Subtitles: ${JSON.stringify(data, null, 2)}`); - }; - - onAspectRatio = (data: OnVideoAspectRatioData) => { - console.log('onAspectRadio called ' + JSON.stringify(data)); - this.setState({ - videoWidth: data.width, - videoHeight: data.height, - }); - }; - - onVideoBuffer = (param: OnBufferData) => { - console.log('onVideoBuffer'); - this.setState({isLoading: param.isBuffering}); - }; - - onReadyForDisplay = () => { - console.log('onReadyForDisplay'); - this.setState({isLoading: false}); - }; - - onAudioBecomingNoisy = () => { - this.setState({paused: true}); - }; - - onAudioFocusChanged = (event: OnAudioFocusChangedData) => { - this.setState({paused: !event.hasAudioFocus}); - }; - - toast = (visible: boolean, message: string) => { - if (visible) { - if (Platform.OS === 'android') { - ToastAndroid.showWithGravityAndOffset( - message, - ToastAndroid.LONG, - ToastAndroid.BOTTOM, - 25, - 50, - ); - } else { - Alert.alert(message, message); - } - } - }; - - onError = (err: OnVideoErrorData) => { - console.log(JSON.stringify(err)); - this.toast(true, 'error: ' + JSON.stringify(err)); - }; - - onEnd = () => { - if (!this.state.loop) { - this.channelUp(); - } - }; - - onPlaybackRateChange = (data: OnPlaybackRateChangeData) => { - console.log('onPlaybackRateChange', data); - }; - - onPlaybackStateChanged = (data: OnPlaybackStateChangedData) => { - console.log('onPlaybackStateChanged', data); - }; - - toggleFullscreen() { - this.setState({fullscreen: !this.state.fullscreen}); - } - toggleControls() { - this.setState({showRNVControls: !this.state.showRNVControls}); - } - - toggleDecoration() { - this.setState({decoration: !this.state.decoration}); - this.video?.setFullScreen(!this.state.decoration); - } - - toggleShowNotificationControls() { - this.setState({ - showNotificationControls: !this.state.showNotificationControls, - }); - } - - goToChannel(channel: number) { - this.setState({ - srcListId: channel, - duration: 0.0, - currentTime: 0.0, - videoWidth: 0, - videoHeight: 0, - isLoading: false, - audioTracks: [], - textTracks: [], - selectedAudioTrack: undefined, - selectedTextTrack: undefined, - selectedVideoTrack: { - type: SelectedVideoTrackType.AUTO, - }, - }); - } - - channelUp() { - console.log('channel up'); - this.goToChannel((this.state.srcListId + 1) % this.srcList.length); - } - - channelDown() { - console.log('channel down'); - this.goToChannel( - (this.state.srcListId + this.srcList.length - 1) % this.srcList.length, - ); - } - - videoSeek(position: number) { - this.setState({isSeeking: true}); - this.video?.seek(position); - } - - renderSeekBar() { - return ( - this.videoSeek(prop)} - isUISeeking={this.state.isSeeking} - /> - ); - } - - IndicatorLoadingView() { - if (this.state.isLoading) { - return ( - - ); - } else { - return ; - } - } - - renderTopControl() { - return ( - - - {(this.srcList[this.state.srcListId] as AdditionnalSourceInfo) - ?.description || 'local file'} - - - { - this.toggleControls(); - }}> - - {this.state.showRNVControls ? 'Hide controls' : 'Show controls'} - - - - - ); - } - - onRateSelected = (value: MultiValueControlPropType) => { - this.setState({rate: value}); - }; - onVolumeSelected = (value: MultiValueControlPropType) => { - this.setState({volume: value}); - }; - onResizeModeSelected = (value: MultiValueControlPropType) => { - this.setState({resizeMode: value}); - }; - - onSelectedAudioTrackChange = (itemValue: string) => { - console.log('on audio value change ' + itemValue); - if (itemValue === 'none') { - this.setState({ - selectedAudioTrack: SelectedVideoTrackType.DISABLED, - }); - } else { - this.setState({ - selectedAudioTrack: { - type: SelectedVideoTrackType.INDEX, - value: itemValue, - }, - }); - } - }; - - onSelectedTextTrackChange = (itemValue: string) => { - console.log('on value change ' + itemValue); - this.setState({ - selectedTextTrack: { - type: this.textTracksSelectionBy === 'index' ? 'index' : 'language', - value: itemValue, - }, - }); - }; - - onSelectedVideoTrackChange = (itemValue: string) => { - console.log('on value change ' + itemValue); - if (itemValue === undefined || itemValue === 'auto') { - this.setState({ - selectedVideoTrack: { - type: SelectedVideoTrackType.AUTO, - }, - }); - } else { - this.setState({ - selectedVideoTrack: { - type: SelectedVideoTrackType.INDEX, - value: itemValue, - }, - }); - } - }; - - renderOverlay() { - return ( - <> - {this.IndicatorLoadingView()} - - - {this.renderTopControl()} - - - {!this.state.showRNVControls ? ( - <> - - { - this.channelDown(); - }} - text="ChDown" - /> - - - { - this.channelUp(); - }} - text="ChUp" - /> - - - - {Platform.OS === 'android' ? ( - - { - this.popupInfo(); - }} - text="decoderInfo" - /> - { - this.setState({useCache: !this.state.useCache}); - }} - selectedText="enable cache" - unselectedText="disable cache" - /> - - ) : null} - { - this.setState({paused: !this.state.paused}); - }} - selectedText="pause" - unselectedText="playing" - /> - { - this.setState({loop: !this.state.loop}); - }} - selectedText="loop enable" - unselectedText="loop disable" - /> - { - this.toggleFullscreen(); - }} - text="fullscreen" - /> - { - this.toggleDecoration(); - }} - text="decoration" - /> - { - this.setState({ - poster: this.state.poster ? undefined : this.samplePoster, - }); - }} - selectedText="poster" - unselectedText="no poster" - /> - { - this.toggleShowNotificationControls(); - }} - selectedText="hide notification controls" - unselectedText="show notification controls" - /> - - - {/* shall be replaced by slider */} - - {/* shall be replaced by slider */} - - - { - this.setState({muted: !this.state.muted}); - }} - text="muted" - /> - {Platform.OS === 'ios' ? ( - { - this.video - ?.save({}) - ?.then(response => { - console.log('Downloaded URI', response); - }) - .catch(error => { - console.log('error during save ', error); - }); - }} - text="save" - /> - ) : null} - - {this.renderSeekBar()} - - - - - - - - ) : null} - - ); - } - - renderVideoView() { - const viewStyle = this.state.fullscreen - ? styles.fullScreen - : styles.halfScreen; - - const currentSrc = this.srcList[this.state.srcListId]; - const additionnal = currentSrc as AdditionnalSourceInfo; - - return ( - - - ); - } - - render() { - return ( - - {(this.srcList[this.state.srcListId] as AdditionnalSourceInfo)?.noView - ? null - : this.renderVideoView()} - {this.renderOverlay()} - - ); - } -} -export default VideoPlayer; diff --git a/examples/FabricExample/tsconfig.json b/examples/FabricExample/tsconfig.json deleted file mode 100644 index a47cb9d4..00000000 --- a/examples/FabricExample/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -// prettier-ignore -{ - "extends": "@react-native/typescript-config/tsconfig.json", - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - "paths": { - "react-native-video": ["../../src/index.ts"], - "react": [ "./node_modules/@types/react" ] - }, - /* Completeness */ - "skipLibCheck": true, /* Skip type checking all .d.ts files. */ - } -} diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 00000000..2aed8e90 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,172 @@ +# Examples +This directory contains examples for `react-native-video` - this is a guide that will show you what can you find here and how to use them. + +## Examples Structure + +- **[`bare`](#bare)** - Main example ([react-native-test-app](https://github.com/microsoft/react-native-test-app) - bare react-native app) that you can run on: iOS, Android, Windows, visionOS + +- **[`expo`](#expo)** - Expo example that you can run on: iOS, Android, tvOS, web (support coming soon) + +### Updating Examples Content + +Both of applications have mostly the same code (Windows and tvOS have platform-specific code). Other platform are using codebase from `bare` example. +If you want to update examples content, you should do it in `bare` example. `expo` example is copping (and overwriting!) `src` folder from `bare` on dependency install. +If you want to sync `expo` example, you can use `yarn update-src` command in `expo` example directory. + +## How To Run Examples + +## [Bare](https://github.com/TheWidlarzGroup/react-native-video/tree/master/examples/bare) + +### Configuration + +You can configure the example by changing the settings of expo-plugin `app.json` file in the `bare` directory. + +> [!TIP] +> You can find more information about the expo-plugin configuration [here](https://thewidlarzgroup.github.io/react-native-video/other/expo). + +> [!CAUTION] +> You will need to regenerate the native project after changing the `app.json` file. eg. on Apple platforms you will need to install pods twice. (one for applying expo-plugin changes and second for applying react-native-video changes) + +### Building +1. Install dependency in repository root directory +```bash +yarn install +``` + +2. Install dependency in `bare` example directory +```bash +cd examples/bare && yarn install +``` + +3. Now you will need to generate native project for platform you want to run the example on. + - For iOS / visionOS: + Install pods in `ios` / `visionOS` directory + ```bash + # for ios + pod install --project-directory=ios + # for visionOS + pod install --project-directory=visionos + ``` +> [!IMPORTANT] +> You will need to hit it twice, because expo-plugin changes are not applied in the first run. +> [!TIP] +> Make sure you've already downloaded the visionOS simulator on which you want to launch the app. + + Now you are ready to run the App. (Flag `--interactive` is optional, but it is recommended as it allows you to choose the device you want to run the app on. Select `BareExample` scheme) + ```bash + # for ios + yarn ios --interactive + # for visionOS + yarn visionos --interactive + ``` + + - For Android: + There is no need to run any additional command. you can just run the App. (Flag `--interactive` is optional, but it is recommended as it allows you to choose the device you want to run the app on) + ```bash + yarn android --interactive + ``` + + - For Windows: + There is no need to run any additional command. you can just run the App. + ```bash + yarn windows + ``` + +If Metro Bundler is not running (or it did not start), you can start it by running: +```bash +yarn start +``` + +## [Expo](https://github.com/TheWidlarzGroup/react-native-video/tree/master/examples/bare) + +### Configuration + +#### Expo Plugin +You can configure the example by changing the settings of expo-plugin `app.json` file in the `expo` directory. + +> [!TIP] +> You can find more information about the expo-plugin configuration [here](https://thewidlarzgroup.github.io/react-native-video/other/expo). + +> [!CAUTION] +> You will need to regenerate the native project after changing the `app.json` file - you can do it by running `yarn prebuild` command in `expo` example directory. + +#### Switching between Mobile and TV +If you want to switch between mobile and TV version of the app you will need to regenerate the native project. You can do it by running `yarn prebuild:tv` command in `expo` example directory. + + +### Building +1. Install dependency in repository root directory +```bash +yarn install +``` + +2. Install dependency in `expo` example directory +```bash +cd examples/expo && yarn install +``` + +3. Now you will need to generate native project for platform you want to run the example on. + If you want to use example on tv you should read [Switching between Mobile and TV](#switching-between-mobile-and-tv) section. + + - For iOS / tvOS: + Install pods in `ios` directory + ```bash + pod install --project-directory=ios + ``` + + Now you are ready to run the App. (Flag `--device` is optional, but it is recommended as it allows you to choose the device you want to run the app on) + ```bash + # for ios + yarn ios --device + # for tvOS + yarn ios:tv --device + ``` + + - For Android / Android TV: + There is no need to run any additional command. you can just run the App. (Flag `--device` is optional, but it is recommended as it allows you to choose the device you want to run the app on) + ```bash + # for android + yarn android --device + # for android tv + yarn android:tv --device + ``` + +> [!WARNING] +> Setup for android is not complete yet. Please use bare app for android testing. + + - For Web: + Support for web is coming soon. + +If Metro Bundler is not running (or it did not start), you can start it by running: +```bash +yarn start +``` + +## For Maintainers + +### Opening React Native Video in Android Studio / Xcode +To open `react-native-video` in Android Studio / Xcode you need to open `examples/bare/android` or `examples/bare/ios` directory. +First, you need to follow the [How To Run Examples](#how-to-run-examples) guide to generate the native project. Then you can open the project in Android Studio / Xcode by running below command in `examples/bare` directory. +```bash +# for android +studio ./android +# for ios +xed ./ios +``` + +### Updating Examples + +#### Bare +Because `bare` example is using react-native-test-app it is very easy to update it. + +1. Change version of `react-native` in `package.json` file in `bare` directory. +2. Hit below command and verify if everything is working correctly - RN_VERSION should be the version you want to update to. +```bash +npx @rnx-kit/align-deps@latest --requirements react-native@RN_VERSION --write +``` + +That's it! Now you can commit changes and create a PR. + +#### Expo +To update `expo` example you should follow this [guide](https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough). +After updating `expo` example you will need to use prebuild (yarn expo prebuild) - if it fails you will need to add `--clean` flag to the command - this will remove manual link of `react-native-video` package so you will need to link it again. \ No newline at end of file diff --git a/examples/bare/.gitignore b/examples/bare/.gitignore new file mode 100644 index 00000000..65aa665c --- /dev/null +++ b/examples/bare/.gitignore @@ -0,0 +1,16 @@ +*.binlog +*.hprof +*.xcworkspace/ +*.zip +.DS_Store +.gradle/ +.idea/ +.vs/ +.xcode.env +Pods/ +build/ +dist/* +!dist/.gitignore +local.properties +msbuild.binlog +node_modules/ diff --git a/examples/bare/.watchmanconfig b/examples/bare/.watchmanconfig new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/examples/bare/.watchmanconfig @@ -0,0 +1 @@ +{} diff --git a/examples/bare/android/build.gradle b/examples/bare/android/build.gradle new file mode 100644 index 00000000..d38012b1 --- /dev/null +++ b/examples/bare/android/build.gradle @@ -0,0 +1,48 @@ +buildscript { + apply(from: { + def searchDir = rootDir.toPath() + do { + def p = searchDir.resolve("node_modules/react-native-test-app/android/dependencies.gradle") + if (p.toFile().exists()) { + return p.toRealPath().toString() + } + } while (searchDir = searchDir.getParent()) + throw new GradleException("Could not find `react-native-test-app`"); + }()) + + repositories { + mavenCentral() + google() + } + + dependencies { + getReactNativeDependencies().each { dependency -> + classpath(dependency) + } + } +} + +ext { + // For CI builds + useExoplayerIMA = System.getenv("RNV_SAMPLE_ENABLE_ADS") ?: false +} + +allprojects { + repositories { + maven { + // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm + url({ + def searchDir = rootDir.toPath() + do { + def p = searchDir.resolve("node_modules/react-native/android") + if (p.toFile().exists()) { + return p.toRealPath().toString() + } + } while (searchDir = searchDir.getParent()) + throw new GradleException("Could not find `react-native`"); + }()) + } + mavenCentral() + google() + } +} diff --git a/examples/basic/android/gradle.properties b/examples/bare/android/gradle.properties similarity index 50% rename from examples/basic/android/gradle.properties rename to examples/bare/android/gradle.properties index 0e9b37d4..a713e83e 100644 --- a/examples/basic/android/gradle.properties +++ b/examples/bare/android/gradle.properties @@ -7,15 +7,18 @@ # For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m -org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m +# Specifies the JVM arguments used for the Gradle Daemon. The setting is +# particularly useful for configuring JVM memory settings for build performance. +# This does not affect the JVM settings for the Gradle client VM. +# The default is `-Xmx512m -XX:MaxMetaspaceSize=256m`. +org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true +# When configured, Gradle will fork up to org.gradle.workers.max JVMs to execute +# projects in parallel. To learn more about parallel task execution, see the +# section on Gradle build performance: +# https://docs.gradle.org/current/userguide/performance.html#parallel_execution. +# Default is `false`. +#org.gradle.parallel=true # AndroidX package structure to make it clearer which packages are bundled with the # Android operating system, and which are packaged with your app's APK @@ -23,6 +26,8 @@ org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true +# Jetifier randomly fails on these libraries +android.jetifier.ignorelist=hermes-android,react-android # Use this property to specify which architecture you want to build. # You can also override it from the CLI using @@ -34,8 +39,15 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 # your application. You should enable this flag either if you want # to write custom TurboModules/Fabric components OR use libraries that # are providing them. -newArchEnabled=false +# Note that this is incompatible with web debugging. +#newArchEnabled=true +#bridgelessEnabled=true -# Use this property to enable or disable the Hermes JS engine. -# If set to false, you will be using JSC instead. -hermesEnabled=true +# Uncomment the line below to build React Native from source. +#react.buildFromSource=true + +# Version of Android NDK to build against. +#ANDROID_NDK_VERSION=26.1.10909125 + +# Version of Kotlin to build against. +#KOTLIN_VERSION=1.8.22 diff --git a/examples/bare/android/gradle/wrapper/gradle-wrapper.jar b/examples/bare/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000..e6441136 Binary files /dev/null and b/examples/bare/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/examples/FabricExample/android/gradle/wrapper/gradle-wrapper.properties b/examples/bare/android/gradle/wrapper/gradle-wrapper.properties similarity index 94% rename from examples/FabricExample/android/gradle/wrapper/gradle-wrapper.properties rename to examples/bare/android/gradle/wrapper/gradle-wrapper.properties index d11cdd90..a4413138 100644 --- a/examples/FabricExample/android/gradle/wrapper/gradle-wrapper.properties +++ b/examples/bare/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/examples/FabricExample/android/gradlew b/examples/bare/android/gradlew similarity index 92% rename from examples/FabricExample/android/gradlew rename to examples/bare/android/gradlew index 547ba0c2..b740cf13 100755 --- a/examples/FabricExample/android/gradlew +++ b/examples/bare/android/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -145,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -153,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -202,11 +202,11 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ @@ -246,4 +246,4 @@ eval "set -- $( tr '\n' ' ' )" '"$@"' -exec "$JAVACMD" "$@" \ No newline at end of file +exec "$JAVACMD" "$@" diff --git a/examples/basic/android/gradlew.bat b/examples/bare/android/gradlew.bat similarity index 96% rename from examples/basic/android/gradlew.bat rename to examples/bare/android/gradlew.bat index 13ba5d3c..7101f8e4 100644 --- a/examples/basic/android/gradlew.bat +++ b/examples/bare/android/gradlew.bat @@ -89,4 +89,4 @@ exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal -:omega \ No newline at end of file +:omega diff --git a/examples/bare/android/settings.gradle b/examples/bare/android/settings.gradle new file mode 100644 index 00000000..8713951d --- /dev/null +++ b/examples/bare/android/settings.gradle @@ -0,0 +1,21 @@ +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + google() + } +} + +rootProject.name = "BareExample" + +apply(from: { + def searchDir = rootDir.toPath() + do { + def p = searchDir.resolve("node_modules/react-native-test-app/test-app.gradle") + if (p.toFile().exists()) { + return p.toRealPath().toString() + } + } while (searchDir = searchDir.getParent()) + throw new GradleException("Could not find `react-native-test-app`"); +}()) +applyTestAppSettings(settings) diff --git a/examples/bare/app.json b/examples/bare/app.json new file mode 100644 index 00000000..1dac25c8 --- /dev/null +++ b/examples/bare/app.json @@ -0,0 +1,54 @@ +{ + "name": "BareExample", + "displayName": "BareExample", + "components": [ + { + "appKey": "BareExample", + "displayName": "Basic Video Example" + }, + { + "appKey": "DRMExample", + "displayName": "DRM Example" + } + ], + "resources": { + "android": [ + "dist/res", + "dist/main.android.jsbundle" + ], + "ios": [ + "dist/assets", + "dist/main.ios.jsbundle" + ], + "macos": [ + "dist/assets", + "dist/main.macos.jsbundle" + ], + "visionos": [ + "dist/assets", + "dist/main.visionos.jsbundle" + ], + "windows": [ + "dist/assets", + "dist/main.windows.bundle" + ] + }, + "plugins": [ + [ + "react-native-video", + { + "reactNativeTestApp": true, + "enableNotificationControls": true, + "enableBackgroundAudio": true, + "enableADSExtension": false, + "enableCacheExtension": false, + "androidExtensions": { + "useExoplayerRtsp": true, + "useExoplayerSmoothStreaming": true, + "useExoplayerHls": true, + "useExoplayerDash": true + } + } + ] + ] +} diff --git a/examples/bare/babel.config.js b/examples/bare/babel.config.js new file mode 100644 index 00000000..f7b3da3b --- /dev/null +++ b/examples/bare/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: ['module:@react-native/babel-preset'], +}; diff --git a/examples/bare/index.js b/examples/bare/index.js new file mode 100644 index 00000000..7ae62fd9 --- /dev/null +++ b/examples/bare/index.js @@ -0,0 +1,11 @@ +/** + * @format + */ + +import {AppRegistry} from 'react-native'; +import BasicExample from './src/BasicExample'; +import {name as appName} from './app.json'; +import DRMExample from './src/DRMExample'; + +AppRegistry.registerComponent(appName, () => BasicExample); +AppRegistry.registerComponent('DRMExample', () => DRMExample); diff --git a/examples/bare/ios/Podfile b/examples/bare/ios/Podfile new file mode 100644 index 00000000..7e80fc0b --- /dev/null +++ b/examples/bare/ios/Podfile @@ -0,0 +1,23 @@ +ws_dir = Pathname.new(__dir__) +ws_dir = ws_dir.parent until + File.exist?("#{ws_dir}/node_modules/react-native-test-app/test_app.rb") || + ws_dir.expand_path.to_s == '/' +require "#{ws_dir}/node_modules/react-native-test-app/test_app.rb" + +workspace 'BareExample.xcworkspace' + +use_test_app! + +# This is used by CI to test different configurations +# If you want to enable it look to README.md +if ENV['RNV_SAMPLE_ENABLE_ADS'] + $RNVideoUseGoogleIMA = true +end +if ENV['RNV_SAMPLE_VIDEO_CACHING'] + $RNVideoUseVideoCaching = true +end + +# Chache dependencies need to have modular headers +if defined?($RNVideoUseVideoCaching) + use_modular_headers! +end \ No newline at end of file diff --git a/examples/FabricExample/ios/Podfile.lock b/examples/bare/ios/Podfile.lock similarity index 82% rename from examples/FabricExample/ios/Podfile.lock rename to examples/bare/ios/Podfile.lock index f32f0f0d..8700236a 100644 --- a/examples/FabricExample/ios/Podfile.lock +++ b/examples/bare/ios/Podfile.lock @@ -2,12 +2,15 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) - FBLazyVector (0.73.2) + - FBReactNativeSpec (0.73.2): + - RCT-Folly (= 2022.05.16.00) + - RCTRequired (= 0.73.2) + - RCTTypeSafety (= 0.73.2) + - React-Core (= 0.73.2) + - React-jsi (= 0.73.2) + - ReactCommon/turbomodule/core (= 0.73.2) - fmt (6.2.1) - glog (0.3.5) - - hermes-engine (0.73.2): - - hermes-engine/Pre-built (= 0.73.2) - - hermes-engine/Pre-built (0.73.2) - - libevent (2.1.12) - RCT-Folly (2022.05.16.00): - boost - DoubleConversion @@ -24,12 +27,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - RCT-Folly/Futures (2022.05.16.00): - - boost - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - libevent - RCTRequired (0.73.2) - RCTTypeSafety (0.73.2): - FBLazyVector (= 0.73.2) @@ -51,30 +48,25 @@ PODS: - React-callinvoker (0.73.2) - React-Codegen (0.73.2): - DoubleConversion + - FBReactNativeSpec - glog - - hermes-engine - RCT-Folly - RCTRequired - RCTTypeSafety - React-Core - - React-debug - - React-Fabric - - React-FabricImage - - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-NativeModulesApple - - React-rendererdebug - - React-utils + - React-rncore - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - React-Core (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default (= 0.73.2) - React-cxxreact - - React-hermes + - React-jsc - React-jsi - React-jsiexecutor - React-perflogger @@ -84,11 +76,10 @@ PODS: - Yoga - React-Core/CoreModulesHeaders (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-hermes + - React-jsc - React-jsi - React-jsiexecutor - React-perflogger @@ -98,10 +89,9 @@ PODS: - Yoga - React-Core/Default (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-cxxreact - - React-hermes + - React-jsc - React-jsi - React-jsiexecutor - React-perflogger @@ -111,12 +101,11 @@ PODS: - Yoga - React-Core/DevSupport (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default (= 0.73.2) - React-Core/RCTWebSocket (= 0.73.2) - React-cxxreact - - React-hermes + - React-jsc - React-jsi - React-jsiexecutor - React-jsinspector (= 0.73.2) @@ -127,11 +116,10 @@ PODS: - Yoga - React-Core/RCTActionSheetHeaders (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-hermes + - React-jsc - React-jsi - React-jsiexecutor - React-perflogger @@ -141,11 +129,10 @@ PODS: - Yoga - React-Core/RCTAnimationHeaders (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-hermes + - React-jsc - React-jsi - React-jsiexecutor - React-perflogger @@ -155,11 +142,10 @@ PODS: - Yoga - React-Core/RCTBlobHeaders (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-hermes + - React-jsc - React-jsi - React-jsiexecutor - React-perflogger @@ -169,11 +155,10 @@ PODS: - Yoga - React-Core/RCTImageHeaders (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-hermes + - React-jsc - React-jsi - React-jsiexecutor - React-perflogger @@ -183,11 +168,10 @@ PODS: - Yoga - React-Core/RCTLinkingHeaders (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-hermes + - React-jsc - React-jsi - React-jsiexecutor - React-perflogger @@ -197,11 +181,10 @@ PODS: - Yoga - React-Core/RCTNetworkHeaders (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-hermes + - React-jsc - React-jsi - React-jsiexecutor - React-perflogger @@ -211,11 +194,10 @@ PODS: - Yoga - React-Core/RCTSettingsHeaders (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-hermes + - React-jsc - React-jsi - React-jsiexecutor - React-perflogger @@ -225,11 +207,10 @@ PODS: - Yoga - React-Core/RCTTextHeaders (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-hermes + - React-jsc - React-jsi - React-jsiexecutor - React-perflogger @@ -239,11 +220,10 @@ PODS: - Yoga - React-Core/RCTVibrationHeaders (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default - React-cxxreact - - React-hermes + - React-jsc - React-jsi - React-jsiexecutor - React-perflogger @@ -253,11 +233,10 @@ PODS: - Yoga - React-Core/RCTWebSocket (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Core/Default (= 0.73.2) - React-cxxreact - - React-hermes + - React-jsc - React-jsi - React-jsiexecutor - React-perflogger @@ -281,7 +260,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-callinvoker (= 0.73.2) - React-debug (= 0.73.2) @@ -295,7 +273,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -317,6 +294,7 @@ PODS: - React-Fabric/textlayoutmanager (= 0.73.2) - React-Fabric/uimanager (= 0.73.2) - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -328,7 +306,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -336,6 +313,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -347,7 +325,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -355,6 +332,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -366,7 +344,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -374,6 +351,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -385,7 +363,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -393,6 +370,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -404,7 +382,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -423,6 +400,7 @@ PODS: - React-Fabric/components/unimplementedview (= 0.73.2) - React-Fabric/components/view (= 0.73.2) - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -434,7 +412,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -442,6 +419,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -453,7 +431,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -461,6 +438,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -472,7 +450,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -480,6 +457,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -491,7 +469,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -499,6 +476,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -510,7 +488,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -518,6 +495,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -529,7 +507,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -537,6 +514,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -548,7 +526,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -556,6 +533,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -567,7 +545,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -575,6 +552,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -586,7 +564,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -594,6 +571,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -605,7 +583,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -613,6 +590,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -624,7 +602,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -632,6 +609,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -644,7 +622,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -652,6 +629,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -663,7 +641,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -671,6 +648,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -682,7 +660,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -690,6 +667,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -701,7 +679,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -709,6 +686,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -720,7 +698,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -728,6 +705,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -739,7 +717,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -747,6 +724,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -758,7 +736,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -766,6 +743,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -777,7 +755,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -786,6 +763,7 @@ PODS: - React-debug - React-Fabric/uimanager - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -797,7 +775,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired - RCTTypeSafety @@ -805,6 +782,7 @@ PODS: - React-cxxreact - React-debug - React-graphics + - React-jsc - React-jsi - React-jsiexecutor - React-logger @@ -816,13 +794,13 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - RCTRequired (= 0.73.2) - RCTTypeSafety (= 0.73.2) - React-Fabric - React-graphics - React-ImageManager + - React-jsc - React-jsi - React-jsiexecutor (= 0.73.2) - React-logger @@ -835,18 +813,6 @@ PODS: - RCT-Folly/Fabric (= 2022.05.16.00) - React-Core/Default (= 0.73.2) - React-utils - - React-hermes (0.73.2): - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - RCT-Folly/Futures (= 2022.05.16.00) - - React-cxxreact (= 0.73.2) - - React-jsi - - React-jsiexecutor (= 0.73.2) - - React-jsinspector (= 0.73.2) - - React-perflogger (= 0.73.2) - React-ImageManager (0.73.2): - glog - RCT-Folly/Fabric @@ -856,6 +822,11 @@ PODS: - React-graphics - React-rendererdebug - React-utils + - React-jsc (0.73.2): + - React-jsc/Fabric (= 0.73.2) + - React-jsi (= 0.73.2) + - React-jsc/Fabric (0.73.2): + - React-jsi (= 0.73.2) - React-jserrorhandler (0.73.2): - RCT-Folly/Fabric (= 2022.05.16.00) - React-debug @@ -866,91 +837,37 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-jsiexecutor (0.73.2): - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-cxxreact (= 0.73.2) - React-jsi (= 0.73.2) - React-perflogger (= 0.73.2) - React-jsinspector (0.73.2) - - React-jsitracing (0.73.2): - - React-jsi - React-logger (0.73.2): - glog - React-Mapbuffer (0.73.2): - glog - React-debug - - react-native-video (6.3.0): + - react-native-video (6.6.4): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Codegen - React-Core - - React-debug - - React-Fabric - - React-graphics - - React-ImageManager - - react-native-video/Video (= 6.3.0) - - React-NativeModulesApple - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - - react-native-video/Fabric (6.3.0): + - react-native-video/Video (= 6.6.4) + - react-native-video/Video (6.6.4): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Codegen - React-Core - - React-debug - - React-Fabric - - React-graphics - - React-ImageManager - - React-NativeModulesApple - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - - react-native-video/Video (6.3.0): - - glog - - hermes-engine - - RCT-Folly (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Codegen - - React-Core - - React-debug - - React-Fabric - - React-graphics - - React-ImageManager - - react-native-video/Fabric - - React-NativeModulesApple - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - Yoga - React-nativeconfig (0.73.2) - React-NativeModulesApple (0.73.2): - glog - - hermes-engine - React-callinvoker - React-Core - React-cxxreact + - React-jsc - React-jsi - React-runtimeexecutor - ReactCommon/turbomodule/bridging @@ -972,24 +889,15 @@ PODS: - RCTTypeSafety - React-Core - React-CoreModules - - React-debug - - React-Fabric - - React-graphics - - React-hermes + - React-jsc - React-nativeconfig - React-NativeModulesApple - React-RCTFabric - React-RCTImage - React-RCTNetwork - - React-rendererdebug - - React-RuntimeApple - - React-RuntimeCore - - React-RuntimeHermes - React-runtimescheduler - - React-utils - ReactCommon - React-RCTBlob (0.73.2): - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-Codegen - React-Core/RCTBlobHeaders @@ -1000,7 +908,6 @@ PODS: - ReactCommon - React-RCTFabric (0.73.2): - glog - - hermes-engine - RCT-Folly/Fabric (= 2022.05.16.00) - React-Core - React-debug @@ -1008,6 +915,7 @@ PODS: - React-FabricImage - React-graphics - React-ImageManager + - React-jsc - React-jsi - React-nativeconfig - React-RCTImage @@ -1064,49 +972,15 @@ PODS: - RCT-Folly (= 2022.05.16.00) - React-debug - React-rncore (0.73.2) - - React-RuntimeApple (0.73.2): - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - React-callinvoker - - React-Core/Default - - React-CoreModules - - React-cxxreact - - React-jserrorhandler - - React-jsi - - React-jsiexecutor - - React-Mapbuffer - - React-NativeModulesApple - - React-RCTFabric - - React-RuntimeCore - - React-runtimeexecutor - - React-RuntimeHermes - - React-utils - - React-RuntimeCore (0.73.2): - - glog - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - React-cxxreact - - React-jserrorhandler - - React-jsi - - React-jsiexecutor - - React-runtimeexecutor - - React-runtimescheduler - React-runtimeexecutor (0.73.2): - React-jsi (= 0.73.2) - - React-RuntimeHermes (0.73.2): - - hermes-engine - - RCT-Folly/Fabric (= 2022.05.16.00) - - React-jsi - - React-jsitracing - - React-nativeconfig - - React-utils - React-runtimescheduler (0.73.2): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-callinvoker - React-cxxreact - React-debug + - React-jsc - React-jsi - React-rendererdebug - React-runtimeexecutor @@ -1122,7 +996,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-callinvoker (= 0.73.2) - React-cxxreact (= 0.73.2) @@ -1135,7 +1008,6 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-callinvoker (= 0.73.2) - React-cxxreact (= 0.73.2) @@ -1146,32 +1018,24 @@ PODS: - DoubleConversion - fmt (~> 6.2.1) - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - React-callinvoker (= 0.73.2) - React-cxxreact (= 0.73.2) - React-jsi (= 0.73.2) - React-logger (= 0.73.2) - React-perflogger (= 0.73.2) - - RNCPicker (2.7.5): + - ReactNativeHost (0.5.0): - glog - - hermes-engine - RCT-Folly (= 2022.05.16.00) - - RCTRequired - - RCTTypeSafety - - React-Codegen - React-Core - - React-debug - - React-Fabric - - React-graphics - - React-ImageManager - - React-NativeModulesApple - - React-RCTFabric - - React-rendererdebug - - React-utils - - ReactCommon/turbomodule/bridging + - React-cxxreact - ReactCommon/turbomodule/core - - Yoga + - ReactTestApp-DevSupport (3.10.14): + - React-Core + - React-jsi + - ReactTestApp-Resources (1.0.0-dev) + - RNCPicker (2.7.5): + - React-Core - SocketRocket (0.6.1) - Yoga (1.14.0) @@ -1179,9 +1043,8 @@ DEPENDENCIES: - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) + - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) - - libevent (~> 2.1.12) - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) @@ -1197,16 +1060,15 @@ DEPENDENCIES: - React-Fabric (from `../node_modules/react-native/ReactCommon`) - React-FabricImage (from `../node_modules/react-native/ReactCommon`) - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) - - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) + - React-jsc (from `../node_modules/react-native/ReactCommon/jsc`) - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) - - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) - - react-native-video (from `../../..`) + - react-native-video (from `../node_modules/react-native-video`) - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) @@ -1223,20 +1085,19 @@ DEPENDENCIES: - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) - React-rncore (from `../node_modules/react-native/ReactCommon`) - - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) - - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) - - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) + - "ReactNativeHost (from `../node_modules/@rnx-kit/react-native-host`)" + - ReactTestApp-DevSupport (from `../node_modules/react-native-test-app`) + - ReactTestApp-Resources (from `..`) - "RNCPicker (from `../node_modules/@react-native-picker/picker`)" - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) SPEC REPOS: trunk: - fmt - - libevent - SocketRocket EXTERNAL SOURCES: @@ -1246,11 +1107,10 @@ EXTERNAL SOURCES: :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" FBLazyVector: :path: "../node_modules/react-native/Libraries/FBLazyVector" + FBReactNativeSpec: + :path: "../node_modules/react-native/React/FBReactNativeSpec" glog: :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" - hermes-engine: - :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-2023-11-17-RNv0.73.0-21043a3fc062be445e56a2c10ecd8be028dd9cc5 RCT-Folly: :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" RCTRequired: @@ -1277,10 +1137,10 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon" React-graphics: :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" - React-hermes: - :path: "../node_modules/react-native/ReactCommon/hermes" React-ImageManager: :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" + React-jsc: + :path: "../node_modules/react-native/ReactCommon/jsc" React-jserrorhandler: :path: "../node_modules/react-native/ReactCommon/jserrorhandler" React-jsi: @@ -1289,14 +1149,12 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/jsiexecutor" React-jsinspector: :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" - React-jsitracing: - :path: "../node_modules/react-native/ReactCommon/hermes/executor/" React-logger: :path: "../node_modules/react-native/ReactCommon/logger" React-Mapbuffer: :path: "../node_modules/react-native/ReactCommon" react-native-video: - :path: "../../.." + :path: "../node_modules/react-native-video" React-nativeconfig: :path: "../node_modules/react-native/ReactCommon" React-NativeModulesApple: @@ -1329,20 +1187,20 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" React-rncore: :path: "../node_modules/react-native/ReactCommon" - React-RuntimeApple: - :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" - React-RuntimeCore: - :path: "../node_modules/react-native/ReactCommon/react/runtime" React-runtimeexecutor: :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" - React-RuntimeHermes: - :path: "../node_modules/react-native/ReactCommon/react/runtime" React-runtimescheduler: :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" React-utils: :path: "../node_modules/react-native/ReactCommon/react/utils" ReactCommon: :path: "../node_modules/react-native/ReactCommon" + ReactNativeHost: + :path: "../node_modules/@rnx-kit/react-native-host" + ReactTestApp-DevSupport: + :path: "../node_modules/react-native-test-app" + ReactTestApp-Resources: + :path: ".." RNCPicker: :path: "../node_modules/@react-native-picker/picker" Yoga: @@ -1352,41 +1210,39 @@ SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953 FBLazyVector: fbc4957d9aa695250b55d879c1d86f79d7e69ab4 + FBReactNativeSpec: 86de768f89901ef6ed3207cd686362189d64ac88 fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 - hermes-engine: b361c9ef5ef3cda53f66e195599b47e1f84ffa35 - libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0 RCTRequired: 9b1e7e262745fb671e33c51c1078d093bd30e322 RCTTypeSafety: a759e3b086eccf3e2cbf2493d22f28e082f958e6 React: 805f5dd55bbdb92c36b4914c64aaae4c97d358dc React-callinvoker: 6a697867607c990c2c2c085296ee32cfb5e47c01 - React-Codegen: f3cb992539e5c21675f087e536d64b1f2a448655 - React-Core: 49f66fecc7695464e9b7bc7dc7cd9473d2c60584 + React-Codegen: 39377d8c90c3fc0792753c9af53b788abfe5850b + React-Core: 943d6097aaf381b1e7c7e105eecd5a27b51c4e17 React-CoreModules: 710e7c557a1a8180bd1645f5b4bf79f4bd3f5417 - React-cxxreact: 345857b5e4be000c0527df78be3b41a0677a20ce + React-cxxreact: 0f0b3933c36dfe4ed10638a33398533f90ab78d3 React-debug: f1637bce73342b2f6eee4982508fdfb088667a87 - React-Fabric: 4dfcff8f14d8e5a7a60b11b7862dad2a9d99c65b - React-FabricImage: 4a9e9510b7f28bbde6a743b18c0cb941a142e938 + React-Fabric: ba7d74992ed878fdbf91f8b49eb725b310786980 + React-FabricImage: e7457fb89db50cb1b51d0546b5ff002b91026efe React-graphics: dd5af9d8b1b45171fd6933e19fed522f373bcb10 - React-hermes: a52d183a5cf8ccb7020ce3df4275b89d01e6b53e React-ImageManager: c5b7db131eff71443d7f3a8d686fd841d18befd3 + React-jsc: 94234736a90ea29f017f2ee76e5f358a6ba076a9 React-jserrorhandler: 97a6a12e2344c3c4fdd7ba1edefb005215c732f8 - React-jsi: a182068133f80918cd0eec77875abaf943a0b6be - React-jsiexecutor: dacd00ce8a18fc00a0ae6c25e3015a6437e5d2e8 + React-jsi: 0cd661b6ea862c104706311f8265050ee3ecf5e4 + React-jsiexecutor: 94f6026bc4054b413f0ac5e210691c2916d99d1b React-jsinspector: 03644c063fc3621c9a4e8bf263a8150909129618 - React-jsitracing: 7c77101b38fcc8fa7f198de7e1d834350a85af90 React-logger: 66b168e2b2bee57bd8ce9e69f739d805732a5570 React-Mapbuffer: 9ee041e1d7be96da6d76a251f92e72b711c651d6 - react-native-video: 033a57e0fffd1a8fa5cbe8ae3a01b71029032f62 + react-native-video: 60dcbdb52c8291b0a01256d00ac25fde0c18e602 React-nativeconfig: d753fbbc8cecc8ae413d615599ac378bbf6999bb - React-NativeModulesApple: 964f4eeab1b4325e8b6a799cf4444c3fd4eb0a9c + React-NativeModulesApple: 22c25a1baa4b0d0d4845dad2578fc017b0805589 React-perflogger: 29efe63b7ef5fbaaa50ef6eaa92482f98a24b97e React-RCTActionSheet: 69134c62aefd362027b20da01cd5d14ffd39db3f React-RCTAnimation: 3b5a57087c7a5e727855b803d643ac1d445488f5 - React-RCTAppDelegate: cb1a9a8447ddad006f934988016390f4df472e74 - React-RCTBlob: 26ea660f2be1e6de62f2d2ad9a9c7b9bfabb786f - React-RCTFabric: bb6dbbff2f80b9489f8b2f1d2554aa040aa2e3cd + React-RCTAppDelegate: 842870b97f47de7255908ba1ca8786aef877b0b8 + React-RCTBlob: 1fa011b5860c9a70802fab986ad334b458387b7a + React-RCTFabric: c8f86a85501d70c8a77d71f22273e325ffb63fa0 React-RCTImage: 27b27f4663df9e776d0549ed2f3536213e793f1b React-RCTLinking: 962880ce9d0e2ea83fd182953538fc4ed757d4da React-RCTNetwork: 73a756b44d4ad584bae13a5f1484e3ce12accac8 @@ -1394,18 +1250,18 @@ SPEC CHECKSUMS: React-RCTText: 73006e95ca359595c2510c1c0114027c85a6ddd3 React-RCTVibration: 599f427f9cbdd9c4bf38959ca020e8fef0717211 React-rendererdebug: f2946e0a1c3b906e71555a7c4a39aa6a6c0e639b - React-rncore: 6e3139cf51cea08068f008da426821d1deaa24b9 - React-RuntimeApple: 08c29690996ed935e35054965bcfb70ebea67318 - React-RuntimeCore: 5b73f40b46d78a825cf71714e1e5044d389702d6 + React-rncore: 74030de0ffef7b1a3fb77941168624534cc9ae7f React-runtimeexecutor: 2d1f64f58193f00a3ad71d3f89c2bfbfe11cf5a5 - React-RuntimeHermes: 01dcb5a4e9073496f6f981a8648843771e3f6516 - React-runtimescheduler: df8945a656356ff10f58f65a70820478bfcf33ad + React-runtimescheduler: 6517c0cdfae3ea29b599759e069ae97746163248 React-utils: f5bc61e7ea3325c0732ae2d755f4441940163b85 - ReactCommon: 45b5d4f784e869c44a6f5a8fad5b114ca8f78c53 - RNCPicker: 6ce7e81292cec4ddf1a5eeaeec00c31206e9e134 + ReactCommon: a42e89b49d88c3890dfb6fd98a33ac80d555be19 + ReactNativeHost: 1e71e0d4c176f03f4b9073a35197d576ec40cce3 + ReactTestApp-DevSupport: ed439cce949caf074af3ae05051b4bd157ed4019 + ReactTestApp-Resources: 857244f3a23f2b3157b364fa06cf3e8866deff9c + RNCPicker: 3e2c37a8328f368ce14da050cdc8231deb5fc9f9 SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 Yoga: e64aa65de36c0832d04e8c7bd614396c77a80047 -PODFILE CHECKSUM: cf04724bfafa2ca6f6877a9a65072610a4b6ed7c +PODFILE CHECKSUM: 4f0c2a9ecae3454d8a3aae9fd7fdd7724fa2138a COCOAPODS: 1.15.2 diff --git a/examples/bare/metro.config.js b/examples/bare/metro.config.js new file mode 100644 index 00000000..21afe1ba --- /dev/null +++ b/examples/bare/metro.config.js @@ -0,0 +1,20 @@ +const path = require('path'); +const {makeMetroConfig} = require('@rnx-kit/metro-config'); + +module.exports = makeMetroConfig({ + transformer: { + getTransformOptions: async () => ({ + transform: { + experimentalImportSupport: false, + inlineRequires: false, + }, + }), + }, + resolver: { + enableSymlinks: true, + }, + watchFolders: [ + path.join(__dirname, 'node_modules', 'react-native-video'), + path.resolve(__dirname, '../..'), + ], +}); diff --git a/examples/bare/package.json b/examples/bare/package.json new file mode 100644 index 00000000..1be5b1e7 --- /dev/null +++ b/examples/bare/package.json @@ -0,0 +1,52 @@ +{ + "name": "BareExample", + "version": "0.0.1", + "private": true, + "scripts": { + "postinstall": "patch-package", + "android": "react-native run-android", + "build:android": "npm run mkdist && react-native bundle --entry-file index.js --platform android --dev true --bundle-output dist/main.android.jsbundle --assets-dest dist/res", + "build:ios": "npm run mkdist && react-native bundle --entry-file index.js --platform ios --dev true --bundle-output dist/main.ios.jsbundle --assets-dest dist", + "build:visionos": "npm run mkdist && react-native bundle --entry-file index.js --platform ios --dev true --bundle-output dist/main.visionos.jsbundle --assets-dest dist", + "build:windows": "npm run mkdist && react-native bundle --entry-file index.js --platform windows --dev true --bundle-output dist/main.windows.bundle --assets-dest dist", + "ios": "react-native run-ios", + "lint": "eslint .", + "mkdist": "node -e \"require('node:fs').mkdirSync('dist', { recursive: true, mode: 0o755 })\"", + "start": "react-native start", + "test": "jest", + "visionos": "react-native run-visionos", + "windows": "react-native run-windows --sln windows/BareExample.sln" + }, + "dependencies": { + "@callstack/react-native-visionos": "^0.73.0", + "@react-native-picker/picker": "2.8.1", + "react": "18.2.0", + "react-native": "0.73.2", + "react-native-video": "link:../..", + "react-native-windows": "^0.73.0" + }, + "devDependencies": { + "@babel/core": "^7.20.0", + "@babel/preset-env": "^7.20.0", + "@babel/runtime": "^7.20.0", + "@expo/config-plugins": "^8.0.10", + "@react-native/babel-preset": "0.73.19", + "@react-native/eslint-config": "0.73.2", + "@react-native/metro-config": "0.73.3", + "@react-native/typescript-config": "0.73.1", + "@rnx-kit/metro-config": "^2.0.0", + "@types/react": "^18.2.6", + "@types/react-test-renderer": "^18.0.0", + "babel-jest": "^29.6.3", + "eslint": "^8.19.0", + "jest": "^29.6.3", + "patch-package": "^8.0.0", + "prettier": "2.8.8", + "react-native-test-app": "^3.10.14", + "react-test-renderer": "18.2.0", + "typescript": "5.0.4" + }, + "engines": { + "node": ">=18" + } +} diff --git a/examples/bare/patches/@react-native-picker+picker+2.8.1.patch b/examples/bare/patches/@react-native-picker+picker+2.8.1.patch new file mode 100644 index 00000000..ad657e06 --- /dev/null +++ b/examples/bare/patches/@react-native-picker+picker+2.8.1.patch @@ -0,0 +1,21 @@ +diff --git a/node_modules/@react-native-picker/picker/RNCPicker.podspec b/node_modules/@react-native-picker/picker/RNCPicker.podspec +index bfdf16c..bdc9c7c 100644 +--- a/node_modules/@react-native-picker/picker/RNCPicker.podspec ++++ b/node_modules/@react-native-picker/picker/RNCPicker.podspec +@@ -12,7 +12,7 @@ Pod::Spec.new do |s| + + s.authors = package['author'] + s.homepage = package['homepage'] +- s.platforms = { :ios => "9.0", :osx => "10.14" } ++ s.platforms = { :ios => "9.0", :osx => "10.14", :visionos => "1.0" } + + s.source = { :git => "https://github.com/react-native-picker/picker.git", :tag => "v#{s.version}" } + +@@ -25,6 +25,7 @@ Pod::Spec.new do |s| + else + s.ios.source_files = "ios/**/*.{h,m,mm}" + s.osx.source_files = "macos/**/*.{h,m,mm}" ++ s.visionos.source_files = "ios/**/*.{h,m,mm}" + end + + s.dependency 'React-Core' diff --git a/examples/bare/react-native.config.js b/examples/bare/react-native.config.js new file mode 100644 index 00000000..9a219f6c --- /dev/null +++ b/examples/bare/react-native.config.js @@ -0,0 +1,23 @@ +const project = (() => { + try { + const { configureProjects } = require("react-native-test-app"); + return configureProjects({ + android: { + sourceDir: "android", + }, + ios: { + sourceDir: "ios", + }, + windows: { + sourceDir: "windows", + solutionFile: "windows/BareExample.sln", + }, + }); + } catch (_) { + return undefined; + } +})(); + +module.exports = { + ...(project ? { project } : undefined), +}; diff --git a/examples/bare/src/BasicExample.tsx b/examples/bare/src/BasicExample.tsx new file mode 100644 index 00000000..98e189de --- /dev/null +++ b/examples/bare/src/BasicExample.tsx @@ -0,0 +1,345 @@ +import React, {type FC, useCallback, useRef, useState, useEffect} from 'react'; + +import {Platform, TouchableOpacity, View, StatusBar} from 'react-native'; + +import Video, { + VideoRef, + SelectedVideoTrackType, + BufferingStrategyType, + SelectedTrackType, + ResizeMode, + type AudioTrack, + type OnAudioTracksData, + type OnLoadData, + type OnProgressData, + type OnTextTracksData, + type OnVideoAspectRatioData, + type TextTrack, + type OnBufferData, + type OnAudioFocusChangedData, + type OnVideoErrorData, + type OnTextTrackDataChangedData, + type OnSeekData, + type OnPlaybackStateChangedData, + type OnPlaybackRateChangeData, + type OnVideoTracksData, + type ReactVideoSource, + type VideoTrack, + type SelectedTrack, + type SelectedVideoTrack, + type EnumValues, + OnBandwidthUpdateData, + ControlsStyles, +} from 'react-native-video'; +import styles from './styles'; +import {type AdditionalSourceInfo} from './types'; +import { + bufferConfig, + isAndroid, + srcList, + textTracksSelectionBy, + audioTracksSelectionBy, +} from './constants'; +import {Overlay, toast, VideoLoader} from './components'; + +const BasicExample = () => { + const [rate, setRate] = useState(1); + const [volume, setVolume] = useState(1); + const [muted, setMuted] = useState(false); + const [resizeMode, setResizeMode] = useState>( + ResizeMode.CONTAIN, + ); + const [duration, setDuration] = useState(0); + const [currentTime, setCurrentTime] = useState(0); + const [_, setVideoSize] = useState({videoWidth: 0, videoHeight: 0}); + const [paused, setPaused] = useState(false); + const [fullscreen, setFullscreen] = useState(true); + const [isLoading, setIsLoading] = useState(false); + const [audioTracks, setAudioTracks] = useState([]); + const [textTracks, setTextTracks] = useState([]); + const [videoTracks, setVideoTracks] = useState([]); + const [selectedAudioTrack, setSelectedAudioTrack] = useState< + SelectedTrack | undefined + >(undefined); + const [selectedTextTrack, setSelectedTextTrack] = useState< + SelectedTrack | undefined + >(undefined); + const [selectedVideoTrack, setSelectedVideoTrack] = + useState({ + type: SelectedVideoTrackType.AUTO, + }); + const [srcListId, setSrcListId] = useState(0); + const [repeat, setRepeat] = useState(false); + const [controls, setControls] = useState(false); + const [useCache, setUseCache] = useState(false); + const [showPoster, setShowPoster] = useState(false); + const [showNotificationControls, setShowNotificationControls] = + useState(false); + const [isSeeking, setIsSeeking] = useState(false); + + const videoRef = useRef(null); + const viewStyle = fullscreen ? styles.fullScreen : styles.halfScreen; + const currentSrc = srcList[srcListId]; + const additional = currentSrc as AdditionalSourceInfo; + + const goToChannel = useCallback((channel: number) => { + setSrcListId(channel); + setDuration(0); + setCurrentTime(0); + setVideoSize({videoWidth: 0, videoHeight: 0}); + setIsLoading(false); + setAudioTracks([]); + setTextTracks([]); + setSelectedAudioTrack(undefined); + setSelectedTextTrack(undefined); + setSelectedVideoTrack({ + type: SelectedVideoTrackType.AUTO, + }); + }, []); + + const channelUp = useCallback(() => { + console.log('channel up'); + goToChannel((srcListId + 1) % srcList.length); + }, [goToChannel, srcListId]); + + const channelDown = useCallback(() => { + console.log('channel down'); + goToChannel((srcListId + srcList.length - 1) % srcList.length); + }, [goToChannel, srcListId]); + + const onAudioTracks = (data: OnAudioTracksData) => { + console.log('onAudioTracks', data); + const selectedTrack = data.audioTracks?.find((x: AudioTrack) => { + return x.selected; + }); + let value; + if (audioTracksSelectionBy === SelectedTrackType.INDEX) { + value = selectedTrack?.index; + } else if (audioTracksSelectionBy === SelectedTrackType.LANGUAGE) { + value = selectedTrack?.language; + } else if (audioTracksSelectionBy === SelectedTrackType.TITLE) { + value = selectedTrack?.title; + } + setAudioTracks(data.audioTracks); + setSelectedAudioTrack({ + type: audioTracksSelectionBy, + value: value, + }); + }; + + const onVideoTracks = (data: OnVideoTracksData) => { + console.log('onVideoTracks', data.videoTracks); + setVideoTracks(data.videoTracks); + }; + + const onTextTracks = (data: OnTextTracksData) => { + const selectedTrack = data.textTracks?.find((x: TextTrack) => { + return x?.selected; + }); + + setTextTracks(data.textTracks); + let value; + if (textTracksSelectionBy === SelectedTrackType.INDEX) { + value = selectedTrack?.index; + } else if (textTracksSelectionBy === SelectedTrackType.LANGUAGE) { + value = selectedTrack?.language; + } else if (textTracksSelectionBy === SelectedTrackType.TITLE) { + value = selectedTrack?.title; + } + setSelectedTextTrack({ + type: textTracksSelectionBy, + value: value, + }); + }; + + const onLoad = (data: OnLoadData) => { + setDuration(data.duration); + onAudioTracks(data); + onTextTracks(data); + onVideoTracks(data); + }; + + const onProgress = (data: OnProgressData) => { + setCurrentTime(data.currentTime); + }; + + const onSeek = (data: OnSeekData) => { + setCurrentTime(data.currentTime); + setIsSeeking(false); + }; + + const onVideoLoadStart = () => { + console.log('onVideoLoadStart'); + setIsLoading(true); + }; + + const onTextTrackDataChanged = (data: OnTextTrackDataChangedData) => { + console.log(`Subtitles: ${JSON.stringify(data, null, 2)}`); + }; + + const onAspectRatio = (data: OnVideoAspectRatioData) => { + console.log('onAspectRadio called ' + JSON.stringify(data)); + setVideoSize({videoWidth: data.width, videoHeight: data.height}); + }; + + const onVideoBuffer = (param: OnBufferData) => { + console.log('onVideoBuffer'); + setIsLoading(param.isBuffering); + }; + + const onReadyForDisplay = () => { + console.log('onReadyForDisplay'); + setIsLoading(false); + }; + + const onAudioBecomingNoisy = () => { + setPaused(true); + }; + + const onAudioFocusChanged = (event: OnAudioFocusChangedData) => { + setPaused(!event.hasAudioFocus); + }; + + const onError = (err: OnVideoErrorData) => { + console.log(JSON.stringify(err)); + toast(true, 'error: ' + JSON.stringify(err)); + }; + + const onEnd = () => { + if (!repeat) { + channelUp(); + } + }; + + const onPlaybackRateChange = (data: OnPlaybackRateChangeData) => { + console.log('onPlaybackRateChange', data); + }; + + const onPlaybackStateChanged = (data: OnPlaybackStateChangedData) => { + console.log('onPlaybackStateChanged', data); + }; + + const onVideoBandwidthUpdate = (data: OnBandwidthUpdateData) => { + console.log('onVideoBandwidthUpdate', data); + }; + + const onFullScreenExit = () => { + // iOS pauses video on exit from full screen + Platform.OS === 'ios' && setPaused(true); + }; + + const _renderLoader = showPoster ? () => : undefined; + + const _subtitleStyle = {subtitlesFollowVideo: true}; + const _controlsStyles: ControlsStyles = { + hideNavigationBarOnFullScreenMode: true, + hideNotificationBarOnFullScreenMode: true, + liveLabel: 'LIVE', + }; + const _bufferConfig = { + ...bufferConfig, + cacheSizeMB: useCache ? 200 : 0, + }; + + useEffect(() => { + videoRef.current?.setSource(currentSrc); + }, [currentSrc]); + + return ( + + + ); +}; +export default BasicExample; diff --git a/examples/basic/src/VideoPlayer.windows.tsx b/examples/bare/src/BasicExample.windows.tsx similarity index 100% rename from examples/basic/src/VideoPlayer.windows.tsx rename to examples/bare/src/BasicExample.windows.tsx diff --git a/examples/bare/src/DRMExample.tsx b/examples/bare/src/DRMExample.tsx new file mode 100644 index 00000000..24db9385 --- /dev/null +++ b/examples/bare/src/DRMExample.tsx @@ -0,0 +1,231 @@ +import * as React from 'react'; +import { + Text, + View, + StyleSheet, + Platform, + ScrollView, + TextInput, + Alert, + Button, + ActivityIndicator, +} from 'react-native'; +import Video, {DRMType, ReactVideoSourceProperties} from 'react-native-video'; + +type SourceType = ReactVideoSourceProperties | null; + +const DRMExample = () => { + const [loading, setLoading] = React.useState(false); + + const [source, setSource] = React.useState(null); + + const [hls, setHls] = React.useState( + 'https://d5lhbv70lxyop.cloudfront.net/02b91d1c-dcde-4a93-8391-8524f7836a72/assets/5a116d5e-4acb-4461-8bc0-81adf45a8432/videokit-576p-dash-hls-drm/hls/index.m3u8', + ); + const [fairplayLicense, setFairplayLicense] = React.useState( + 'https://videokit-demo-7dr2zvpf.la.drm.cloud/acquire-license/fairplay?BrandGuid=02b91d1c-dcde-4a93-8391-8524f7836a72', + ); + const [fairplayCertificate, setFairplayCertificate] = React.useState( + 'https://videokit-demo-7dr2zvpf.la.drm.cloud/certificate/fairplay?BrandGuid=02b91d1c-dcde-4a93-8391-8524f7836a72', + ); + const [dash, setDash] = React.useState( + 'https://d5lhbv70lxyop.cloudfront.net/02b91d1c-dcde-4a93-8391-8524f7836a72/assets/5a116d5e-4acb-4461-8bc0-81adf45a8432/videokit-576p-dash-hls-drm/dash/index.mpd', + ); + const [widevineLicense, setWidevineLicense] = React.useState( + 'https://videokit-demo-7dr2zvpf.la.drm.cloud/acquire-license/widevine?BrandGuid=02b91d1c-dcde-4a93-8391-8524f7836a72', + ); + + // ------------- DMR Token ------------- + // This token is used to authenticate the user and get the license + // To run example please go to https://someweb.com (TODO: Insert here real website cc Kamil) and complete the form to receive the token + // After you receive the token, please paste it here + const [token, setToken] = React.useState(''); + + const handlePlayStopVideo = () => { + if (source !== null) { + setSource(null); + return; + } + + if (token === '') { + Alert.alert('Error', 'Please enter the token received from the website'); + return; + } + + setLoading(true); + + const newSource: ReactVideoSourceProperties = {}; + + if (Platform.OS === 'ios') { + if (fairplayLicense && fairplayCertificate) { + newSource.uri = hls; + newSource.drm = { + type: DRMType.FAIRPLAY, + licenseServer: fairplayLicense, + certificateUrl: fairplayCertificate, + getLicense: (spcString, contentId, licenseUrl, loadedLicenseUrl) => { + const formData = new FormData(); + formData.append('spc', spcString); + + const resultURL = loadedLicenseUrl.replace('skd://', 'https://'); + + return fetch(`${resultURL}&userToken=${token}`, { + method: 'POST', + headers: { + 'Content-Type': 'multipart/form-data', + Accept: 'application/json', + }, + body: formData, + }) + .then((response) => response.json()) + .then((response) => { + return response.ckc; + }) + .catch((error) => { + console.error('Error', error); + }); + }, + }; + } else { + Alert.alert('Error', 'Please enter Fairplay License and Certificate'); + setLoading(false); + } + } + + if (Platform.OS === 'android') { + if (widevineLicense) { + newSource.drm = { + type: DRMType.WIDEVINE, + licenseServer: widevineLicense, + }; + newSource.uri = dash; + } else { + Alert.alert('Error', 'Please enter Widevine License'); + setLoading(false); + } + } + + setSource(newSource); + }; + + if (Platform.OS !== 'ios' && Platform.OS !== 'android') { + return ( + + DRM is not supported on this platform + + ); + } + + return ( + + DRM Protected Stream Player + + {loading && } + {source && source.uri && ( + - } - - onPress() { - if (this.videoPlayer!=null) - this.videoPlayer.presentFullscreenPlayer(); - } - - resizeVideoPlayer() { - // Always in 16 /9 aspect ratio - let {width, height} = Dimensions.get('window'); - - if (Util.isPortrait()) { - this.setState({ - orientationWidth: width * 0.8, - orientationHeight: width * 0.8 * 0.56, - }); - } else { - this.setState({ - orientationHeight: height * 0.8, - orientationWidth: height * 0.8 * 1.77 - }); - } - } - - onLayout(e) { - console.log('on layout called'); - this.resizeVideoPlayer(); - } -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - justifyContent: 'center', - alignItems: 'center', - backgroundColor: 'white', - }, -}); - -AppRegistry.registerComponent('VideoPlayer', () => VideoPlayer); diff --git a/examples/embed-and-fullscreen/ios/AppDelegate.h b/examples/embed-and-fullscreen/ios/AppDelegate.h deleted file mode 100644 index a9654d5e..00000000 --- a/examples/embed-and-fullscreen/ios/AppDelegate.h +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import - -@interface AppDelegate : UIResponder - -@property (nonatomic, strong) UIWindow *window; - -@end diff --git a/examples/embed-and-fullscreen/ios/AppDelegate.m b/examples/embed-and-fullscreen/ios/AppDelegate.m deleted file mode 100644 index 74dbce6d..00000000 --- a/examples/embed-and-fullscreen/ios/AppDelegate.m +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import "AppDelegate.h" - -#import "RCTRootView.h" - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - NSURL *jsCodeLocation; - - // Loading JavaScript code - uncomment the one you want. - - // OPTION 1 - // Load from development server. Start the server from the repository root: - // - // $ npm start - // - // To run on device, change `localhost` to the IP address of your computer, and make sure your computer and - // iOS device are on the same Wi-Fi network. - jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"]; - - // OPTION 2 - // Load from pre-bundled file on disk. To re-generate the static bundle, run - // - // $ curl 'http://localhost:8081/index.ios.bundle?dev=false&minify=true' -o iOS/main.jsbundle - // - // and uncomment the next following line - // jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; - - RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation - moduleName:@"VideoPlayer" - initialProperties: nil - launchOptions:launchOptions]; - - self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - UIViewController *rootViewController = [[UIViewController alloc] init]; - rootViewController.view = rootView; - self.window.rootViewController = rootViewController; - [self.window makeKeyAndVisible]; - return YES; -} - -@end diff --git a/examples/embed-and-fullscreen/ios/Base.lproj/LaunchScreen.xib b/examples/embed-and-fullscreen/ios/Base.lproj/LaunchScreen.xib deleted file mode 100644 index 187346b0..00000000 --- a/examples/embed-and-fullscreen/ios/Base.lproj/LaunchScreen.xib +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/embed-and-fullscreen/ios/Info.plist b/examples/embed-and-fullscreen/ios/Info.plist deleted file mode 100644 index 45532a3a..00000000 --- a/examples/embed-and-fullscreen/ios/Info.plist +++ /dev/null @@ -1,47 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - 2 - LSApplicationCategoryType - - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/examples/embed-and-fullscreen/ios/VideoPlayer-tvOS.plist b/examples/embed-and-fullscreen/ios/VideoPlayer-tvOS.plist deleted file mode 100644 index ecbd496b..00000000 --- a/examples/embed-and-fullscreen/ios/VideoPlayer-tvOS.plist +++ /dev/null @@ -1,53 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSExceptionDomains - - localhost - - NSExceptionAllowsInsecureHTTPLoads - - - - - NSLocationWhenInUseUsageDescription - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/examples/embed-and-fullscreen/ios/VideoPlayer.xcodeproj/project.pbxproj b/examples/embed-and-fullscreen/ios/VideoPlayer.xcodeproj/project.pbxproj deleted file mode 100644 index 0d077be9..00000000 --- a/examples/embed-and-fullscreen/ios/VideoPlayer.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1216 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; }; - 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; }; - 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; }; - 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; }; - 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; }; - 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; }; - 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; }; - 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; }; - 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; - 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; - 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; - 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; - 8C2A0F841E2560A100E31596 /* libRCTVideo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C2A0F791E25608300E31596 /* libRCTVideo.a */; }; - FA3566AB216D5D7000E01ABD /* libRCTImage-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */; }; - FA3566AC216D5D7000E01ABD /* libRCTLinking-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */; }; - FA3566AD216D5D7000E01ABD /* libRCTNetwork-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */; }; - FA3566AE216D5D7000E01ABD /* libRCTSettings-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */; }; - FA3566AF216D5D7000E01ABD /* libRCTText-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */; }; - FA3566B0216D5D7000E01ABD /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; }; - FA3566C8216D5DA900E01ABD /* libRCTVideo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D1107C542111145500073188 /* libRCTVideo.a */; }; - FA8681B8216D5C6D0010C92A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; - FA8681B9216D5C6D0010C92A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - FA8681C8216D5C6D0010C92A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - FA8B47A5216D777200AB07CF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTActionSheet; - }; - 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTGeolocation; - }; - 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B5115D1A9E6B3D00147676; - remoteInfo = RCTImage; - }; - 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B511DB1A9E6C8500147676; - remoteInfo = RCTNetwork; - }; - 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; - remoteInfo = RCTVibration; - }; - 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTSettings; - }; - 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3C86DF461ADF2C930047B81A; - remoteInfo = RCTWebSocket; - }; - 146834031AC3E56700842450 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; - remoteInfo = React; - }; - 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A283A1D9B042B00D4039D; - remoteInfo = "RCTImage-tvOS"; - }; - 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28471D9B043800D4039D; - remoteInfo = "RCTLinking-tvOS"; - }; - 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28541D9B044C00D4039D; - remoteInfo = "RCTNetwork-tvOS"; - }; - 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28611D9B046600D4039D; - remoteInfo = "RCTSettings-tvOS"; - }; - 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A287B1D9B048500D4039D; - remoteInfo = "RCTText-tvOS"; - }; - 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28881D9B049200D4039D; - remoteInfo = "RCTWebSocket-tvOS"; - }; - 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28131D9B038B00D4039D; - remoteInfo = "React-tvOS"; - }; - 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3C059A1DE3340900C268FA; - remoteInfo = yoga; - }; - 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3C06751DE3340C00C268FA; - remoteInfo = "yoga-tvOS"; - }; - 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9251DE5FBEC00167DC4; - remoteInfo = cxxreact; - }; - 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4; - remoteInfo = "cxxreact-tvOS"; - }; - 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4; - remoteInfo = jschelpers; - }; - 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4; - remoteInfo = "jschelpers-tvOS"; - }; - 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTAnimation; - }; - 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28201D9B03D100D4039D; - remoteInfo = "RCTAnimation-tvOS"; - }; - 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTLinking; - }; - 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B5119B1A9E6C1200147676; - remoteInfo = RCTText; - }; - 8C2A0F781E25608300E31596 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 8C2A0F651E25608300E31596 /* RCTVideo.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTVideo; - }; - D1107C532111145500073188 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 8C2A0F651E25608300E31596 /* RCTVideo.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 641E28441F0EEC8500443AF6; - remoteInfo = "RCTVideo-tvOS"; - }; - D1107C592111145500073188 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3DBE0D001F3B181A0099AA32; - remoteInfo = fishhook; - }; - D1107C5B2111145500073188 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3DBE0D0D1F3B181C0099AA32; - remoteInfo = "fishhook-tvOS"; - }; - D1107C6D2111145500073188 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = EBF21BDC1FC498900052F4D5; - remoteInfo = jsinspector; - }; - D1107C6F2111145500073188 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = EBF21BFA1FC4989A0052F4D5; - remoteInfo = "jsinspector-tvOS"; - }; - D1107C712111145500073188 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 139D7ECE1E25DB7D00323FB7; - remoteInfo = "third-party"; - }; - D1107C732111145500073188 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D383D3C1EBD27B6005632C8; - remoteInfo = "third-party-tvOS"; - }; - D1107C752111145500073188 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 139D7E881E25C6D100323FB7; - remoteInfo = "double-conversion"; - }; - D1107C772111145500073188 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D383D621EBD27B9005632C8; - remoteInfo = "double-conversion-tvOS"; - }; - D1107C792111145500073188 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 9936F3131F5F2E4B0010BF04; - remoteInfo = privatedata; - }; - D1107C7B2111145500073188 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 9936F32F1F5F2E5B0010BF04; - remoteInfo = "privatedata-tvOS"; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; - 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = ""; }; - 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = ""; }; - 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; }; - 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; }; - 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = ""; }; - 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; - 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; - 13B07F961A680F5B00A75B9A /* VideoPlayer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = VideoPlayer.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = VideoPlayer/AppDelegate.h; sourceTree = ""; }; - 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = VideoPlayer/AppDelegate.m; sourceTree = ""; }; - 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; - 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = VideoPlayer/Images.xcassets; sourceTree = ""; }; - 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = VideoPlayer/Info.plist; sourceTree = ""; }; - 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = VideoPlayer/main.m; sourceTree = ""; }; - 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; - 39CBB10045CEBFA9BBB9645E /* libPods-VideoPlayer.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VideoPlayer.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; }; - 627363E07276C06249D7CEBF /* libPods-VideoPlayer-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-VideoPlayer-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; - 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; - 8C2A0F651E25608300E31596 /* RCTVideo.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVideo.xcodeproj; path = "../node_modules/react-native-video/ios/RCTVideo.xcodeproj"; sourceTree = ""; }; - FA8681CE216D5C6D0010C92A /* VideoPlayer-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "VideoPlayer-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - FA8681D0216D5C6E0010C92A /* VideoPlayer-tvOS.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "VideoPlayer-tvOS.plist"; path = "/Users/amishra/Development/react-native-video-nfb/examples/basic/ios/VideoPlayer-tvOS.plist"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 146834051AC3E58100842450 /* libReact.a in Frameworks */, - 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */, - 8C2A0F841E2560A100E31596 /* libRCTVideo.a in Frameworks */, - 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, - 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */, - 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */, - 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */, - 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */, - 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */, - 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, - 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, - 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FA8681BA216D5C6D0010C92A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - FA8B47A5216D777200AB07CF /* libReact.a in Frameworks */, - FA3566AB216D5D7000E01ABD /* libRCTImage-tvOS.a in Frameworks */, - FA3566AC216D5D7000E01ABD /* libRCTLinking-tvOS.a in Frameworks */, - FA3566AD216D5D7000E01ABD /* libRCTNetwork-tvOS.a in Frameworks */, - FA3566AE216D5D7000E01ABD /* libRCTSettings-tvOS.a in Frameworks */, - FA3566AF216D5D7000E01ABD /* libRCTText-tvOS.a in Frameworks */, - FA3566B0216D5D7000E01ABD /* libRCTWebSocket-tvOS.a in Frameworks */, - FA3566C8216D5DA900E01ABD /* libRCTVideo.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 00C302A81ABCB8CE00DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */, - ); - name = Products; - sourceTree = ""; - }; - 00C302B61ABCB90400DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */, - ); - name = Products; - sourceTree = ""; - }; - 00C302BC1ABCB91800DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */, - 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 00C302D41ABCB9D200DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */, - 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 00C302E01ABCB9EE00DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */, - ); - name = Products; - sourceTree = ""; - }; - 139105B71AF99BAD00B5F7CC /* Products */ = { - isa = PBXGroup; - children = ( - 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */, - 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 139FDEE71B06529A00C62182 /* Products */ = { - isa = PBXGroup; - children = ( - 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */, - 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */, - D1107C5A2111145500073188 /* libfishhook.a */, - D1107C5C2111145500073188 /* libfishhook-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 13B07FAE1A68108700A75B9A /* VideoPlayer */ = { - isa = PBXGroup; - children = ( - 008F07F21AC5B25A0029DE68 /* main.jsbundle */, - 13B07FAF1A68108700A75B9A /* AppDelegate.h */, - 13B07FB01A68108700A75B9A /* AppDelegate.m */, - 13B07FB51A68108700A75B9A /* Images.xcassets */, - 13B07FB61A68108700A75B9A /* Info.plist */, - 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, - 13B07FB71A68108700A75B9A /* main.m */, - ); - name = VideoPlayer; - sourceTree = ""; - }; - 146834001AC3E56700842450 /* Products */ = { - isa = PBXGroup; - children = ( - 146834041AC3E56700842450 /* libReact.a */, - 3DAD3EA31DF850E9000B6D8A /* libReact.a */, - 3DAD3EA51DF850E9000B6D8A /* libyoga.a */, - 3DAD3EA71DF850E9000B6D8A /* libyoga.a */, - 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */, - 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */, - 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */, - 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */, - D1107C6E2111145500073188 /* libjsinspector.a */, - D1107C702111145500073188 /* libjsinspector-tvOS.a */, - D1107C722111145500073188 /* libthird-party.a */, - D1107C742111145500073188 /* libthird-party.a */, - D1107C762111145500073188 /* libdouble-conversion.a */, - D1107C782111145500073188 /* libdouble-conversion.a */, - D1107C7A2111145500073188 /* libprivatedata.a */, - D1107C7C2111145500073188 /* libprivatedata-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 5E91572E1DD0AC6500FF2AA8 /* Products */ = { - isa = PBXGroup; - children = ( - 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */, - 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */, - ); - name = Products; - sourceTree = ""; - }; - 78C398B11ACF4ADC00677621 /* Products */ = { - isa = PBXGroup; - children = ( - 78C398B91ACF4ADC00677621 /* libRCTLinking.a */, - 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 832341AE1AAA6A7D00B99B32 /* Libraries */ = { - isa = PBXGroup; - children = ( - 8C2A0F651E25608300E31596 /* RCTVideo.xcodeproj */, - 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */, - 146833FF1AC3E56700842450 /* React.xcodeproj */, - 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, - 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, - 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */, - 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */, - 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */, - 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */, - 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, - 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, - 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */, - ); - name = Libraries; - sourceTree = ""; - }; - 832341B11AAA6A8300B99B32 /* Products */ = { - isa = PBXGroup; - children = ( - 832341B51AAA6A8300B99B32 /* libRCTText.a */, - 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 83CBB9F61A601CBA00E9B192 = { - isa = PBXGroup; - children = ( - FA8681CF216D5C6D0010C92A /* Resources-iPad */, - 13B07FAE1A68108700A75B9A /* VideoPlayer */, - 832341AE1AAA6A7D00B99B32 /* Libraries */, - 83CBBA001A601CBA00E9B192 /* Products */, - FA35669C216D5D7000E01ABD /* Frameworks */, - ); - indentWidth = 2; - sourceTree = ""; - tabWidth = 2; - }; - 83CBBA001A601CBA00E9B192 /* Products */ = { - isa = PBXGroup; - children = ( - 13B07F961A680F5B00A75B9A /* VideoPlayer.app */, - FA8681CE216D5C6D0010C92A /* VideoPlayer-tvOS.app */, - ); - name = Products; - sourceTree = ""; - }; - 8C2A0F661E25608300E31596 /* Products */ = { - isa = PBXGroup; - children = ( - 8C2A0F791E25608300E31596 /* libRCTVideo.a */, - D1107C542111145500073188 /* libRCTVideo.a */, - ); - name = Products; - sourceTree = ""; - }; - FA35669C216D5D7000E01ABD /* Frameworks */ = { - isa = PBXGroup; - children = ( - 39CBB10045CEBFA9BBB9645E /* libPods-VideoPlayer.a */, - 627363E07276C06249D7CEBF /* libPods-VideoPlayer-tvOS.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - FA8681CF216D5C6D0010C92A /* Resources-iPad */ = { - isa = PBXGroup; - children = ( - FA8681D0216D5C6E0010C92A /* VideoPlayer-tvOS.plist */, - ); - name = "Resources-iPad"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 13B07F861A680F5B00A75B9A /* VideoPlayer */ = { - isa = PBXNativeTarget; - buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "VideoPlayer" */; - buildPhases = ( - 13B07F871A680F5B00A75B9A /* Sources */, - 13B07F8C1A680F5B00A75B9A /* Frameworks */, - 13B07F8E1A680F5B00A75B9A /* Resources */, - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = VideoPlayer; - productName = "Hello World"; - productReference = 13B07F961A680F5B00A75B9A /* VideoPlayer.app */; - productType = "com.apple.product-type.application"; - }; - FA8681B6216D5C6D0010C92A /* VideoPlayer-tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = FA8681CB216D5C6D0010C92A /* Build configuration list for PBXNativeTarget "VideoPlayer-tvOS" */; - buildPhases = ( - FA8681B7216D5C6D0010C92A /* Sources */, - FA8681BA216D5C6D0010C92A /* Frameworks */, - FA8681C7216D5C6D0010C92A /* Resources */, - FA8681CA216D5C6D0010C92A /* Bundle React Native code and images */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "VideoPlayer-tvOS"; - productName = "Hello World"; - productReference = FA8681CE216D5C6D0010C92A /* VideoPlayer-tvOS.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 83CBB9F71A601CBA00E9B192 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0610; - ORGANIZATIONNAME = Facebook; - }; - buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "VideoPlayer" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 83CBB9F61A601CBA00E9B192; - productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */; - ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; - }, - { - ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */; - ProjectRef = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; - }, - { - ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; - ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; - }, - { - ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */; - ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; - }, - { - ProductGroup = 78C398B11ACF4ADC00677621 /* Products */; - ProjectRef = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; - }, - { - ProductGroup = 00C302D41ABCB9D200DB3ED1 /* Products */; - ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; - }, - { - ProductGroup = 139105B71AF99BAD00B5F7CC /* Products */; - ProjectRef = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; - }, - { - ProductGroup = 832341B11AAA6A8300B99B32 /* Products */; - ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; - }, - { - ProductGroup = 00C302E01ABCB9EE00DB3ED1 /* Products */; - ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; - }, - { - ProductGroup = 8C2A0F661E25608300E31596 /* Products */; - ProjectRef = 8C2A0F651E25608300E31596 /* RCTVideo.xcodeproj */; - }, - { - ProductGroup = 139FDEE71B06529A00C62182 /* Products */; - ProjectRef = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - }, - { - ProductGroup = 146834001AC3E56700842450 /* Products */; - ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 13B07F861A680F5B00A75B9A /* VideoPlayer */, - FA8681B6216D5C6D0010C92A /* VideoPlayer-tvOS */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTActionSheet.a; - remoteRef = 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTGeolocation.a; - remoteRef = 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTImage.a; - remoteRef = 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTNetwork.a; - remoteRef = 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTVibration.a; - remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTSettings.a; - remoteRef = 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTWebSocket.a; - remoteRef = 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 146834041AC3E56700842450 /* libReact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libReact.a; - remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTImage-tvOS.a"; - remoteRef = 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTLinking-tvOS.a"; - remoteRef = 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTNetwork-tvOS.a"; - remoteRef = 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTSettings-tvOS.a"; - remoteRef = 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTText-tvOS.a"; - remoteRef = 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTWebSocket-tvOS.a"; - remoteRef = 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA31DF850E9000B6D8A /* libReact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libReact.a; - remoteRef = 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA51DF850E9000B6D8A /* libyoga.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libyoga.a; - remoteRef = 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA71DF850E9000B6D8A /* libyoga.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libyoga.a; - remoteRef = 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libcxxreact.a; - remoteRef = 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libcxxreact.a; - remoteRef = 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjschelpers.a; - remoteRef = 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjschelpers.a; - remoteRef = 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTAnimation.a; - remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTAnimation.a; - remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTLinking.a; - remoteRef = 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 832341B51AAA6A8300B99B32 /* libRCTText.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTText.a; - remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 8C2A0F791E25608300E31596 /* libRCTVideo.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTVideo.a; - remoteRef = 8C2A0F781E25608300E31596 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D1107C542111145500073188 /* libRCTVideo.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTVideo.a; - remoteRef = D1107C532111145500073188 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D1107C5A2111145500073188 /* libfishhook.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libfishhook.a; - remoteRef = D1107C592111145500073188 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D1107C5C2111145500073188 /* libfishhook-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libfishhook-tvOS.a"; - remoteRef = D1107C5B2111145500073188 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D1107C6E2111145500073188 /* libjsinspector.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjsinspector.a; - remoteRef = D1107C6D2111145500073188 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D1107C702111145500073188 /* libjsinspector-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libjsinspector-tvOS.a"; - remoteRef = D1107C6F2111145500073188 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D1107C722111145500073188 /* libthird-party.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libthird-party.a"; - remoteRef = D1107C712111145500073188 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D1107C742111145500073188 /* libthird-party.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libthird-party.a"; - remoteRef = D1107C732111145500073188 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D1107C762111145500073188 /* libdouble-conversion.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libdouble-conversion.a"; - remoteRef = D1107C752111145500073188 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D1107C782111145500073188 /* libdouble-conversion.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libdouble-conversion.a"; - remoteRef = D1107C772111145500073188 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D1107C7A2111145500073188 /* libprivatedata.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libprivatedata.a; - remoteRef = D1107C792111145500073188 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D1107C7C2111145500073188 /* libprivatedata-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libprivatedata-tvOS.a"; - remoteRef = D1107C7B2111145500073188 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 13B07F8E1A680F5B00A75B9A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, - 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FA8681C7216D5C6D0010C92A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FA8681C8216D5C6D0010C92A /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Bundle React Native code and images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; - }; - FA8681CA216D5C6D0010C92A /* Bundle React Native code and images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Bundle React Native code and images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 13B07F871A680F5B00A75B9A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, - 13B07FC11A68108700A75B9A /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FA8681B7216D5C6D0010C92A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FA8681B8216D5C6D0010C92A /* AppDelegate.m in Sources */, - FA8681B9216D5C6D0010C92A /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { - isa = PBXVariantGroup; - children = ( - 13B07FB21A68108700A75B9A /* Base */, - ); - name = LaunchScreen.xib; - path = VideoPlayer; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 13B07F941A680F5B00A75B9A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = NO; - HEADER_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = VideoPlayer/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_NAME = VideoPlayer; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 13B07F951A680F5B00A75B9A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CURRENT_PROJECT_VERSION = 1; - HEADER_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = VideoPlayer/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_NAME = VideoPlayer; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; - 83CBBA201A601CBA00E9B192 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 83CBBA211A601CBA00E9B192 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - FA8681CC216D5C6D0010C92A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = NO; - INFOPLIST_FILE = "VideoPlayer-tvOS.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.VideoPlayer-tvOS"; - PRODUCT_NAME = "VideoPlayer-tvOS"; - SDKROOT = appletvos; - SUPPORTED_PLATFORMS = "appletvsimulator appletvos"; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - FA8681CD216D5C6D0010C92A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CURRENT_PROJECT_VERSION = 1; - INFOPLIST_FILE = "VideoPlayer-tvOS.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.VideoPlayer-tvOS"; - PRODUCT_NAME = "VideoPlayer-tvOS"; - SDKROOT = appletvos; - SUPPORTED_PLATFORMS = "appletvsimulator appletvos"; - TARGETED_DEVICE_FAMILY = 3; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "VideoPlayer" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 13B07F941A680F5B00A75B9A /* Debug */, - 13B07F951A680F5B00A75B9A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "VideoPlayer" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 83CBBA201A601CBA00E9B192 /* Debug */, - 83CBBA211A601CBA00E9B192 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - FA8681CB216D5C6D0010C92A /* Build configuration list for PBXNativeTarget "VideoPlayer-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - FA8681CC216D5C6D0010C92A /* Debug */, - FA8681CD216D5C6D0010C92A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; -} diff --git a/examples/embed-and-fullscreen/ios/VideoPlayer.xcodeproj/xcshareddata/xcschemes/VideoPlayer-tvOS.xcscheme b/examples/embed-and-fullscreen/ios/VideoPlayer.xcodeproj/xcshareddata/xcschemes/VideoPlayer-tvOS.xcscheme deleted file mode 100644 index 75b3d2eb..00000000 --- a/examples/embed-and-fullscreen/ios/VideoPlayer.xcodeproj/xcshareddata/xcschemes/VideoPlayer-tvOS.xcscheme +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/embed-and-fullscreen/ios/VideoPlayer.xcodeproj/xcshareddata/xcschemes/VideoPlayer.xcscheme b/examples/embed-and-fullscreen/ios/VideoPlayer.xcodeproj/xcshareddata/xcschemes/VideoPlayer.xcscheme deleted file mode 100644 index 48a64467..00000000 --- a/examples/embed-and-fullscreen/ios/VideoPlayer.xcodeproj/xcshareddata/xcschemes/VideoPlayer.xcscheme +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/embed-and-fullscreen/ios/VideoPlayer/AppDelegate.h b/examples/embed-and-fullscreen/ios/VideoPlayer/AppDelegate.h deleted file mode 100644 index a9654d5e..00000000 --- a/examples/embed-and-fullscreen/ios/VideoPlayer/AppDelegate.h +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import - -@interface AppDelegate : UIResponder - -@property (nonatomic, strong) UIWindow *window; - -@end diff --git a/examples/embed-and-fullscreen/ios/VideoPlayer/AppDelegate.m b/examples/embed-and-fullscreen/ios/VideoPlayer/AppDelegate.m deleted file mode 100644 index 6c27cb41..00000000 --- a/examples/embed-and-fullscreen/ios/VideoPlayer/AppDelegate.m +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import "AppDelegate.h" - -#import -#import - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - NSURL *jsCodeLocation; - - jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; - - RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation - moduleName:@"VideoPlayer" - initialProperties:nil - launchOptions:launchOptions]; - rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; - - self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - UIViewController *rootViewController = [UIViewController new]; - rootViewController.view = rootView; - self.window.rootViewController = rootViewController; - [self.window makeKeyAndVisible]; - return YES; -} - -@end diff --git a/examples/embed-and-fullscreen/ios/VideoPlayer/Base.lproj/LaunchScreen.xib b/examples/embed-and-fullscreen/ios/VideoPlayer/Base.lproj/LaunchScreen.xib deleted file mode 100644 index 9d8b0c89..00000000 --- a/examples/embed-and-fullscreen/ios/VideoPlayer/Base.lproj/LaunchScreen.xib +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/embed-and-fullscreen/ios/VideoPlayer/Info.plist b/examples/embed-and-fullscreen/ios/VideoPlayer/Info.plist deleted file mode 100644 index 2fb6a11c..00000000 --- a/examples/embed-and-fullscreen/ios/VideoPlayer/Info.plist +++ /dev/null @@ -1,54 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - NSLocationWhenInUseUsageDescription - - NSAppTransportSecurity - - - NSExceptionDomains - - localhost - - NSExceptionAllowsInsecureHTTPLoads - - - - - - diff --git a/examples/embed-and-fullscreen/ios/VideoPlayer/main.m b/examples/embed-and-fullscreen/ios/VideoPlayer/main.m deleted file mode 100644 index 3d767fcb..00000000 --- a/examples/embed-and-fullscreen/ios/VideoPlayer/main.m +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import - -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/examples/embed-and-fullscreen/ios/main.jsbundle b/examples/embed-and-fullscreen/ios/main.jsbundle deleted file mode 100644 index 4f50ea33..00000000 --- a/examples/embed-and-fullscreen/ios/main.jsbundle +++ /dev/null @@ -1,5 +0,0 @@ -// Offline JS -// To re-generate the offline bundle, run this from root of your project -// $ curl 'http://localhost:8081/index.ios.bundle?dev=false&minify=true' -o iOS/main.jsbundle - -throw new Error('Offline JS file is empty. See iOS/main.jsbundle for instructions'); diff --git a/examples/embed-and-fullscreen/ios/main.m b/examples/embed-and-fullscreen/ios/main.m deleted file mode 100644 index cb502bc1..00000000 --- a/examples/embed-and-fullscreen/ios/main.m +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import - -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} - diff --git a/examples/embed-and-fullscreen/rn-cli.config.js b/examples/embed-and-fullscreen/rn-cli.config.js deleted file mode 100644 index 1b84294b..00000000 --- a/examples/embed-and-fullscreen/rn-cli.config.js +++ /dev/null @@ -1,7 +0,0 @@ -const blacklist = require('metro').createBlacklist; - -module.exports = { - getBlacklistRE: function() { - return blacklist([/node_modules\/react-native-video\/examples\/.*/]); - } -}; diff --git a/examples/exampletvOS/.bundle/config b/examples/exampletvOS/.bundle/config deleted file mode 100644 index 848943bb..00000000 --- a/examples/exampletvOS/.bundle/config +++ /dev/null @@ -1,2 +0,0 @@ -BUNDLE_PATH: "vendor/bundle" -BUNDLE_FORCE_RUBY_PLATFORM: 1 diff --git a/examples/exampletvOS/.eslintrc.js b/examples/exampletvOS/.eslintrc.js deleted file mode 100644 index 40c6dcd0..00000000 --- a/examples/exampletvOS/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - root: true, - extends: '@react-native-community', -}; diff --git a/examples/exampletvOS/.gitignore b/examples/exampletvOS/.gitignore deleted file mode 100644 index 16f8c307..00000000 --- a/examples/exampletvOS/.gitignore +++ /dev/null @@ -1,63 +0,0 @@ -# OSX -# -.DS_Store - -# Xcode -# -build/ -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata -*.xccheckout -*.moved-aside -DerivedData -*.hmap -*.ipa -*.xcuserstate -ios/.xcode.env.local - -# Android/IntelliJ -# -build/ -.idea -.gradle -local.properties -*.iml -*.hprof -.cxx/ -*.keystore -!debug.keystore - -# node.js -# -node_modules/ -npm-debug.log -yarn-error.log - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the -# screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/ - -**/fastlane/report.xml -**/fastlane/Preview.html -**/fastlane/screenshots -**/fastlane/test_output - -# Bundle artifact -*.jsbundle - -# Ruby / CocoaPods -/ios/Pods/ -/vendor/bundle/ - -# Temporary files created by Metro to check the health of the file watcher -.metro-health-check* diff --git a/examples/exampletvOS/.node-version b/examples/exampletvOS/.node-version deleted file mode 100644 index 3c032078..00000000 --- a/examples/exampletvOS/.node-version +++ /dev/null @@ -1 +0,0 @@ -18 diff --git a/examples/exampletvOS/.prettierrc.js b/examples/exampletvOS/.prettierrc.js deleted file mode 100644 index 2b540746..00000000 --- a/examples/exampletvOS/.prettierrc.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - arrowParens: 'avoid', - bracketSameLine: true, - bracketSpacing: false, - singleQuote: true, - trailingComma: 'all', -}; diff --git a/examples/exampletvOS/.watchmanconfig b/examples/exampletvOS/.watchmanconfig deleted file mode 100644 index 9e26dfee..00000000 --- a/examples/exampletvOS/.watchmanconfig +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/examples/exampletvOS/App.tsx b/examples/exampletvOS/App.tsx deleted file mode 100644 index ea4074b3..00000000 --- a/examples/exampletvOS/App.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import React from 'react'; - -import {ActivityIndicator, StyleSheet} from 'react-native'; - -import Video from 'react-native-video'; - -export default function App() { - return ( - <> - -