Compare commits
	
		
			20 Commits
		
	
	
		
			v4.0.0
			...
			renovate/m
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| ![renovate[bot]](/assets/img/avatar_default.png)  | a953b55d3c | ||
|   | f6198e23f4 | ||
|   | fc888e1210 | ||
|   | c49fb0e142 | ||
|   | fead1627a7 | ||
|   | fc8ad042cf | ||
|   | bce0dd1097 | ||
|   | ab50d4be99 | ||
|   | 8cb4dac5ae | ||
|   | 8331e3bf75 | ||
|   | e2233796f6 | ||
|   | efca2a08f8 | ||
|   | 82d3d7f978 | ||
|   | ea658b8442 | ||
|   | 53559264ff | ||
|   | 24cfa372fe | ||
|   | 31cb10be2e | ||
|   | a43106ac24 | ||
|   | 8201928a45 | ||
|   | f043dd94aa | 
							
								
								
									
										3
									
								
								.yarnrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.yarnrc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | # Override Yarn command so we can automatically setup the repo on running `yarn` | ||||||
|  |  | ||||||
|  | yarn-path "scripts/bootstrap.js" | ||||||
| @@ -15,6 +15,10 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | > ⚠️ `4.0+` 在 iOS 打包中报错,这是因为[使用阿里云产品的 SDK 出现 UTDID 冲突的问题](https://help.aliyun.com/document_detail/39984.html),在 [@EatherToo](https://github.com/EatherToo) 的帮助下([#44](https://github.com/uiwjs/react-native-alipay/pull/44)),UTDID 被剥离了。可以在 `Podfile` 中加上 `pod 'UTDID'` 解决打包失败的问题。感谢 [@abing](https://github.com/ouabing) | ||||||
|  |  | ||||||
|  | > ⚠️ `v5.x` 在 android 需要 `Gradle 7+` ([#61](https://github.com/uiwjs/react-native-alipay/issues/61#issuecomment-1206243613) [#60](https://github.com/uiwjs/react-native-alipay/pull/60)) | ||||||
|  |  | ||||||
| ## 注意事项 | ## 注意事项 | ||||||
|  |  | ||||||
| 1. Android:支持2.3及以上的系统版本运行。 | 1. Android:支持2.3及以上的系统版本运行。 | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ def safeExtGet(prop, fallback) { | |||||||
| } | } | ||||||
|  |  | ||||||
| apply plugin: 'com.android.library' | apply plugin: 'com.android.library' | ||||||
| apply plugin: 'maven' | apply plugin: 'maven-publish' | ||||||
|  |  | ||||||
| buildscript { | buildscript { | ||||||
|     // The Android Gradle plugin is only required when opening the android folder stand-alone. |     // The Android Gradle plugin is only required when opening the android folder stand-alone. | ||||||
| @@ -38,9 +38,6 @@ buildscript { | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| apply plugin: 'com.android.library' |  | ||||||
| apply plugin: 'maven' |  | ||||||
|  |  | ||||||
| android { | android { | ||||||
|     compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION) |     compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION) | ||||||
|     buildToolsVersion safeExtGet('buildToolsVersion', DEFAULT_BUILD_TOOLS_VERSION) |     buildToolsVersion safeExtGet('buildToolsVersion', DEFAULT_BUILD_TOOLS_VERSION) | ||||||
| @@ -75,79 +72,6 @@ dependencies { | |||||||
|     implementation 'com.facebook.react:react-native:+'  // From node_modules |     implementation 'com.facebook.react:react-native:+'  // From node_modules | ||||||
|  |  | ||||||
|     // 支付宝 SDK AAR 包所需的配置 |     // 支付宝 SDK AAR 包所需的配置 | ||||||
|     // implementation (name: 'alipaySdk-15.7.7-20200702160044', ext: 'aar') |     implementation 'com.alipay.sdk:alipaysdk-android:15.8.10@aar' | ||||||
|     implementation fileTree(dir: "libs", include: ["*.aar"]) |     implementation fileTree(dir: "libs", include: ["*.aar"]) | ||||||
| } | } | ||||||
|  |  | ||||||
| def configureReactNativePom(def pom) { |  | ||||||
|     def packageJson = new groovy.json.JsonSlurper().parseText(file('../package.json').text) |  | ||||||
|  |  | ||||||
|     pom.project { |  | ||||||
|         name packageJson.title |  | ||||||
|         artifactId packageJson.name |  | ||||||
|         version = packageJson.version |  | ||||||
|         group = "com.uiwjs.alipay" |  | ||||||
|         description packageJson.description |  | ||||||
|         url packageJson.repository.baseUrl |  | ||||||
|  |  | ||||||
|         licenses { |  | ||||||
|             license { |  | ||||||
|                 name packageJson.license |  | ||||||
|                 url packageJson.repository.baseUrl + '/blob/master/' + packageJson.licenseFilename |  | ||||||
|                 distribution 'repo' |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         developers { |  | ||||||
|             developer { |  | ||||||
|                 id packageJson.author.username |  | ||||||
|                 name packageJson.author.name |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| afterEvaluate { project -> |  | ||||||
|     // some Gradle build hooks ref: |  | ||||||
|     // https://www.oreilly.com/library/view/gradle-beyond-the/9781449373801/ch03.html |  | ||||||
|     task androidJavadoc(type: Javadoc) { |  | ||||||
|         source = android.sourceSets.main.java.srcDirs |  | ||||||
|         classpath += files(android.bootClasspath) |  | ||||||
|         classpath += files(project.getConfigurations().getByName('compile').asList()) |  | ||||||
|         include '**/*.java' |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     task androidJavadocJar(type: Jar, dependsOn: androidJavadoc) { |  | ||||||
|         classifier = 'javadoc' |  | ||||||
|         from androidJavadoc.destinationDir |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     task androidSourcesJar(type: Jar) { |  | ||||||
|         classifier = 'sources' |  | ||||||
|         from android.sourceSets.main.java.srcDirs |  | ||||||
|         include '**/*.java' |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     android.libraryVariants.all { variant -> |  | ||||||
|         def name = variant.name.capitalize() |  | ||||||
|         def javaCompileTask = variant.javaCompileProvider.get() |  | ||||||
|  |  | ||||||
|         task "jar${name}"(type: Jar, dependsOn: javaCompileTask) { |  | ||||||
|             from javaCompileTask.destinationDir |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     artifacts { |  | ||||||
|         archives androidSourcesJar |  | ||||||
|         archives androidJavadocJar |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     task installArchives(type: Upload) { |  | ||||||
|         configuration = configurations.archives |  | ||||||
|         repositories.mavenDeployer { |  | ||||||
|             // Deploy to react-native-event-bridge/maven, ready to publish to npm |  | ||||||
|             repository url: "file://${projectDir}/../android/maven" |  | ||||||
|             configureReactNativePom pom |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| } |  | ||||||
|   | |||||||
										
											Binary file not shown.
										
									
								
							| @@ -11,6 +11,8 @@ node_modules/react-native/Libraries/polyfills/.* | |||||||
| ; Flow doesn't support platforms | ; Flow doesn't support platforms | ||||||
| .*/Libraries/Utilities/LoadingView.js | .*/Libraries/Utilities/LoadingView.js | ||||||
|  |  | ||||||
|  | .*/node_modules/resolve/test/resolver/malformed_package_json/package\.json$ | ||||||
|  |  | ||||||
| [untyped] | [untyped] | ||||||
| .*/node_modules/@react-native-community/cli/.*/.* | .*/node_modules/@react-native-community/cli/.*/.* | ||||||
|  |  | ||||||
| @@ -23,11 +25,10 @@ node_modules/react-native/flow/ | |||||||
| [options] | [options] | ||||||
| emoji=true | emoji=true | ||||||
|  |  | ||||||
| esproposal.optional_chaining=enable |  | ||||||
| esproposal.nullish_coalescing=enable |  | ||||||
|  |  | ||||||
| exact_by_default=true | exact_by_default=true | ||||||
|  |  | ||||||
|  | format.bracket_spacing=false | ||||||
|  |  | ||||||
| module.file_ext=.js | module.file_ext=.js | ||||||
| module.file_ext=.json | module.file_ext=.json | ||||||
| module.file_ext=.ios.js | module.file_ext=.ios.js | ||||||
| @@ -51,7 +52,6 @@ nonstrict-import=warn | |||||||
| deprecated-type=warn | deprecated-type=warn | ||||||
| unsafe-getters-setters=warn | unsafe-getters-setters=warn | ||||||
| unnecessary-invariant=warn | unnecessary-invariant=warn | ||||||
| signature-verification-failure=warn |  | ||||||
|  |  | ||||||
| [strict] | [strict] | ||||||
| deprecated-type | deprecated-type | ||||||
| @@ -63,4 +63,4 @@ untyped-import | |||||||
| untyped-type-import | untyped-type-import | ||||||
|  |  | ||||||
| [version] | [version] | ||||||
| ^0.137.0 | ^0.176.3 | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								example/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								example/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -20,6 +20,7 @@ DerivedData | |||||||
| *.hmap | *.hmap | ||||||
| *.ipa | *.ipa | ||||||
| *.xcuserstate | *.xcuserstate | ||||||
|  | ios/.xcode.env.local | ||||||
|  |  | ||||||
| # Android/IntelliJ | # Android/IntelliJ | ||||||
| # | # | ||||||
| @@ -28,6 +29,7 @@ build/ | |||||||
| .gradle | .gradle | ||||||
| local.properties | local.properties | ||||||
| *.iml | *.iml | ||||||
|  | *.hprof | ||||||
|  |  | ||||||
| # node.js | # node.js | ||||||
| # | # | ||||||
| @@ -48,12 +50,14 @@ buck-out/ | |||||||
| # For more information about the recommended setup visit: | # For more information about the recommended setup visit: | ||||||
| # https://docs.fastlane.tools/best-practices/source-control/ | # https://docs.fastlane.tools/best-practices/source-control/ | ||||||
|  |  | ||||||
| */fastlane/report.xml | **/fastlane/report.xml | ||||||
| */fastlane/Preview.html | **/fastlane/Preview.html | ||||||
| */fastlane/screenshots | **/fastlane/screenshots | ||||||
|  | **/fastlane/test_output | ||||||
|  |  | ||||||
| # Bundle artifact | # Bundle artifact | ||||||
| *.jsbundle | *.jsbundle | ||||||
|  |  | ||||||
| # CocoaPods | # Ruby / CocoaPods | ||||||
| /ios/Pods/ | /ios/Pods/ | ||||||
|  | /vendor/bundle/ | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| module.exports = { | module.exports = { | ||||||
|  |   arrowParens: 'avoid', | ||||||
|  |   bracketSameLine: true, | ||||||
|   bracketSpacing: false, |   bracketSpacing: false, | ||||||
|   jsxBracketSameLine: true, |  | ||||||
|   singleQuote: true, |   singleQuote: true, | ||||||
|   trailingComma: 'all', |   trailingComma: 'all', | ||||||
|   arrowParens: 'avoid', |  | ||||||
| }; | }; | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								example/.ruby-version
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								example/.ruby-version
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | 2.7.4 | ||||||
| @@ -1,5 +1,5 @@ | |||||||
| import React, { Component } from 'react'; | import React, {Component} from 'react'; | ||||||
| import { StyleSheet, Button, Text, View, Linking, AppState } from 'react-native'; | import {StyleSheet, Button, Text, View} from 'react-native'; | ||||||
| import Alipay from '@uiw/react-native-alipay'; | import Alipay from '@uiw/react-native-alipay'; | ||||||
|  |  | ||||||
| export default class App extends Component { | export default class App extends Component { | ||||||
| @@ -7,7 +7,7 @@ export default class App extends Component { | |||||||
|     super(props); |     super(props); | ||||||
|     this.state = { |     this.state = { | ||||||
|       version: '', |       version: '', | ||||||
|     } |     }; | ||||||
|   } |   } | ||||||
|   componentDidMount() { |   componentDidMount() { | ||||||
|     Alipay.setAlipayScheme('uiwjspay'); |     Alipay.setAlipayScheme('uiwjspay'); | ||||||
| @@ -15,32 +15,34 @@ export default class App extends Component { | |||||||
|   aliPay = async () => { |   aliPay = async () => { | ||||||
|     try { |     try { | ||||||
|       // return_url= |       // return_url= | ||||||
|       const payInfo = 'alipay_sdk=alipay-sdk-java-dynamicVersionNo&app_id=2021001172656340&biz_content=%7B%22out_trade_no%22%3A%221111112222222%22%2C%22total_amount%22%3A%220.01%22%2C%22subject%22%3A%221234%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%7D&charset=UTF-8&format=json&method=alipay.trade.app.pay¬ify_url=http%3A%2F%2Fane.boshu.ltd%2Fowner%2Fpay%2Fapi%2FownerPay%2Fcallback&sign=oUQmGtkv8mrhJ0YwHl9%2FfxMcoLACWuSFKiMTC4Id8nc%2FZVvDQ6MLQq5hhtEN03Qn1%2BAtzTAaofE8nNixdroxOek2l5YtOAcYcXVYlJIyogN%2B22erN2NpDTWJ7tQTKgYFDJLRiG0DZJaxfADhUUF6UR9kdA8omoXKLDlP17ZPUs5Jr4aKv5HJtH5C53ui7PbmyWYg934L4UDC2F%2F9pPQlRwwDeE1SAaV3HW9Dt83kK52o8%2FlChXdotbFdAvH0d4qYGhpEYU5sepj9xiOMyL9aC4pMXW9INYLLGbvtqtlRchZTAfH5yji6nqqQm9KKMmcVrWdBDLyjFVNpejq1UjbJBw%3D%3D&sign_type=RSA2×tamp=2020-07-09+12%3A16%3A16&version=1.0'; |       const payInfo = | ||||||
|  |         'alipay_sdk=alipay-sdk-java-dynamicVersionNo&app_id=2021001172656340&biz_content=%7B%22out_trade_no%22%3A%221111112222222%22%2C%22total_amount%22%3A%220.01%22%2C%22subject%22%3A%221234%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%7D&charset=UTF-8&format=json&method=alipay.trade.app.pay¬ify_url=http%3A%2F%2Fane.boshu.ltd%2Fowner%2Fpay%2Fapi%2FownerPay%2Fcallback&sign=oUQmGtkv8mrhJ0YwHl9%2FfxMcoLACWuSFKiMTC4Id8nc%2FZVvDQ6MLQq5hhtEN03Qn1%2BAtzTAaofE8nNixdroxOek2l5YtOAcYcXVYlJIyogN%2B22erN2NpDTWJ7tQTKgYFDJLRiG0DZJaxfADhUUF6UR9kdA8omoXKLDlP17ZPUs5Jr4aKv5HJtH5C53ui7PbmyWYg934L4UDC2F%2F9pPQlRwwDeE1SAaV3HW9Dt83kK52o8%2FlChXdotbFdAvH0d4qYGhpEYU5sepj9xiOMyL9aC4pMXW9INYLLGbvtqtlRchZTAfH5yji6nqqQm9KKMmcVrWdBDLyjFVNpejq1UjbJBw%3D%3D&sign_type=RSA2×tamp=2020-07-09+12%3A16%3A16&version=1.0'; | ||||||
|       const resule = await Alipay.alipay(payInfo); |       const resule = await Alipay.alipay(payInfo); | ||||||
|       console.log('alipay:resule-->>>', resule); |       console.log('alipay:resule-->>>', resule); | ||||||
|     } catch (error) { |     } catch (error) { | ||||||
|       console.log('alipay:error-->>>', error); |       console.log('alipay:error-->>>', error); | ||||||
|     } |     } | ||||||
|   } |   }; | ||||||
|   authInfo = async () => { |   authInfo = async () => { | ||||||
|     try { |     try { | ||||||
|       const authInfoStr = 'app_name=mc&auth_type=AUTHACCOUNT&apiname=com.alipay.account.auth&biz_type=openservice&product_id=APP_FAST_LOGIN&scope=kuaijie&pid=2088421915791034&target_id=15946456110003465&app_id=2021001172656340&sign_type=RSA2&sign=keluG28qbbLwAcSDI4VmCNOGHJoF3xgpVeqXu1nCBCYo%2FlYYGe00fTfV9L4G73Sk7%2B4IwK%2BZV8IL%2F04cVtk6SR74lKAR3rYOoUdQ09ZrZFuQoUkO0vekajhp75IDQIg6PedCyY0SjFTqrHlH%2FImscBwitxrlSc9YbN7uW0gY34K8t7v8NhDoqzKJeoIz43UxF5U1DpUA1ISBVxwO7du1t6rYltsRhReayPS3hnvmwYSKQZUEgBvJ%2BT2XdyCaz%2FdGV907lYagPp1Oxkoaj%2FvW5NjNsRnid7vH944CoFj9XtBK%2FNTk2tBPTHFxYRQTEG1PkgkBohGpAWOFGGOuapH0ag%3D%3D'; |       const authInfoStr = | ||||||
|  |         'app_name=mc&auth_type=AUTHACCOUNT&apiname=com.alipay.account.auth&biz_type=openservice&product_id=APP_FAST_LOGIN&scope=kuaijie&pid=2088421915791034&target_id=15946456110003465&app_id=2021001172656340&sign_type=RSA2&sign=keluG28qbbLwAcSDI4VmCNOGHJoF3xgpVeqXu1nCBCYo%2FlYYGe00fTfV9L4G73Sk7%2B4IwK%2BZV8IL%2F04cVtk6SR74lKAR3rYOoUdQ09ZrZFuQoUkO0vekajhp75IDQIg6PedCyY0SjFTqrHlH%2FImscBwitxrlSc9YbN7uW0gY34K8t7v8NhDoqzKJeoIz43UxF5U1DpUA1ISBVxwO7du1t6rYltsRhReayPS3hnvmwYSKQZUEgBvJ%2BT2XdyCaz%2FdGV907lYagPp1Oxkoaj%2FvW5NjNsRnid7vH944CoFj9XtBK%2FNTk2tBPTHFxYRQTEG1PkgkBohGpAWOFGGOuapH0ag%3D%3D'; | ||||||
|       const resule = await Alipay.authInfo(authInfoStr); |       const resule = await Alipay.authInfo(authInfoStr); | ||||||
|       // resule => success=true&auth_code=9c11732de44f4f1790b63978b6fbOX53&result_code=200&alipay_open_id=20881001757376426161095132517425&user_id=2088003646494707 |       // resule => success=true&auth_code=9c11732de44f4f1790b63978b6fbOX53&result_code=200&alipay_open_id=20881001757376426161095132517425&user_id=2088003646494707 | ||||||
|       console.log('authInfo:resule-->>>', resule); |       console.log('authInfo:resule-->>>', resule); | ||||||
|     } catch (error) { |     } catch (error) { | ||||||
|       console.log('authInfo:error-->>>', error); |       console.log('authInfo:error-->>>', error); | ||||||
|     } |     } | ||||||
|   } |   }; | ||||||
|   getVersion = async () => { |   getVersion = async () => { | ||||||
|     try { |     try { | ||||||
|       const version = await Alipay.getVersion(); |       const version = await Alipay.getVersion(); | ||||||
|       this.setState({ version }); |       this.setState({version}); | ||||||
|       console.log('getVersion:', version); |       console.log('getVersion:', version); | ||||||
|     } catch (error) { |     } catch (error) { | ||||||
|       console.log('getVersion:error-->>>', error); |       console.log('getVersion:error-->>>', error); | ||||||
|     } |     } | ||||||
|   } |   }; | ||||||
|   render() { |   render() { | ||||||
|     return ( |     return ( | ||||||
|       <View style={styles.container}> |       <View style={styles.container}> | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								example/Gemfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								example/Gemfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | source 'https://rubygems.org' | ||||||
|  |  | ||||||
|  | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version | ||||||
|  | ruby '2.7.4' | ||||||
|  |  | ||||||
|  | gem 'cocoapods', '~> 1.11', '>= 1.11.2' | ||||||
| @@ -114,19 +114,24 @@ def jscFlavor = 'org.webkit:android-jsc:+' | |||||||
| /** | /** | ||||||
|  * Whether to enable the Hermes VM. |  * Whether to enable the Hermes VM. | ||||||
|  * |  * | ||||||
|  * This should be set on project.ext.react and mirrored here.  If it is not set |  * This should be set on project.ext.react and that value will be read here. If it is not set | ||||||
|  * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode |  * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode | ||||||
|  * and the benefits of using Hermes will therefore be sharply reduced. |  * and the benefits of using Hermes will therefore be sharply reduced. | ||||||
|  */ |  */ | ||||||
| def enableHermes = project.ext.react.get("enableHermes", false); | def enableHermes = project.ext.react.get("enableHermes", false); | ||||||
|  |  | ||||||
| android { | /** | ||||||
|     compileSdkVersion rootProject.ext.compileSdkVersion |  * Architectures to build native code for. | ||||||
|  |  */ | ||||||
|  | def reactNativeArchitectures() { | ||||||
|  |     def value = project.getProperties().get("reactNativeArchitectures") | ||||||
|  |     return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] | ||||||
|  | } | ||||||
|  |  | ||||||
|     compileOptions { | android { | ||||||
|         sourceCompatibility JavaVersion.VERSION_1_8 |     ndkVersion rootProject.ext.ndkVersion | ||||||
|         targetCompatibility JavaVersion.VERSION_1_8 |  | ||||||
|     } |     compileSdkVersion rootProject.ext.compileSdkVersion | ||||||
|  |  | ||||||
|     defaultConfig { |     defaultConfig { | ||||||
|         applicationId "com.uiwjs.example.alipay" |         applicationId "com.uiwjs.example.alipay" | ||||||
| @@ -134,13 +139,82 @@ android { | |||||||
|         targetSdkVersion rootProject.ext.targetSdkVersion |         targetSdkVersion rootProject.ext.targetSdkVersion | ||||||
|         versionCode 1 |         versionCode 1 | ||||||
|         versionName "1.0" |         versionName "1.0" | ||||||
|  |         buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() | ||||||
|  |  | ||||||
|  |         if (isNewArchitectureEnabled()) { | ||||||
|  |             // We configure the NDK build only if you decide to opt-in for the New Architecture. | ||||||
|  |             externalNativeBuild { | ||||||
|  |                 ndkBuild { | ||||||
|  |                     arguments "APP_PLATFORM=android-21", | ||||||
|  |                         "APP_STL=c++_shared", | ||||||
|  |                         "NDK_TOOLCHAIN_VERSION=clang", | ||||||
|  |                         "GENERATED_SRC_DIR=$buildDir/generated/source", | ||||||
|  |                         "PROJECT_BUILD_DIR=$buildDir", | ||||||
|  |                         "REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid", | ||||||
|  |                         "REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build", | ||||||
|  |                         "NODE_MODULES_DIR=$rootDir/../node_modules" | ||||||
|  |                     cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1" | ||||||
|  |                     cppFlags "-std=c++17" | ||||||
|  |                     // Make sure this target name is the same you specify inside the | ||||||
|  |                     // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable. | ||||||
|  |                     targets "example_appmodules" | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             if (!enableSeparateBuildPerCPUArchitecture) { | ||||||
|  |                 ndk { | ||||||
|  |                     abiFilters (*reactNativeArchitectures()) | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     if (isNewArchitectureEnabled()) { | ||||||
|  |         // We configure the NDK build only if you decide to opt-in for the New Architecture. | ||||||
|  |         externalNativeBuild { | ||||||
|  |             ndkBuild { | ||||||
|  |                 path "$projectDir/src/main/jni/Android.mk" | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         def reactAndroidProjectDir = project(':ReactAndroid').projectDir | ||||||
|  |         def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) { | ||||||
|  |             dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck") | ||||||
|  |             from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") | ||||||
|  |             into("$buildDir/react-ndk/exported") | ||||||
|  |         } | ||||||
|  |         def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) { | ||||||
|  |             dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck") | ||||||
|  |             from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib") | ||||||
|  |             into("$buildDir/react-ndk/exported") | ||||||
|  |         } | ||||||
|  |         afterEvaluate { | ||||||
|  |             // If you wish to add a custom TurboModule or component locally, | ||||||
|  |             // you should uncomment this line. | ||||||
|  |             // preBuild.dependsOn("generateCodegenArtifactsFromSchema") | ||||||
|  |             preDebugBuild.dependsOn(packageReactNdkDebugLibs) | ||||||
|  |             preReleaseBuild.dependsOn(packageReactNdkReleaseLibs) | ||||||
|  |  | ||||||
|  |             // Due to a bug inside AGP, we have to explicitly set a dependency | ||||||
|  |             // between configureNdkBuild* tasks and the preBuild tasks. | ||||||
|  |             // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732 | ||||||
|  |             configureNdkBuildRelease.dependsOn(preReleaseBuild) | ||||||
|  |             configureNdkBuildDebug.dependsOn(preDebugBuild) | ||||||
|  |             reactNativeArchitectures().each { architecture -> | ||||||
|  |                 tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure { | ||||||
|  |                     dependsOn("preDebugBuild") | ||||||
|  |                 } | ||||||
|  |                 tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure { | ||||||
|  |                     dependsOn("preReleaseBuild") | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|     splits { |     splits { | ||||||
|         abi { |         abi { | ||||||
|             reset() |             reset() | ||||||
|             enable enableSeparateBuildPerCPUArchitecture |             enable enableSeparateBuildPerCPUArchitecture | ||||||
|             universalApk false  // If true, also generate a universal APK |             universalApk false  // If true, also generate a universal APK | ||||||
|             include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" |             include (*reactNativeArchitectures()) | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     signingConfigs { |     signingConfigs { | ||||||
| @@ -169,6 +243,7 @@ android { | |||||||
|         variant.outputs.each { output -> |         variant.outputs.each { output -> | ||||||
|             // For each separate APK per architecture, set a unique version code as described here: |             // For each separate APK per architecture, set a unique version code as described here: | ||||||
|             // https://developer.android.com/studio/build/configure-apk-splits.html |             // https://developer.android.com/studio/build/configure-apk-splits.html | ||||||
|  |             // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc. | ||||||
|             def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] |             def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] | ||||||
|             def abi = output.getFilter(OutputFile.ABI) |             def abi = output.getFilter(OutputFile.ABI) | ||||||
|             if (abi != null) {  // null for the universal-debug, universal-release variants |             if (abi != null) {  // null for the universal-debug, universal-release variants | ||||||
| @@ -182,13 +257,14 @@ android { | |||||||
|  |  | ||||||
| dependencies { | dependencies { | ||||||
|     implementation fileTree(dir: "libs", include: ["*.jar"]) |     implementation fileTree(dir: "libs", include: ["*.jar"]) | ||||||
|  |  | ||||||
|     //noinspection GradleDynamicVersion |     //noinspection GradleDynamicVersion | ||||||
|     implementation "com.facebook.react:react-native:+"  // From node_modules |     implementation "com.facebook.react:react-native:+"  // From node_modules | ||||||
|  |  | ||||||
|     implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" |     implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" | ||||||
|  |  | ||||||
|     debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { |     debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { | ||||||
|       exclude group:'com.facebook.fbjni' |         exclude group:'com.facebook.fbjni' | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { |     debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { | ||||||
| @@ -201,19 +277,44 @@ dependencies { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     if (enableHermes) { |     if (enableHermes) { | ||||||
|         def hermesPath = "../../node_modules/hermes-engine/android/"; |         //noinspection GradleDynamicVersion | ||||||
|         debugImplementation files(hermesPath + "hermes-debug.aar") |         implementation("com.facebook.react:hermes-engine:+") { // From node_modules | ||||||
|         releaseImplementation files(hermesPath + "hermes-release.aar") |             exclude group:'com.facebook.fbjni' | ||||||
|  |         } | ||||||
|     } else { |     } else { | ||||||
|         implementation jscFlavor |         implementation jscFlavor | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | if (isNewArchitectureEnabled()) { | ||||||
|  |     // If new architecture is enabled, we let you build RN from source | ||||||
|  |     // Otherwise we fallback to a prebuilt .aar bundled in the NPM package. | ||||||
|  |     // This will be applied to all the imported transtitive dependency. | ||||||
|  |     configurations.all { | ||||||
|  |         resolutionStrategy.dependencySubstitution { | ||||||
|  |             substitute(module("com.facebook.react:react-native")) | ||||||
|  |                     .using(project(":ReactAndroid")) | ||||||
|  |                     .because("On New Architecture we're building React Native from source") | ||||||
|  |             substitute(module("com.facebook.react:hermes-engine")) | ||||||
|  |                     .using(project(":ReactAndroid:hermes-engine")) | ||||||
|  |                     .because("On New Architecture we're building Hermes from source") | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
| // Run this once to be able to run the application with BUCK | // Run this once to be able to run the application with BUCK | ||||||
| // puts all compile dependencies into folder libs for BUCK to use | // puts all compile dependencies into folder libs for BUCK to use | ||||||
| task copyDownloadableDepsToLibs(type: Copy) { | task copyDownloadableDepsToLibs(type: Copy) { | ||||||
|     from configurations.compile |     from configurations.implementation | ||||||
|     into 'libs' |     into 'libs' | ||||||
| } | } | ||||||
|  |  | ||||||
| apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) | apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) | ||||||
|  |  | ||||||
|  | def isNewArchitectureEnabled() { | ||||||
|  |     // To opt-in for the New Architecture, you can either: | ||||||
|  |     // - Set `newArchEnabled` to true inside the `gradle.properties` file | ||||||
|  |     // - Invoke gradle with `-newArchEnabled=true` | ||||||
|  |     // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true` | ||||||
|  |     return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true" | ||||||
|  | } | ||||||
|   | |||||||
| @@ -8,6 +8,6 @@ | |||||||
|         android:usesCleartextTraffic="true" |         android:usesCleartextTraffic="true" | ||||||
|         tools:targetApi="28" |         tools:targetApi="28" | ||||||
|         tools:ignore="GoogleAppIndexingWarning"> |         tools:ignore="GoogleAppIndexingWarning"> | ||||||
|         <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> |         <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" android:exported="false" /> | ||||||
|     </application> |     </application> | ||||||
| </manifest> | </manifest> | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| /** | /** | ||||||
|  * Copyright (c) Facebook, Inc. and its affiliates. |  * Copyright (c) Meta Platforms, Inc. and affiliates. | ||||||
|  * |  * | ||||||
|  * <p>This source code is licensed under the MIT license found in the LICENSE file in the root |  * <p>This source code is licensed under the MIT license found in the LICENSE file in the root | ||||||
|  * directory of this source tree. |  * directory of this source tree. | ||||||
| @@ -19,6 +19,7 @@ import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; | |||||||
| import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; | import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; | ||||||
| import com.facebook.flipper.plugins.react.ReactFlipperPlugin; | import com.facebook.flipper.plugins.react.ReactFlipperPlugin; | ||||||
| import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; | import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; | ||||||
|  | import com.facebook.react.ReactInstanceEventListener; | ||||||
| import com.facebook.react.ReactInstanceManager; | import com.facebook.react.ReactInstanceManager; | ||||||
| import com.facebook.react.bridge.ReactContext; | import com.facebook.react.bridge.ReactContext; | ||||||
| import com.facebook.react.modules.network.NetworkingModule; | import com.facebook.react.modules.network.NetworkingModule; | ||||||
| @@ -51,7 +52,7 @@ public class ReactNativeFlipper { | |||||||
|       ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); |       ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); | ||||||
|       if (reactContext == null) { |       if (reactContext == null) { | ||||||
|         reactInstanceManager.addReactInstanceEventListener( |         reactInstanceManager.addReactInstanceEventListener( | ||||||
|             new ReactInstanceManager.ReactInstanceEventListener() { |             new ReactInstanceEventListener() { | ||||||
|               @Override |               @Override | ||||||
|               public void onReactContextInitialized(ReactContext reactContext) { |               public void onReactContextInitialized(ReactContext reactContext) { | ||||||
|                 reactInstanceManager.removeReactInstanceEventListener(this); |                 reactInstanceManager.removeReactInstanceEventListener(this); | ||||||
|   | |||||||
| @@ -13,9 +13,10 @@ | |||||||
|       <activity |       <activity | ||||||
|         android:name=".MainActivity" |         android:name=".MainActivity" | ||||||
|         android:label="@string/app_name" |         android:label="@string/app_name" | ||||||
|         android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" |         android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" | ||||||
|         android:launchMode="singleTask" |         android:launchMode="singleTask" | ||||||
|         android:windowSoftInputMode="adjustResize"> |         android:windowSoftInputMode="adjustResize" | ||||||
|  |         android:exported="true"> | ||||||
|         <intent-filter> |         <intent-filter> | ||||||
|             <action android:name="android.intent.action.MAIN" /> |             <action android:name="android.intent.action.MAIN" /> | ||||||
|             <category android:name="android.intent.category.LAUNCHER" /> |             <category android:name="android.intent.category.LAUNCHER" /> | ||||||
|   | |||||||
| @@ -1,6 +1,8 @@ | |||||||
| package com.uiwjs.example.alipay; | package com.uiwjs.example.alipay; | ||||||
|  |  | ||||||
| import com.facebook.react.ReactActivity; | import com.facebook.react.ReactActivity; | ||||||
|  | import com.facebook.react.ReactActivityDelegate; | ||||||
|  | import com.facebook.react.ReactRootView; | ||||||
|  |  | ||||||
| public class MainActivity extends ReactActivity { | public class MainActivity extends ReactActivity { | ||||||
|  |  | ||||||
| @@ -12,4 +14,35 @@ public class MainActivity extends ReactActivity { | |||||||
|   protected String getMainComponentName() { |   protected String getMainComponentName() { | ||||||
|     return "example"; |     return "example"; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and | ||||||
|  |    * you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer | ||||||
|  |    * (Paper). | ||||||
|  |    */ | ||||||
|  |   @Override | ||||||
|  |   protected ReactActivityDelegate createReactActivityDelegate() { | ||||||
|  |     return new MainActivityDelegate(this, getMainComponentName()); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   public static class MainActivityDelegate extends ReactActivityDelegate { | ||||||
|  |     public MainActivityDelegate(ReactActivity activity, String mainComponentName) { | ||||||
|  |       super(activity, mainComponentName); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     protected ReactRootView createRootView() { | ||||||
|  |       ReactRootView reactRootView = new ReactRootView(getContext()); | ||||||
|  |       // If you opted-in for the New Architecture, we enable the Fabric Renderer. | ||||||
|  |       reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED); | ||||||
|  |       return reactRootView; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     protected boolean isConcurrentRootEnabled() { | ||||||
|  |       // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18). | ||||||
|  |       // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html | ||||||
|  |       return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; | ||||||
|  |     } | ||||||
|  |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -7,7 +7,9 @@ import com.facebook.react.ReactApplication; | |||||||
| import com.facebook.react.ReactInstanceManager; | import com.facebook.react.ReactInstanceManager; | ||||||
| import com.facebook.react.ReactNativeHost; | import com.facebook.react.ReactNativeHost; | ||||||
| import com.facebook.react.ReactPackage; | import com.facebook.react.ReactPackage; | ||||||
|  | import com.facebook.react.config.ReactFeatureFlags; | ||||||
| import com.facebook.soloader.SoLoader; | import com.facebook.soloader.SoLoader; | ||||||
|  | import com.uiwjs.example.alipay.newarchitecture.MainApplicationReactNativeHost; | ||||||
| import java.lang.reflect.InvocationTargetException; | import java.lang.reflect.InvocationTargetException; | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  |  | ||||||
| @@ -35,14 +37,23 @@ public class MainApplication extends Application implements ReactApplication { | |||||||
|         } |         } | ||||||
|       }; |       }; | ||||||
|  |  | ||||||
|  |   private final ReactNativeHost mNewArchitectureNativeHost = | ||||||
|  |       new MainApplicationReactNativeHost(this); | ||||||
|  |  | ||||||
|   @Override |   @Override | ||||||
|   public ReactNativeHost getReactNativeHost() { |   public ReactNativeHost getReactNativeHost() { | ||||||
|     return mReactNativeHost; |     if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { | ||||||
|  |       return mNewArchitectureNativeHost; | ||||||
|  |     } else { | ||||||
|  |       return mReactNativeHost; | ||||||
|  |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   @Override |   @Override | ||||||
|   public void onCreate() { |   public void onCreate() { | ||||||
|     super.onCreate(); |     super.onCreate(); | ||||||
|  |     // If you opted-in for the New Architecture, we enable the TurboModule system | ||||||
|  |     ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; | ||||||
|     SoLoader.init(this, /* native exopackage */ false); |     SoLoader.init(this, /* native exopackage */ false); | ||||||
|     initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); |     initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -0,0 +1,116 @@ | |||||||
|  | package com.uiwjs.example.alipay.newarchitecture; | ||||||
|  |  | ||||||
|  | import android.app.Application; | ||||||
|  | import androidx.annotation.NonNull; | ||||||
|  | import com.facebook.react.PackageList; | ||||||
|  | import com.facebook.react.ReactInstanceManager; | ||||||
|  | import com.facebook.react.ReactNativeHost; | ||||||
|  | import com.facebook.react.ReactPackage; | ||||||
|  | import com.facebook.react.ReactPackageTurboModuleManagerDelegate; | ||||||
|  | import com.facebook.react.bridge.JSIModulePackage; | ||||||
|  | import com.facebook.react.bridge.JSIModuleProvider; | ||||||
|  | import com.facebook.react.bridge.JSIModuleSpec; | ||||||
|  | import com.facebook.react.bridge.JSIModuleType; | ||||||
|  | import com.facebook.react.bridge.JavaScriptContextHolder; | ||||||
|  | import com.facebook.react.bridge.ReactApplicationContext; | ||||||
|  | import com.facebook.react.bridge.UIManager; | ||||||
|  | import com.facebook.react.fabric.ComponentFactory; | ||||||
|  | import com.facebook.react.fabric.CoreComponentsRegistry; | ||||||
|  | import com.facebook.react.fabric.FabricJSIModuleProvider; | ||||||
|  | import com.facebook.react.fabric.ReactNativeConfig; | ||||||
|  | import com.facebook.react.uimanager.ViewManagerRegistry; | ||||||
|  | import com.uiwjs.example.alipay.BuildConfig; | ||||||
|  | import com.uiwjs.example.alipay.newarchitecture.components.MainComponentsRegistry; | ||||||
|  | import com.uiwjs.example.alipay.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate; | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both | ||||||
|  |  * TurboModule delegates and the Fabric Renderer. | ||||||
|  |  * | ||||||
|  |  * <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the | ||||||
|  |  * `newArchEnabled` property). Is ignored otherwise. | ||||||
|  |  */ | ||||||
|  | public class MainApplicationReactNativeHost extends ReactNativeHost { | ||||||
|  |   public MainApplicationReactNativeHost(Application application) { | ||||||
|  |     super(application); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   public boolean getUseDeveloperSupport() { | ||||||
|  |     return BuildConfig.DEBUG; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   protected List<ReactPackage> getPackages() { | ||||||
|  |     List<ReactPackage> packages = new PackageList(this).getPackages(); | ||||||
|  |     // Packages that cannot be autolinked yet can be added manually here, for example: | ||||||
|  |     //     packages.add(new MyReactNativePackage()); | ||||||
|  |     // TurboModules must also be loaded here providing a valid TurboReactPackage implementation: | ||||||
|  |     //     packages.add(new TurboReactPackage() { ... }); | ||||||
|  |     // If you have custom Fabric Components, their ViewManagers should also be loaded here | ||||||
|  |     // inside a ReactPackage. | ||||||
|  |     return packages; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   protected String getJSMainModuleName() { | ||||||
|  |     return "index"; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @NonNull | ||||||
|  |   @Override | ||||||
|  |   protected ReactPackageTurboModuleManagerDelegate.Builder | ||||||
|  |       getReactPackageTurboModuleManagerDelegateBuilder() { | ||||||
|  |     // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary | ||||||
|  |     // for the new architecture and to use TurboModules correctly. | ||||||
|  |     return new MainApplicationTurboModuleManagerDelegate.Builder(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   protected JSIModulePackage getJSIModulePackage() { | ||||||
|  |     return new JSIModulePackage() { | ||||||
|  |       @Override | ||||||
|  |       public List<JSIModuleSpec> getJSIModules( | ||||||
|  |           final ReactApplicationContext reactApplicationContext, | ||||||
|  |           final JavaScriptContextHolder jsContext) { | ||||||
|  |         final List<JSIModuleSpec> specs = new ArrayList<>(); | ||||||
|  |  | ||||||
|  |         // Here we provide a new JSIModuleSpec that will be responsible of providing the | ||||||
|  |         // custom Fabric Components. | ||||||
|  |         specs.add( | ||||||
|  |             new JSIModuleSpec() { | ||||||
|  |               @Override | ||||||
|  |               public JSIModuleType getJSIModuleType() { | ||||||
|  |                 return JSIModuleType.UIManager; | ||||||
|  |               } | ||||||
|  |  | ||||||
|  |               @Override | ||||||
|  |               public JSIModuleProvider<UIManager> getJSIModuleProvider() { | ||||||
|  |                 final ComponentFactory componentFactory = new ComponentFactory(); | ||||||
|  |                 CoreComponentsRegistry.register(componentFactory); | ||||||
|  |  | ||||||
|  |                 // Here we register a Components Registry. | ||||||
|  |                 // The one that is generated with the template contains no components | ||||||
|  |                 // and just provides you the one from React Native core. | ||||||
|  |                 MainComponentsRegistry.register(componentFactory); | ||||||
|  |  | ||||||
|  |                 final ReactInstanceManager reactInstanceManager = getReactInstanceManager(); | ||||||
|  |  | ||||||
|  |                 ViewManagerRegistry viewManagerRegistry = | ||||||
|  |                     new ViewManagerRegistry( | ||||||
|  |                         reactInstanceManager.getOrCreateViewManagers(reactApplicationContext)); | ||||||
|  |  | ||||||
|  |                 return new FabricJSIModuleProvider( | ||||||
|  |                     reactApplicationContext, | ||||||
|  |                     componentFactory, | ||||||
|  |                     ReactNativeConfig.DEFAULT_CONFIG, | ||||||
|  |                     viewManagerRegistry); | ||||||
|  |               } | ||||||
|  |             }); | ||||||
|  |         return specs; | ||||||
|  |       } | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -0,0 +1,36 @@ | |||||||
|  | package com.uiwjs.example.alipay.newarchitecture.components; | ||||||
|  |  | ||||||
|  | import com.facebook.jni.HybridData; | ||||||
|  | import com.facebook.proguard.annotations.DoNotStrip; | ||||||
|  | import com.facebook.react.fabric.ComponentFactory; | ||||||
|  | import com.facebook.soloader.SoLoader; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Class responsible to load the custom Fabric Components. This class has native methods and needs a | ||||||
|  |  * corresponding C++ implementation/header file to work correctly (already placed inside the jni/ | ||||||
|  |  * folder for you). | ||||||
|  |  * | ||||||
|  |  * <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the | ||||||
|  |  * `newArchEnabled` property). Is ignored otherwise. | ||||||
|  |  */ | ||||||
|  | @DoNotStrip | ||||||
|  | public class MainComponentsRegistry { | ||||||
|  |   static { | ||||||
|  |     SoLoader.loadLibrary("fabricjni"); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @DoNotStrip private final HybridData mHybridData; | ||||||
|  |  | ||||||
|  |   @DoNotStrip | ||||||
|  |   private native HybridData initHybrid(ComponentFactory componentFactory); | ||||||
|  |  | ||||||
|  |   @DoNotStrip | ||||||
|  |   private MainComponentsRegistry(ComponentFactory componentFactory) { | ||||||
|  |     mHybridData = initHybrid(componentFactory); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @DoNotStrip | ||||||
|  |   public static MainComponentsRegistry register(ComponentFactory componentFactory) { | ||||||
|  |     return new MainComponentsRegistry(componentFactory); | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -0,0 +1,48 @@ | |||||||
|  | package com.uiwjs.example.alipay.newarchitecture.modules; | ||||||
|  |  | ||||||
|  | import com.facebook.jni.HybridData; | ||||||
|  | import com.facebook.react.ReactPackage; | ||||||
|  | import com.facebook.react.ReactPackageTurboModuleManagerDelegate; | ||||||
|  | import com.facebook.react.bridge.ReactApplicationContext; | ||||||
|  | import com.facebook.soloader.SoLoader; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Class responsible to load the TurboModules. This class has native methods and needs a | ||||||
|  |  * corresponding C++ implementation/header file to work correctly (already placed inside the jni/ | ||||||
|  |  * folder for you). | ||||||
|  |  * | ||||||
|  |  * <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the | ||||||
|  |  * `newArchEnabled` property). Is ignored otherwise. | ||||||
|  |  */ | ||||||
|  | public class MainApplicationTurboModuleManagerDelegate | ||||||
|  |     extends ReactPackageTurboModuleManagerDelegate { | ||||||
|  |  | ||||||
|  |   private static volatile boolean sIsSoLibraryLoaded; | ||||||
|  |  | ||||||
|  |   protected MainApplicationTurboModuleManagerDelegate( | ||||||
|  |       ReactApplicationContext reactApplicationContext, List<ReactPackage> packages) { | ||||||
|  |     super(reactApplicationContext, packages); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   protected native HybridData initHybrid(); | ||||||
|  |  | ||||||
|  |   native boolean canCreateTurboModule(String moduleName); | ||||||
|  |  | ||||||
|  |   public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder { | ||||||
|  |     protected MainApplicationTurboModuleManagerDelegate build( | ||||||
|  |         ReactApplicationContext context, List<ReactPackage> packages) { | ||||||
|  |       return new MainApplicationTurboModuleManagerDelegate(context, packages); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @Override | ||||||
|  |   protected synchronized void maybeLoadOtherSoLibraries() { | ||||||
|  |     if (!sIsSoLibraryLoaded) { | ||||||
|  |       // If you change the name of your application .so file in the Android.mk file, | ||||||
|  |       // make sure you update the name here as well. | ||||||
|  |       SoLoader.loadLibrary("example_appmodules"); | ||||||
|  |       sIsSoLibraryLoaded = true; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										48
									
								
								example/android/app/src/main/jni/Android.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								example/android/app/src/main/jni/Android.mk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | |||||||
|  | THIS_DIR := $(call my-dir) | ||||||
|  |  | ||||||
|  | include $(REACT_ANDROID_DIR)/Android-prebuilt.mk | ||||||
|  |  | ||||||
|  | # If you wish to add a custom TurboModule or Fabric component in your app you | ||||||
|  | # will have to include the following autogenerated makefile. | ||||||
|  | # include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk | ||||||
|  | include $(CLEAR_VARS) | ||||||
|  |  | ||||||
|  | LOCAL_PATH := $(THIS_DIR) | ||||||
|  |  | ||||||
|  | # You can customize the name of your application .so file here. | ||||||
|  | LOCAL_MODULE := example_appmodules | ||||||
|  |  | ||||||
|  | LOCAL_C_INCLUDES := $(LOCAL_PATH) | ||||||
|  | LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) | ||||||
|  | LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) | ||||||
|  |  | ||||||
|  | # If you wish to add a custom TurboModule or Fabric component in your app you | ||||||
|  | # will have to uncomment those lines to include the generated source | ||||||
|  | # files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni) | ||||||
|  | # | ||||||
|  | # LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni | ||||||
|  | # LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp) | ||||||
|  | # LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni | ||||||
|  |  | ||||||
|  | # Here you should add any native library you wish to depend on. | ||||||
|  | LOCAL_SHARED_LIBRARIES := \ | ||||||
|  |   libfabricjni \ | ||||||
|  |   libfbjni \ | ||||||
|  |   libfolly_runtime \ | ||||||
|  |   libglog \ | ||||||
|  |   libjsi \ | ||||||
|  |   libreact_codegen_rncore \ | ||||||
|  |   libreact_debug \ | ||||||
|  |   libreact_nativemodule_core \ | ||||||
|  |   libreact_render_componentregistry \ | ||||||
|  |   libreact_render_core \ | ||||||
|  |   libreact_render_debug \ | ||||||
|  |   libreact_render_graphics \ | ||||||
|  |   librrc_view \ | ||||||
|  |   libruntimeexecutor \ | ||||||
|  |   libturbomodulejsijni \ | ||||||
|  |   libyoga | ||||||
|  |  | ||||||
|  | LOCAL_CFLAGS := -DLOG_TAG=\"ReactNative\" -fexceptions -frtti -std=c++17 -Wall | ||||||
|  |  | ||||||
|  | include $(BUILD_SHARED_LIBRARY) | ||||||
| @@ -0,0 +1,24 @@ | |||||||
|  | #include "MainApplicationModuleProvider.h" | ||||||
|  |  | ||||||
|  | #include <rncore.h> | ||||||
|  |  | ||||||
|  | namespace facebook { | ||||||
|  | namespace react { | ||||||
|  |  | ||||||
|  | std::shared_ptr<TurboModule> 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); | ||||||
|  |   return rncore_ModuleProvider(moduleName, params); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | } // namespace react | ||||||
|  | } // namespace facebook | ||||||
| @@ -0,0 +1,16 @@ | |||||||
|  | #pragma once | ||||||
|  |  | ||||||
|  | #include <memory> | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
|  | #include <ReactCommon/JavaTurboModule.h> | ||||||
|  |  | ||||||
|  | namespace facebook { | ||||||
|  | namespace react { | ||||||
|  |  | ||||||
|  | std::shared_ptr<TurboModule> MainApplicationModuleProvider( | ||||||
|  |     const std::string moduleName, | ||||||
|  |     const JavaTurboModule::InitParams ¶ms); | ||||||
|  |  | ||||||
|  | } // namespace react | ||||||
|  | } // namespace facebook | ||||||
| @@ -0,0 +1,45 @@ | |||||||
|  | #include "MainApplicationTurboModuleManagerDelegate.h" | ||||||
|  | #include "MainApplicationModuleProvider.h" | ||||||
|  |  | ||||||
|  | namespace facebook { | ||||||
|  | namespace react { | ||||||
|  |  | ||||||
|  | jni::local_ref<MainApplicationTurboModuleManagerDelegate::jhybriddata> | ||||||
|  | MainApplicationTurboModuleManagerDelegate::initHybrid( | ||||||
|  |     jni::alias_ref<jhybridobject>) { | ||||||
|  |   return makeCxxInstance(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void MainApplicationTurboModuleManagerDelegate::registerNatives() { | ||||||
|  |   registerHybrid({ | ||||||
|  |       makeNativeMethod( | ||||||
|  |           "initHybrid", MainApplicationTurboModuleManagerDelegate::initHybrid), | ||||||
|  |       makeNativeMethod( | ||||||
|  |           "canCreateTurboModule", | ||||||
|  |           MainApplicationTurboModuleManagerDelegate::canCreateTurboModule), | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | std::shared_ptr<TurboModule> | ||||||
|  | MainApplicationTurboModuleManagerDelegate::getTurboModule( | ||||||
|  |     const std::string name, | ||||||
|  |     const std::shared_ptr<CallInvoker> jsInvoker) { | ||||||
|  |   // Not implemented yet: provide pure-C++ NativeModules here. | ||||||
|  |   return nullptr; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | std::shared_ptr<TurboModule> | ||||||
|  | MainApplicationTurboModuleManagerDelegate::getTurboModule( | ||||||
|  |     const std::string name, | ||||||
|  |     const JavaTurboModule::InitParams ¶ms) { | ||||||
|  |   return MainApplicationModuleProvider(name, params); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule( | ||||||
|  |     std::string name) { | ||||||
|  |   return getTurboModule(name, nullptr) != nullptr || | ||||||
|  |       getTurboModule(name, {.moduleName = name}) != nullptr; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | } // namespace react | ||||||
|  | } // namespace facebook | ||||||
| @@ -0,0 +1,38 @@ | |||||||
|  | #include <memory> | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
|  | #include <ReactCommon/TurboModuleManagerDelegate.h> | ||||||
|  | #include <fbjni/fbjni.h> | ||||||
|  |  | ||||||
|  | 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 = | ||||||
|  |       "Lcom/example/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;"; | ||||||
|  |  | ||||||
|  |   static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject>); | ||||||
|  |  | ||||||
|  |   static void registerNatives(); | ||||||
|  |  | ||||||
|  |   std::shared_ptr<TurboModule> getTurboModule( | ||||||
|  |       const std::string name, | ||||||
|  |       const std::shared_ptr<CallInvoker> jsInvoker) override; | ||||||
|  |   std::shared_ptr<TurboModule> 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(std::string name); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | } // namespace react | ||||||
|  | } // namespace facebook | ||||||
							
								
								
									
										61
									
								
								example/android/app/src/main/jni/MainComponentsRegistry.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								example/android/app/src/main/jni/MainComponentsRegistry.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,61 @@ | |||||||
|  | #include "MainComponentsRegistry.h" | ||||||
|  |  | ||||||
|  | #include <CoreComponentsRegistry.h> | ||||||
|  | #include <fbjni/fbjni.h> | ||||||
|  | #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h> | ||||||
|  | #include <react/renderer/components/rncore/ComponentDescriptors.h> | ||||||
|  |  | ||||||
|  | namespace facebook { | ||||||
|  | namespace react { | ||||||
|  |  | ||||||
|  | MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {} | ||||||
|  |  | ||||||
|  | std::shared_ptr<ComponentDescriptorProviderRegistry const> | ||||||
|  | MainComponentsRegistry::sharedProviderRegistry() { | ||||||
|  |   auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry(); | ||||||
|  |  | ||||||
|  |   // 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::jhybriddata> | ||||||
|  | MainComponentsRegistry::initHybrid( | ||||||
|  |     jni::alias_ref<jclass>, | ||||||
|  |     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<ComponentDescriptorRegistry>(registry); | ||||||
|  |  | ||||||
|  |     mutableRegistry->setFallbackComponentDescriptor( | ||||||
|  |         std::make_shared<UnimplementedNativeViewComponentDescriptor>( | ||||||
|  |             ComponentDescriptorParameters{ | ||||||
|  |                 eventDispatcher, contextContainer, nullptr})); | ||||||
|  |  | ||||||
|  |     return registry; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   delegate->buildRegistryFunction = buildRegistryFunction; | ||||||
|  |   return instance; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void MainComponentsRegistry::registerNatives() { | ||||||
|  |   registerHybrid({ | ||||||
|  |       makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid), | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | } // namespace react | ||||||
|  | } // namespace facebook | ||||||
							
								
								
									
										32
									
								
								example/android/app/src/main/jni/MainComponentsRegistry.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								example/android/app/src/main/jni/MainComponentsRegistry.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | |||||||
|  | #pragma once | ||||||
|  |  | ||||||
|  | #include <ComponentFactory.h> | ||||||
|  | #include <fbjni/fbjni.h> | ||||||
|  | #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h> | ||||||
|  | #include <react/renderer/componentregistry/ComponentDescriptorRegistry.h> | ||||||
|  |  | ||||||
|  | namespace facebook { | ||||||
|  | namespace react { | ||||||
|  |  | ||||||
|  | class MainComponentsRegistry | ||||||
|  |     : public facebook::jni::HybridClass<MainComponentsRegistry> { | ||||||
|  |  public: | ||||||
|  |   // Adapt it to the package you used for your Java class. | ||||||
|  |   constexpr static auto kJavaDescriptor = | ||||||
|  |       "Lcom/example/newarchitecture/components/MainComponentsRegistry;"; | ||||||
|  |  | ||||||
|  |   static void registerNatives(); | ||||||
|  |  | ||||||
|  |   MainComponentsRegistry(ComponentFactory *delegate); | ||||||
|  |  | ||||||
|  |  private: | ||||||
|  |   static std::shared_ptr<ComponentDescriptorProviderRegistry const> | ||||||
|  |   sharedProviderRegistry(); | ||||||
|  |  | ||||||
|  |   static jni::local_ref<jhybriddata> initHybrid( | ||||||
|  |       jni::alias_ref<jclass>, | ||||||
|  |       ComponentFactory *delegate); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | } // namespace react | ||||||
|  | } // namespace facebook | ||||||
							
								
								
									
										11
									
								
								example/android/app/src/main/jni/OnLoad.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								example/android/app/src/main/jni/OnLoad.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | #include <fbjni/fbjni.h> | ||||||
|  | #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(); | ||||||
|  |   }); | ||||||
|  | } | ||||||
| @@ -0,0 +1,36 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <!-- Copyright (C) 2014 The Android Open Source Project | ||||||
|  |  | ||||||
|  |      Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |      you may not use this file except in compliance with the License. | ||||||
|  |      You may obtain a copy of the License at | ||||||
|  |  | ||||||
|  |           http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  | ||||||
|  |      Unless required by applicable law or agreed to in writing, software | ||||||
|  |      distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |      See the License for the specific language governing permissions and | ||||||
|  |      limitations under the License. | ||||||
|  | --> | ||||||
|  | <inset xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |        android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material" | ||||||
|  |        android:insetRight="@dimen/abc_edit_text_inset_horizontal_material" | ||||||
|  |        android:insetTop="@dimen/abc_edit_text_inset_top_material" | ||||||
|  |        android:insetBottom="@dimen/abc_edit_text_inset_bottom_material"> | ||||||
|  |  | ||||||
|  |     <selector> | ||||||
|  |         <!--  | ||||||
|  |           This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I). | ||||||
|  |           The item below with state_pressed="false" and state_focused="false" causes a NullPointerException. | ||||||
|  |           NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)' | ||||||
|  |  | ||||||
|  |           <item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/> | ||||||
|  |  | ||||||
|  |           For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR. | ||||||
|  |         --> | ||||||
|  |         <item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/> | ||||||
|  |         <item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/> | ||||||
|  |     </selector> | ||||||
|  |  | ||||||
|  | </inset> | ||||||
| @@ -3,7 +3,7 @@ | |||||||
|     <!-- Base application theme. --> |     <!-- Base application theme. --> | ||||||
|     <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar"> |     <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar"> | ||||||
|         <!-- Customize your theme here. --> |         <!-- Customize your theme here. --> | ||||||
|         <item name="android:textColor">#000000</item> |         <item name="android:editTextBackground">@drawable/rn_edit_text_material</item> | ||||||
|     </style> |     </style> | ||||||
|  |  | ||||||
| </resources> | </resources> | ||||||
|   | |||||||
| @@ -1,19 +1,30 @@ | |||||||
|  | import org.apache.tools.ant.taskdefs.condition.Os | ||||||
|  |  | ||||||
| // Top-level build file where you can add configuration options common to all sub-projects/modules. | // Top-level build file where you can add configuration options common to all sub-projects/modules. | ||||||
|  |  | ||||||
| buildscript { | buildscript { | ||||||
|     ext { |     ext { | ||||||
|         buildToolsVersion = "29.0.3" |         buildToolsVersion = "31.0.0" | ||||||
|         minSdkVersion = 21 |         minSdkVersion = 21 | ||||||
|         compileSdkVersion = 29 |         compileSdkVersion = 31 | ||||||
|         targetSdkVersion = 29 |         targetSdkVersion = 31 | ||||||
|         ndkVersion = "20.1.5948944" |  | ||||||
|  |         if (System.properties['os.arch'] == "aarch64") { | ||||||
|  |             // For M1 Users we need to use the NDK 24 which added support for aarch64 | ||||||
|  |             ndkVersion = "24.0.8215888" | ||||||
|  |         } else { | ||||||
|  |             // Otherwise we default to the side-by-side NDK version from AGP. | ||||||
|  |             ndkVersion = "21.4.7075529" | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|     repositories { |     repositories { | ||||||
|         google() |         google() | ||||||
|         jcenter() |         mavenCentral() | ||||||
|     } |     } | ||||||
|     dependencies { |     dependencies { | ||||||
|         classpath("com.android.tools.build:gradle:4.1.0") |         classpath("com.android.tools.build:gradle:7.1.1") | ||||||
|  |         classpath("com.facebook.react:react-native-gradle-plugin") | ||||||
|  |         classpath("de.undercouch:gradle-download-task:5.0.1") | ||||||
|         // NOTE: Do not place your application dependencies here; they belong |         // NOTE: Do not place your application dependencies here; they belong | ||||||
|         // in the individual module build.gradle files |         // in the individual module build.gradle files | ||||||
|     } |     } | ||||||
| @@ -21,7 +32,6 @@ buildscript { | |||||||
|  |  | ||||||
| allprojects { | allprojects { | ||||||
|     repositories { |     repositories { | ||||||
|         mavenLocal() |  | ||||||
|         maven { |         maven { | ||||||
|             // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm |             // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm | ||||||
|             url("$rootDir/../node_modules/react-native/android") |             url("$rootDir/../node_modules/react-native/android") | ||||||
| @@ -30,9 +40,14 @@ allprojects { | |||||||
|             // Android JSC is installed from npm |             // Android JSC is installed from npm | ||||||
|             url("$rootDir/../node_modules/jsc-android/dist") |             url("$rootDir/../node_modules/jsc-android/dist") | ||||||
|         } |         } | ||||||
|  |         mavenCentral { | ||||||
|  |             // We don't want to fetch react-native from Maven Central as there are | ||||||
|  |             // older versions over there. | ||||||
|  |             content { | ||||||
|  |                 excludeGroup "com.facebook.react" | ||||||
|  |             } | ||||||
|  |         } | ||||||
|         google() |         google() | ||||||
|         jcenter() |  | ||||||
|         maven { url 'https://www.jitpack.io' } |         maven { url 'https://www.jitpack.io' } | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -9,8 +9,8 @@ | |||||||
|  |  | ||||||
| # Specifies the JVM arguments used for the daemon process. | # Specifies the JVM arguments used for the daemon process. | ||||||
| # The setting is particularly useful for tweaking memory settings. | # The setting is particularly useful for tweaking memory settings. | ||||||
| # Default value: -Xmx10248m -XX:MaxPermSize=256m | # Default value: -Xmx512m -XX:MaxMetaspaceSize=256m | ||||||
| # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 | org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m | ||||||
|  |  | ||||||
| # When configured, Gradle will run in incubating parallel mode. | # When configured, Gradle will run in incubating parallel mode. | ||||||
| # This option should only be used with decoupled projects. More details, visit | # This option should only be used with decoupled projects. More details, visit | ||||||
| @@ -25,4 +25,16 @@ android.useAndroidX=true | |||||||
| android.enableJetifier=true | android.enableJetifier=true | ||||||
|  |  | ||||||
| # Version of flipper SDK to use with React Native | # Version of flipper SDK to use with React Native | ||||||
| FLIPPER_VERSION=0.75.1 | FLIPPER_VERSION=0.125.0 | ||||||
|  |  | ||||||
|  | # Use this property to specify which architecture you want to build. | ||||||
|  | # You can also override it from the CLI using | ||||||
|  | # ./gradlew <task> -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=false | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								example/android/gradle/wrapper/gradle-wrapper.jar
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								example/android/gradle/wrapper/gradle-wrapper.jar
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| distributionBase=GRADLE_USER_HOME | distributionBase=GRADLE_USER_HOME | ||||||
| distributionPath=wrapper/dists | distributionPath=wrapper/dists | ||||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip | ||||||
| zipStoreBase=GRADLE_USER_HOME | zipStoreBase=GRADLE_USER_HOME | ||||||
| zipStorePath=wrapper/dists | zipStorePath=wrapper/dists | ||||||
|   | |||||||
							
								
								
									
										269
									
								
								example/android/gradlew
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										269
									
								
								example/android/gradlew
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +1,7 @@ | |||||||
| #!/usr/bin/env sh | #!/bin/sh | ||||||
|  |  | ||||||
| # | # | ||||||
| # Copyright 2015 the original author or authors. | # Copyright © 2015-2021 the original authors. | ||||||
| # | # | ||||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | # Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
| # you may not use this file except in compliance with the License. | # you may not use this file except in compliance with the License. | ||||||
| @@ -17,67 +17,101 @@ | |||||||
| # | # | ||||||
|  |  | ||||||
| ############################################################################## | ############################################################################## | ||||||
| ## | # | ||||||
| ##  Gradle start up script for UN*X | #   Gradle start up script for POSIX generated by Gradle. | ||||||
| ## | # | ||||||
|  | #   Important for running: | ||||||
|  | # | ||||||
|  | #   (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is | ||||||
|  | #       noncompliant, but you have some other compliant shell such as ksh or | ||||||
|  | #       bash, then to run this script, type that shell name before the whole | ||||||
|  | #       command line, like: | ||||||
|  | # | ||||||
|  | #           ksh Gradle | ||||||
|  | # | ||||||
|  | #       Busybox and similar reduced shells will NOT work, because this script | ||||||
|  | #       requires all of these POSIX shell features: | ||||||
|  | #         * functions; | ||||||
|  | #         * expansions «$var», «${var}», «${var:-default}», «${var+SET}», | ||||||
|  | #           «${var#prefix}», «${var%suffix}», and «$( cmd )»; | ||||||
|  | #         * compound commands having a testable exit status, especially «case»; | ||||||
|  | #         * various built-in commands including «command», «set», and «ulimit». | ||||||
|  | # | ||||||
|  | #   Important for patching: | ||||||
|  | # | ||||||
|  | #   (2) This script targets any POSIX shell, so it avoids extensions provided | ||||||
|  | #       by Bash, Ksh, etc; in particular arrays are avoided. | ||||||
|  | # | ||||||
|  | #       The "traditional" practice of packing multiple parameters into a | ||||||
|  | #       space-separated string is a well documented source of bugs and security | ||||||
|  | #       problems, so this is (mostly) avoided, by progressively accumulating | ||||||
|  | #       options in "$@", and eventually passing that to Java. | ||||||
|  | # | ||||||
|  | #       Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, | ||||||
|  | #       and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; | ||||||
|  | #       see the in-line comments for details. | ||||||
|  | # | ||||||
|  | #       There are tweaks for specific operating systems such as AIX, CygWin, | ||||||
|  | #       Darwin, MinGW, and NonStop. | ||||||
|  | # | ||||||
|  | #   (3) This script is generated from the Groovy template | ||||||
|  | #       https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt | ||||||
|  | #       within the Gradle project. | ||||||
|  | # | ||||||
|  | #       You can find Gradle at https://github.com/gradle/gradle/. | ||||||
|  | # | ||||||
| ############################################################################## | ############################################################################## | ||||||
|  |  | ||||||
| # Attempt to set APP_HOME | # Attempt to set APP_HOME | ||||||
|  |  | ||||||
| # Resolve links: $0 may be a link | # Resolve links: $0 may be a link | ||||||
| PRG="$0" | app_path=$0 | ||||||
| # Need this for relative symlinks. |  | ||||||
| while [ -h "$PRG" ] ; do | # Need this for daisy-chained symlinks. | ||||||
|     ls=`ls -ld "$PRG"` | while | ||||||
|     link=`expr "$ls" : '.*-> \(.*\)$'` |     APP_HOME=${app_path%"${app_path##*/}"}  # leaves a trailing /; empty if no leading path | ||||||
|     if expr "$link" : '/.*' > /dev/null; then |     [ -h "$app_path" ] | ||||||
|         PRG="$link" | do | ||||||
|     else |     ls=$( ls -ld "$app_path" ) | ||||||
|         PRG=`dirname "$PRG"`"/$link" |     link=${ls#*' -> '} | ||||||
|     fi |     case $link in             #( | ||||||
|  |       /*)   app_path=$link ;; #( | ||||||
|  |       *)    app_path=$APP_HOME$link ;; | ||||||
|  |     esac | ||||||
| done | done | ||||||
| SAVED="`pwd`" |  | ||||||
| cd "`dirname \"$PRG\"`/" >/dev/null | APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit | ||||||
| APP_HOME="`pwd -P`" |  | ||||||
| cd "$SAVED" >/dev/null |  | ||||||
|  |  | ||||||
| APP_NAME="Gradle" | APP_NAME="Gradle" | ||||||
| APP_BASE_NAME=`basename "$0"` | APP_BASE_NAME=${0##*/} | ||||||
|  |  | ||||||
| # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | # 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"' | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' | ||||||
|  |  | ||||||
| # Use the maximum available, or set MAX_FD != -1 to use that value. | # Use the maximum available, or set MAX_FD != -1 to use that value. | ||||||
| MAX_FD="maximum" | MAX_FD=maximum | ||||||
|  |  | ||||||
| warn () { | warn () { | ||||||
|     echo "$*" |     echo "$*" | ||||||
| } | } >&2 | ||||||
|  |  | ||||||
| die () { | die () { | ||||||
|     echo |     echo | ||||||
|     echo "$*" |     echo "$*" | ||||||
|     echo |     echo | ||||||
|     exit 1 |     exit 1 | ||||||
| } | } >&2 | ||||||
|  |  | ||||||
| # OS specific support (must be 'true' or 'false'). | # OS specific support (must be 'true' or 'false'). | ||||||
| cygwin=false | cygwin=false | ||||||
| msys=false | msys=false | ||||||
| darwin=false | darwin=false | ||||||
| nonstop=false | nonstop=false | ||||||
| case "`uname`" in | case "$( uname )" in                #( | ||||||
|   CYGWIN* ) |   CYGWIN* )         cygwin=true  ;; #( | ||||||
|     cygwin=true |   Darwin* )         darwin=true  ;; #( | ||||||
|     ;; |   MSYS* | MINGW* )  msys=true    ;; #( | ||||||
|   Darwin* ) |   NONSTOP* )        nonstop=true ;; | ||||||
|     darwin=true |  | ||||||
|     ;; |  | ||||||
|   MINGW* ) |  | ||||||
|     msys=true |  | ||||||
|     ;; |  | ||||||
|   NONSTOP* ) |  | ||||||
|     nonstop=true |  | ||||||
|     ;; |  | ||||||
| esac | esac | ||||||
|  |  | ||||||
| CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar | ||||||
| @@ -87,9 +121,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar | |||||||
| if [ -n "$JAVA_HOME" ] ; then | if [ -n "$JAVA_HOME" ] ; then | ||||||
|     if [ -x "$JAVA_HOME/jre/sh/java" ] ; then |     if [ -x "$JAVA_HOME/jre/sh/java" ] ; then | ||||||
|         # IBM's JDK on AIX uses strange locations for the executables |         # IBM's JDK on AIX uses strange locations for the executables | ||||||
|         JAVACMD="$JAVA_HOME/jre/sh/java" |         JAVACMD=$JAVA_HOME/jre/sh/java | ||||||
|     else |     else | ||||||
|         JAVACMD="$JAVA_HOME/bin/java" |         JAVACMD=$JAVA_HOME/bin/java | ||||||
|     fi |     fi | ||||||
|     if [ ! -x "$JAVACMD" ] ; then |     if [ ! -x "$JAVACMD" ] ; then | ||||||
|         die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME |         die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME | ||||||
| @@ -98,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the | |||||||
| location of your Java installation." | location of your Java installation." | ||||||
|     fi |     fi | ||||||
| else | else | ||||||
|     JAVACMD="java" |     JAVACMD=java | ||||||
|     which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. |     which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. | ||||||
|  |  | ||||||
| Please set the JAVA_HOME variable in your environment to match the | Please set the JAVA_HOME variable in your environment to match the | ||||||
| @@ -106,80 +140,95 @@ location of your Java installation." | |||||||
| fi | fi | ||||||
|  |  | ||||||
| # Increase the maximum file descriptors if we can. | # Increase the maximum file descriptors if we can. | ||||||
| if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then | ||||||
|     MAX_FD_LIMIT=`ulimit -H -n` |     case $MAX_FD in #( | ||||||
|     if [ $? -eq 0 ] ; then |       max*) | ||||||
|         if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then |         MAX_FD=$( ulimit -H -n ) || | ||||||
|             MAX_FD="$MAX_FD_LIMIT" |             warn "Could not query maximum file descriptor limit" | ||||||
|         fi |     esac | ||||||
|         ulimit -n $MAX_FD |     case $MAX_FD in  #( | ||||||
|         if [ $? -ne 0 ] ; then |       '' | soft) :;; #( | ||||||
|             warn "Could not set maximum file descriptor limit: $MAX_FD" |       *) | ||||||
|         fi |         ulimit -n "$MAX_FD" || | ||||||
|     else |             warn "Could not set maximum file descriptor limit to $MAX_FD" | ||||||
|         warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" |  | ||||||
|     fi |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # For Darwin, add options to specify how the application appears in the dock |  | ||||||
| if $darwin; then |  | ||||||
|     GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # For Cygwin or MSYS, switch paths to Windows format before running java |  | ||||||
| if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then |  | ||||||
|     APP_HOME=`cygpath --path --mixed "$APP_HOME"` |  | ||||||
|     CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` |  | ||||||
|      |  | ||||||
|     JAVACMD=`cygpath --unix "$JAVACMD"` |  | ||||||
|  |  | ||||||
|     # We build the pattern for arguments to be converted via cygpath |  | ||||||
|     ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` |  | ||||||
|     SEP="" |  | ||||||
|     for dir in $ROOTDIRSRAW ; do |  | ||||||
|         ROOTDIRS="$ROOTDIRS$SEP$dir" |  | ||||||
|         SEP="|" |  | ||||||
|     done |  | ||||||
|     OURCYGPATTERN="(^($ROOTDIRS))" |  | ||||||
|     # Add a user-defined pattern to the cygpath arguments |  | ||||||
|     if [ "$GRADLE_CYGPATTERN" != "" ] ; then |  | ||||||
|         OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" |  | ||||||
|     fi |  | ||||||
|     # Now convert the arguments - kludge to limit ourselves to /bin/sh |  | ||||||
|     i=0 |  | ||||||
|     for arg in "$@" ; do |  | ||||||
|         CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` |  | ||||||
|         CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option |  | ||||||
|  |  | ||||||
|         if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition |  | ||||||
|             eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` |  | ||||||
|         else |  | ||||||
|             eval `echo args$i`="\"$arg\"" |  | ||||||
|         fi |  | ||||||
|         i=`expr $i + 1` |  | ||||||
|     done |  | ||||||
|     case $i in |  | ||||||
|         0) set -- ;; |  | ||||||
|         1) set -- "$args0" ;; |  | ||||||
|         2) set -- "$args0" "$args1" ;; |  | ||||||
|         3) set -- "$args0" "$args1" "$args2" ;; |  | ||||||
|         4) set -- "$args0" "$args1" "$args2" "$args3" ;; |  | ||||||
|         5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; |  | ||||||
|         6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; |  | ||||||
|         7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; |  | ||||||
|         8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; |  | ||||||
|         9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; |  | ||||||
|     esac |     esac | ||||||
| fi | fi | ||||||
|  |  | ||||||
| # Escape application args | # Collect all arguments for the java command, stacking in reverse order: | ||||||
| save () { | #   * args from the command line | ||||||
|     for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done | #   * the main class name | ||||||
|     echo " " | #   * -classpath | ||||||
| } | #   * -D...appname settings | ||||||
| APP_ARGS=`save "$@"` | #   * --module-path (only if needed) | ||||||
|  | #   * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. | ||||||
|  |  | ||||||
| # Collect all arguments for the java command, following the shell quoting and substitution rules | # For Cygwin or MSYS, switch paths to Windows format before running java | ||||||
| eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" | if "$cygwin" || "$msys" ; then | ||||||
|  |     APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) | ||||||
|  |     CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) | ||||||
|  |  | ||||||
|  |     JAVACMD=$( cygpath --unix "$JAVACMD" ) | ||||||
|  |  | ||||||
|  |     # Now convert the arguments - kludge to limit ourselves to /bin/sh | ||||||
|  |     for arg do | ||||||
|  |         if | ||||||
|  |             case $arg in                                #( | ||||||
|  |               -*)   false ;;                            # don't mess with options #( | ||||||
|  |               /?*)  t=${arg#/} t=/${t%%/*}              # looks like a POSIX filepath | ||||||
|  |                     [ -e "$t" ] ;;                      #( | ||||||
|  |               *)    false ;; | ||||||
|  |             esac | ||||||
|  |         then | ||||||
|  |             arg=$( cygpath --path --ignore --mixed "$arg" ) | ||||||
|  |         fi | ||||||
|  |         # Roll the args list around exactly as many times as the number of | ||||||
|  |         # args, so each arg winds up back in the position where it started, but | ||||||
|  |         # possibly modified. | ||||||
|  |         # | ||||||
|  |         # NB: a `for` loop captures its iteration list before it begins, so | ||||||
|  |         # changing the positional parameters here affects neither the number of | ||||||
|  |         # iterations, nor the values presented in `arg`. | ||||||
|  |         shift                   # remove old arg | ||||||
|  |         set -- "$@" "$arg"      # push replacement arg | ||||||
|  |     done | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | # 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. | ||||||
|  |  | ||||||
|  | set -- \ | ||||||
|  |         "-Dorg.gradle.appname=$APP_BASE_NAME" \ | ||||||
|  |         -classpath "$CLASSPATH" \ | ||||||
|  |         org.gradle.wrapper.GradleWrapperMain \ | ||||||
|  |         "$@" | ||||||
|  |  | ||||||
|  | # Use "xargs" to parse quoted args. | ||||||
|  | # | ||||||
|  | # With -n1 it outputs one arg per line, with the quotes and backslashes removed. | ||||||
|  | # | ||||||
|  | # In Bash we could simply go: | ||||||
|  | # | ||||||
|  | #   readarray ARGS < <( xargs -n1 <<<"$var" ) && | ||||||
|  | #   set -- "${ARGS[@]}" "$@" | ||||||
|  | # | ||||||
|  | # but POSIX shell has neither arrays nor command substitution, so instead we | ||||||
|  | # post-process each arg (as a line of input to sed) to backslash-escape any | ||||||
|  | # character that might be a shell metacharacter, then use eval to reverse | ||||||
|  | # that process (while maintaining the separation between arguments), and wrap | ||||||
|  | # the whole thing up as a single "set" statement. | ||||||
|  | # | ||||||
|  | # This will of course break if any of these variables contains a newline or | ||||||
|  | # an unmatched quote. | ||||||
|  | # | ||||||
|  |  | ||||||
|  | eval "set -- $( | ||||||
|  |         printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | | ||||||
|  |         xargs -n1 | | ||||||
|  |         sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | | ||||||
|  |         tr '\n' ' ' | ||||||
|  |     )" '"$@"' | ||||||
|  |  | ||||||
| exec "$JAVACMD" "$@" | exec "$JAVACMD" "$@" | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								example/android/gradlew.bat
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								example/android/gradlew.bat
									
									
									
									
										vendored
									
									
								
							| @@ -69,6 +69,7 @@ goto fail | |||||||
|  |  | ||||||
| set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar | ||||||
|  |  | ||||||
|  |  | ||||||
| @rem Execute Gradle | @rem Execute Gradle | ||||||
| "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,3 +1,11 @@ | |||||||
| rootProject.name = 'example' | rootProject.name = 'example' | ||||||
| apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) | ||||||
| include ':app' | 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') | ||||||
|  | } | ||||||
|   | |||||||
| @@ -1,3 +1,17 @@ | |||||||
|  | const path = require('path'); | ||||||
|  | const pak = require('../package.json'); | ||||||
|  |  | ||||||
| module.exports = { | module.exports = { | ||||||
|   presets: ['module:metro-react-native-babel-preset'], |   presets: ['module:metro-react-native-babel-preset'], | ||||||
|  |   plugins: [ | ||||||
|  |     [ | ||||||
|  |       'module-resolver', | ||||||
|  |       { | ||||||
|  |         extensions: ['.tsx', '.ts', '.js', '.json'], | ||||||
|  |         alias: { | ||||||
|  |           [pak.name]: path.join(__dirname, '..', 'index'), | ||||||
|  |         }, | ||||||
|  |       }, | ||||||
|  |     ], | ||||||
|  |   ], | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -1,9 +1,4 @@ | |||||||
| /** |  | ||||||
|  * @format |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| import {AppRegistry} from 'react-native'; | import {AppRegistry} from 'react-native'; | ||||||
| import App from './App'; | import App from './App'; | ||||||
| import {name as appName} from './app.json'; |  | ||||||
|  |  | ||||||
| AppRegistry.registerComponent(appName, () => App); | AppRegistry.registerComponent('main', () => App); | ||||||
|   | |||||||
| @@ -1,15 +1,26 @@ | |||||||
| require_relative '../node_modules/react-native/scripts/react_native_pods' | require_relative '../node_modules/react-native/scripts/react_native_pods' | ||||||
| require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' | require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' | ||||||
|  |  | ||||||
| platform :ios, '10.0' | platform :ios, '12.4' | ||||||
|  | install! 'cocoapods', :deterministic_uuids => false | ||||||
|  |  | ||||||
|  | production = ENV["PRODUCTION"] == "1" | ||||||
|  |  | ||||||
| target 'example' do | target 'example' do | ||||||
|   config = use_native_modules! |   config = use_native_modules! | ||||||
|  |  | ||||||
|  |   # Flags change depending on the env values. | ||||||
|  |   flags = get_default_flags() | ||||||
|  |  | ||||||
|   use_react_native!( |   use_react_native!( | ||||||
|     :path => config[:reactNativePath], |     :path => config[:reactNativePath], | ||||||
|     # to enable hermes on iOS, change `false` to `true` and then install pods |     # to enable hermes on iOS, change `false` to `true` and then install pods | ||||||
|     :hermes_enabled => false |     :production => production, | ||||||
|  |     :hermes_enabled => flags[:hermes_enabled], | ||||||
|  |     :fabric_enabled => flags[:fabric_enabled], | ||||||
|  |     :flipper_configuration => FlipperConfiguration.enabled, | ||||||
|  |     # An absolute path to your application root. | ||||||
|  |     :app_path => "#{Pod::Config.instance.installation_root}/.." | ||||||
|   ) |   ) | ||||||
|  |  | ||||||
|   target 'exampleTests' do |   target 'exampleTests' do | ||||||
| @@ -17,12 +28,8 @@ target 'example' do | |||||||
|     # Pods for testing |     # Pods for testing | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   # Enables Flipper. |  | ||||||
|   # |  | ||||||
|   # Note that if you have use_frameworks! enabled, Flipper will not work and |  | ||||||
|   # you should disable the next line. |  | ||||||
|   use_flipper!() |  | ||||||
|   post_install do |installer| |   post_install do |installer| | ||||||
|     react_native_post_install(installer) |     react_native_post_install(installer) | ||||||
|  |     __apply_Xcode_12_5_M1_post_install_workaround(installer) | ||||||
|   end |   end | ||||||
| end | end | ||||||
| @@ -1,356 +1,397 @@ | |||||||
| PODS: | PODS: | ||||||
|   - boost-for-react-native (1.63.0) |   - boost (1.76.0) | ||||||
|   - CocoaAsyncSocket (7.6.5) |   - CocoaAsyncSocket (7.6.5) | ||||||
|   - DoubleConversion (1.1.6) |   - DoubleConversion (1.1.6) | ||||||
|   - FBLazyVector (0.64.1) |   - FBLazyVector (0.69.3) | ||||||
|   - FBReactNativeSpec (0.64.1): |   - FBReactNativeSpec (0.69.3): | ||||||
|     - RCT-Folly (= 2020.01.13.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - RCTRequired (= 0.64.1) |     - RCTRequired (= 0.69.3) | ||||||
|     - RCTTypeSafety (= 0.64.1) |     - RCTTypeSafety (= 0.69.3) | ||||||
|     - React-Core (= 0.64.1) |     - React-Core (= 0.69.3) | ||||||
|     - React-jsi (= 0.64.1) |     - React-jsi (= 0.69.3) | ||||||
|     - ReactCommon/turbomodule/core (= 0.64.1) |     - ReactCommon/turbomodule/core (= 0.69.3) | ||||||
|   - Flipper (0.75.1): |   - Flipper (0.125.0): | ||||||
|     - Flipper-Folly (~> 2.5) |     - Flipper-Folly (~> 2.6) | ||||||
|     - Flipper-RSocket (~> 1.3) |     - Flipper-RSocket (~> 1.4) | ||||||
|   - Flipper-DoubleConversion (1.1.7) |   - Flipper-Boost-iOSX (1.76.0.1.11) | ||||||
|   - Flipper-Folly (2.5.3): |   - Flipper-DoubleConversion (3.2.0.1) | ||||||
|     - boost-for-react-native |   - Flipper-Fmt (7.1.7) | ||||||
|  |   - Flipper-Folly (2.6.10): | ||||||
|  |     - Flipper-Boost-iOSX | ||||||
|     - Flipper-DoubleConversion |     - Flipper-DoubleConversion | ||||||
|  |     - Flipper-Fmt (= 7.1.7) | ||||||
|     - Flipper-Glog |     - Flipper-Glog | ||||||
|     - libevent (~> 2.1.12) |     - libevent (~> 2.1.12) | ||||||
|     - OpenSSL-Universal (= 1.1.180) |     - OpenSSL-Universal (= 1.1.1100) | ||||||
|   - Flipper-Glog (0.3.6) |   - Flipper-Glog (0.5.0.5) | ||||||
|   - Flipper-PeerTalk (0.0.4) |   - Flipper-PeerTalk (0.0.4) | ||||||
|   - Flipper-RSocket (1.3.1): |   - Flipper-RSocket (1.4.3): | ||||||
|     - Flipper-Folly (~> 2.5) |     - Flipper-Folly (~> 2.6) | ||||||
|   - FlipperKit (0.75.1): |   - FlipperKit (0.125.0): | ||||||
|     - FlipperKit/Core (= 0.75.1) |     - FlipperKit/Core (= 0.125.0) | ||||||
|   - FlipperKit/Core (0.75.1): |   - FlipperKit/Core (0.125.0): | ||||||
|     - Flipper (~> 0.75.1) |     - Flipper (~> 0.125.0) | ||||||
|     - FlipperKit/CppBridge |     - FlipperKit/CppBridge | ||||||
|     - FlipperKit/FBCxxFollyDynamicConvert |     - FlipperKit/FBCxxFollyDynamicConvert | ||||||
|     - FlipperKit/FBDefines |     - FlipperKit/FBDefines | ||||||
|     - FlipperKit/FKPortForwarding |     - FlipperKit/FKPortForwarding | ||||||
|   - FlipperKit/CppBridge (0.75.1): |     - SocketRocket (~> 0.6.0) | ||||||
|     - Flipper (~> 0.75.1) |   - FlipperKit/CppBridge (0.125.0): | ||||||
|   - FlipperKit/FBCxxFollyDynamicConvert (0.75.1): |     - Flipper (~> 0.125.0) | ||||||
|     - Flipper-Folly (~> 2.5) |   - FlipperKit/FBCxxFollyDynamicConvert (0.125.0): | ||||||
|   - FlipperKit/FBDefines (0.75.1) |     - Flipper-Folly (~> 2.6) | ||||||
|   - FlipperKit/FKPortForwarding (0.75.1): |   - FlipperKit/FBDefines (0.125.0) | ||||||
|  |   - FlipperKit/FKPortForwarding (0.125.0): | ||||||
|     - CocoaAsyncSocket (~> 7.6) |     - CocoaAsyncSocket (~> 7.6) | ||||||
|     - Flipper-PeerTalk (~> 0.0.4) |     - Flipper-PeerTalk (~> 0.0.4) | ||||||
|   - FlipperKit/FlipperKitHighlightOverlay (0.75.1) |   - FlipperKit/FlipperKitHighlightOverlay (0.125.0) | ||||||
|   - FlipperKit/FlipperKitLayoutPlugin (0.75.1): |   - FlipperKit/FlipperKitLayoutHelpers (0.125.0): | ||||||
|     - FlipperKit/Core |     - FlipperKit/Core | ||||||
|     - FlipperKit/FlipperKitHighlightOverlay |     - FlipperKit/FlipperKitHighlightOverlay | ||||||
|     - FlipperKit/FlipperKitLayoutTextSearchable |     - FlipperKit/FlipperKitLayoutTextSearchable | ||||||
|  |   - FlipperKit/FlipperKitLayoutIOSDescriptors (0.125.0): | ||||||
|  |     - FlipperKit/Core | ||||||
|  |     - FlipperKit/FlipperKitHighlightOverlay | ||||||
|  |     - FlipperKit/FlipperKitLayoutHelpers | ||||||
|     - YogaKit (~> 1.18) |     - YogaKit (~> 1.18) | ||||||
|   - FlipperKit/FlipperKitLayoutTextSearchable (0.75.1) |   - FlipperKit/FlipperKitLayoutPlugin (0.125.0): | ||||||
|   - FlipperKit/FlipperKitNetworkPlugin (0.75.1): |  | ||||||
|     - FlipperKit/Core |     - FlipperKit/Core | ||||||
|   - FlipperKit/FlipperKitReactPlugin (0.75.1): |     - FlipperKit/FlipperKitHighlightOverlay | ||||||
|  |     - FlipperKit/FlipperKitLayoutHelpers | ||||||
|  |     - FlipperKit/FlipperKitLayoutIOSDescriptors | ||||||
|  |     - FlipperKit/FlipperKitLayoutTextSearchable | ||||||
|  |     - YogaKit (~> 1.18) | ||||||
|  |   - FlipperKit/FlipperKitLayoutTextSearchable (0.125.0) | ||||||
|  |   - FlipperKit/FlipperKitNetworkPlugin (0.125.0): | ||||||
|     - FlipperKit/Core |     - FlipperKit/Core | ||||||
|   - FlipperKit/FlipperKitUserDefaultsPlugin (0.75.1): |   - FlipperKit/FlipperKitReactPlugin (0.125.0): | ||||||
|     - FlipperKit/Core |     - FlipperKit/Core | ||||||
|   - FlipperKit/SKIOSNetworkPlugin (0.75.1): |   - FlipperKit/FlipperKitUserDefaultsPlugin (0.125.0): | ||||||
|  |     - FlipperKit/Core | ||||||
|  |   - FlipperKit/SKIOSNetworkPlugin (0.125.0): | ||||||
|     - FlipperKit/Core |     - FlipperKit/Core | ||||||
|     - FlipperKit/FlipperKitNetworkPlugin |     - FlipperKit/FlipperKitNetworkPlugin | ||||||
|  |   - fmt (6.2.1) | ||||||
|   - glog (0.3.5) |   - glog (0.3.5) | ||||||
|   - libevent (2.1.12) |   - libevent (2.1.12) | ||||||
|   - OpenSSL-Universal (1.1.180) |   - OpenSSL-Universal (1.1.1100) | ||||||
|   - RCT-Folly (2020.01.13.00): |   - RCT-Folly (2021.06.28.00-v2): | ||||||
|     - boost-for-react-native |     - boost | ||||||
|  |     - DoubleConversion | ||||||
|  |     - fmt (~> 6.2.1) | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly/Default (= 2021.06.28.00-v2) | ||||||
|  |   - RCT-Folly/Default (2021.06.28.00-v2): | ||||||
|  |     - boost | ||||||
|  |     - DoubleConversion | ||||||
|  |     - fmt (~> 6.2.1) | ||||||
|  |     - glog | ||||||
|  |   - RCTRequired (0.69.3) | ||||||
|  |   - RCTTypeSafety (0.69.3): | ||||||
|  |     - FBLazyVector (= 0.69.3) | ||||||
|  |     - RCTRequired (= 0.69.3) | ||||||
|  |     - React-Core (= 0.69.3) | ||||||
|  |   - React (0.69.3): | ||||||
|  |     - React-Core (= 0.69.3) | ||||||
|  |     - React-Core/DevSupport (= 0.69.3) | ||||||
|  |     - React-Core/RCTWebSocket (= 0.69.3) | ||||||
|  |     - React-RCTActionSheet (= 0.69.3) | ||||||
|  |     - React-RCTAnimation (= 0.69.3) | ||||||
|  |     - React-RCTBlob (= 0.69.3) | ||||||
|  |     - React-RCTImage (= 0.69.3) | ||||||
|  |     - React-RCTLinking (= 0.69.3) | ||||||
|  |     - React-RCTNetwork (= 0.69.3) | ||||||
|  |     - React-RCTSettings (= 0.69.3) | ||||||
|  |     - React-RCTText (= 0.69.3) | ||||||
|  |     - React-RCTVibration (= 0.69.3) | ||||||
|  |   - React-bridging (0.69.3): | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |   - React-callinvoker (0.69.3) | ||||||
|  |   - React-Codegen (0.69.3): | ||||||
|  |     - FBReactNativeSpec (= 0.69.3) | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - RCTRequired (= 0.69.3) | ||||||
|  |     - RCTTypeSafety (= 0.69.3) | ||||||
|  |     - React-Core (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - ReactCommon/turbomodule/core (= 0.69.3) | ||||||
|  |   - React-Core (0.69.3): | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Core/Default (= 0.69.3) | ||||||
|  |     - React-cxxreact (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - Yoga | ||||||
|  |   - React-Core/CoreModulesHeaders (0.69.3): | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Core/Default | ||||||
|  |     - React-cxxreact (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - Yoga | ||||||
|  |   - React-Core/Default (0.69.3): | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-cxxreact (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - Yoga | ||||||
|  |   - React-Core/DevSupport (0.69.3): | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Core/Default (= 0.69.3) | ||||||
|  |     - React-Core/RCTWebSocket (= 0.69.3) | ||||||
|  |     - React-cxxreact (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - React-jsinspector (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - Yoga | ||||||
|  |   - React-Core/RCTActionSheetHeaders (0.69.3): | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Core/Default | ||||||
|  |     - React-cxxreact (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - Yoga | ||||||
|  |   - React-Core/RCTAnimationHeaders (0.69.3): | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Core/Default | ||||||
|  |     - React-cxxreact (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - Yoga | ||||||
|  |   - React-Core/RCTBlobHeaders (0.69.3): | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Core/Default | ||||||
|  |     - React-cxxreact (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - Yoga | ||||||
|  |   - React-Core/RCTImageHeaders (0.69.3): | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Core/Default | ||||||
|  |     - React-cxxreact (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - Yoga | ||||||
|  |   - React-Core/RCTLinkingHeaders (0.69.3): | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Core/Default | ||||||
|  |     - React-cxxreact (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - Yoga | ||||||
|  |   - React-Core/RCTNetworkHeaders (0.69.3): | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Core/Default | ||||||
|  |     - React-cxxreact (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - Yoga | ||||||
|  |   - React-Core/RCTSettingsHeaders (0.69.3): | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Core/Default | ||||||
|  |     - React-cxxreact (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - Yoga | ||||||
|  |   - React-Core/RCTTextHeaders (0.69.3): | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Core/Default | ||||||
|  |     - React-cxxreact (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - Yoga | ||||||
|  |   - React-Core/RCTVibrationHeaders (0.69.3): | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Core/Default | ||||||
|  |     - React-cxxreact (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - Yoga | ||||||
|  |   - React-Core/RCTWebSocket (0.69.3): | ||||||
|  |     - glog | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Core/Default (= 0.69.3) | ||||||
|  |     - React-cxxreact (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsiexecutor (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - Yoga | ||||||
|  |   - React-CoreModules (0.69.3): | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - RCTTypeSafety (= 0.69.3) | ||||||
|  |     - React-Codegen (= 0.69.3) | ||||||
|  |     - React-Core/CoreModulesHeaders (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-RCTImage (= 0.69.3) | ||||||
|  |     - ReactCommon/turbomodule/core (= 0.69.3) | ||||||
|  |   - React-cxxreact (0.69.3): | ||||||
|  |     - boost (= 1.76.0) | ||||||
|     - DoubleConversion |     - DoubleConversion | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly/Default (= 2020.01.13.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|   - RCT-Folly/Default (2020.01.13.00): |     - React-callinvoker (= 0.69.3) | ||||||
|     - boost-for-react-native |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-jsinspector (= 0.69.3) | ||||||
|  |     - React-logger (= 0.69.3) | ||||||
|  |     - React-perflogger (= 0.69.3) | ||||||
|  |     - React-runtimeexecutor (= 0.69.3) | ||||||
|  |   - React-jsi (0.69.3): | ||||||
|  |     - boost (= 1.76.0) | ||||||
|     - DoubleConversion |     - DoubleConversion | ||||||
|     - glog |     - glog | ||||||
|   - RCTRequired (0.64.1) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|   - RCTTypeSafety (0.64.1): |     - React-jsi/Default (= 0.69.3) | ||||||
|     - FBLazyVector (= 0.64.1) |   - React-jsi/Default (0.69.3): | ||||||
|     - RCT-Folly (= 2020.01.13.00) |     - boost (= 1.76.0) | ||||||
|     - RCTRequired (= 0.64.1) |  | ||||||
|     - React-Core (= 0.64.1) |  | ||||||
|   - React (0.64.1): |  | ||||||
|     - React-Core (= 0.64.1) |  | ||||||
|     - React-Core/DevSupport (= 0.64.1) |  | ||||||
|     - React-Core/RCTWebSocket (= 0.64.1) |  | ||||||
|     - React-RCTActionSheet (= 0.64.1) |  | ||||||
|     - React-RCTAnimation (= 0.64.1) |  | ||||||
|     - React-RCTBlob (= 0.64.1) |  | ||||||
|     - React-RCTImage (= 0.64.1) |  | ||||||
|     - React-RCTLinking (= 0.64.1) |  | ||||||
|     - React-RCTNetwork (= 0.64.1) |  | ||||||
|     - React-RCTSettings (= 0.64.1) |  | ||||||
|     - React-RCTText (= 0.64.1) |  | ||||||
|     - React-RCTVibration (= 0.64.1) |  | ||||||
|   - React-callinvoker (0.64.1) |  | ||||||
|   - React-Core (0.64.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/Default (= 0.64.1) |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsiexecutor (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - Yoga |  | ||||||
|   - React-Core/CoreModulesHeaders (0.64.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/Default |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsiexecutor (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - Yoga |  | ||||||
|   - React-Core/Default (0.64.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsiexecutor (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - Yoga |  | ||||||
|   - React-Core/DevSupport (0.64.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/Default (= 0.64.1) |  | ||||||
|     - React-Core/RCTWebSocket (= 0.64.1) |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsiexecutor (= 0.64.1) |  | ||||||
|     - React-jsinspector (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - Yoga |  | ||||||
|   - React-Core/RCTActionSheetHeaders (0.64.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/Default |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsiexecutor (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - Yoga |  | ||||||
|   - React-Core/RCTAnimationHeaders (0.64.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/Default |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsiexecutor (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - Yoga |  | ||||||
|   - React-Core/RCTBlobHeaders (0.64.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/Default |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsiexecutor (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - Yoga |  | ||||||
|   - React-Core/RCTImageHeaders (0.64.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/Default |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsiexecutor (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - Yoga |  | ||||||
|   - React-Core/RCTLinkingHeaders (0.64.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/Default |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsiexecutor (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - Yoga |  | ||||||
|   - React-Core/RCTNetworkHeaders (0.64.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/Default |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsiexecutor (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - Yoga |  | ||||||
|   - React-Core/RCTSettingsHeaders (0.64.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/Default |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsiexecutor (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - Yoga |  | ||||||
|   - React-Core/RCTTextHeaders (0.64.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/Default |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsiexecutor (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - Yoga |  | ||||||
|   - React-Core/RCTVibrationHeaders (0.64.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/Default |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsiexecutor (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - Yoga |  | ||||||
|   - React-Core/RCTWebSocket (0.64.1): |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/Default (= 0.64.1) |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsiexecutor (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - Yoga |  | ||||||
|   - React-CoreModules (0.64.1): |  | ||||||
|     - FBReactNativeSpec (= 0.64.1) |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - RCTTypeSafety (= 0.64.1) |  | ||||||
|     - React-Core/CoreModulesHeaders (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-RCTImage (= 0.64.1) |  | ||||||
|     - ReactCommon/turbomodule/core (= 0.64.1) |  | ||||||
|   - React-cxxreact (0.64.1): |  | ||||||
|     - boost-for-react-native (= 1.63.0) |  | ||||||
|     - DoubleConversion |     - DoubleConversion | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2020.01.13.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-callinvoker (= 0.64.1) |   - React-jsiexecutor (0.69.3): | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-jsinspector (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|     - React-runtimeexecutor (= 0.64.1) |  | ||||||
|   - React-jsi (0.64.1): |  | ||||||
|     - boost-for-react-native (= 1.63.0) |  | ||||||
|     - DoubleConversion |     - DoubleConversion | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2020.01.13.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|     - React-jsi/Default (= 0.64.1) |     - React-cxxreact (= 0.69.3) | ||||||
|   - React-jsi/Default (0.64.1): |     - React-jsi (= 0.69.3) | ||||||
|     - boost-for-react-native (= 1.63.0) |     - React-perflogger (= 0.69.3) | ||||||
|  |   - React-jsinspector (0.69.3) | ||||||
|  |   - React-logger (0.69.3): | ||||||
|  |     - glog | ||||||
|  |   - react-native-alipay (5.0.1): | ||||||
|  |     - React-Core | ||||||
|  |   - React-perflogger (0.69.3) | ||||||
|  |   - React-RCTActionSheet (0.69.3): | ||||||
|  |     - React-Core/RCTActionSheetHeaders (= 0.69.3) | ||||||
|  |   - React-RCTAnimation (0.69.3): | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - RCTTypeSafety (= 0.69.3) | ||||||
|  |     - React-Codegen (= 0.69.3) | ||||||
|  |     - React-Core/RCTAnimationHeaders (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - ReactCommon/turbomodule/core (= 0.69.3) | ||||||
|  |   - React-RCTBlob (0.69.3): | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Codegen (= 0.69.3) | ||||||
|  |     - React-Core/RCTBlobHeaders (= 0.69.3) | ||||||
|  |     - React-Core/RCTWebSocket (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-RCTNetwork (= 0.69.3) | ||||||
|  |     - ReactCommon/turbomodule/core (= 0.69.3) | ||||||
|  |   - React-RCTImage (0.69.3): | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - RCTTypeSafety (= 0.69.3) | ||||||
|  |     - React-Codegen (= 0.69.3) | ||||||
|  |     - React-Core/RCTImageHeaders (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - React-RCTNetwork (= 0.69.3) | ||||||
|  |     - ReactCommon/turbomodule/core (= 0.69.3) | ||||||
|  |   - React-RCTLinking (0.69.3): | ||||||
|  |     - React-Codegen (= 0.69.3) | ||||||
|  |     - React-Core/RCTLinkingHeaders (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - ReactCommon/turbomodule/core (= 0.69.3) | ||||||
|  |   - React-RCTNetwork (0.69.3): | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - RCTTypeSafety (= 0.69.3) | ||||||
|  |     - React-Codegen (= 0.69.3) | ||||||
|  |     - React-Core/RCTNetworkHeaders (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - ReactCommon/turbomodule/core (= 0.69.3) | ||||||
|  |   - React-RCTSettings (0.69.3): | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - RCTTypeSafety (= 0.69.3) | ||||||
|  |     - React-Codegen (= 0.69.3) | ||||||
|  |     - React-Core/RCTSettingsHeaders (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - ReactCommon/turbomodule/core (= 0.69.3) | ||||||
|  |   - React-RCTText (0.69.3): | ||||||
|  |     - React-Core/RCTTextHeaders (= 0.69.3) | ||||||
|  |   - React-RCTVibration (0.69.3): | ||||||
|  |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|  |     - React-Codegen (= 0.69.3) | ||||||
|  |     - React-Core/RCTVibrationHeaders (= 0.69.3) | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |     - ReactCommon/turbomodule/core (= 0.69.3) | ||||||
|  |   - React-runtimeexecutor (0.69.3): | ||||||
|  |     - React-jsi (= 0.69.3) | ||||||
|  |   - ReactCommon/turbomodule/core (0.69.3): | ||||||
|     - DoubleConversion |     - DoubleConversion | ||||||
|     - glog |     - glog | ||||||
|     - RCT-Folly (= 2020.01.13.00) |     - RCT-Folly (= 2021.06.28.00-v2) | ||||||
|   - React-jsiexecutor (0.64.1): |     - React-bridging (= 0.69.3) | ||||||
|     - DoubleConversion |     - React-callinvoker (= 0.69.3) | ||||||
|     - glog |     - React-Core (= 0.69.3) | ||||||
|     - RCT-Folly (= 2020.01.13.00) |     - React-cxxreact (= 0.69.3) | ||||||
|     - React-cxxreact (= 0.64.1) |     - React-jsi (= 0.69.3) | ||||||
|     - React-jsi (= 0.64.1) |     - React-logger (= 0.69.3) | ||||||
|     - React-perflogger (= 0.64.1) |     - React-perflogger (= 0.69.3) | ||||||
|   - React-jsinspector (0.64.1) |   - SocketRocket (0.6.0) | ||||||
|   - React-perflogger (0.64.1) |  | ||||||
|   - React-RCTActionSheet (0.64.1): |  | ||||||
|     - React-Core/RCTActionSheetHeaders (= 0.64.1) |  | ||||||
|   - React-RCTAnimation (0.64.1): |  | ||||||
|     - FBReactNativeSpec (= 0.64.1) |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - RCTTypeSafety (= 0.64.1) |  | ||||||
|     - React-Core/RCTAnimationHeaders (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - ReactCommon/turbomodule/core (= 0.64.1) |  | ||||||
|   - React-RCTBlob (0.64.1): |  | ||||||
|     - FBReactNativeSpec (= 0.64.1) |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/RCTBlobHeaders (= 0.64.1) |  | ||||||
|     - React-Core/RCTWebSocket (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-RCTNetwork (= 0.64.1) |  | ||||||
|     - ReactCommon/turbomodule/core (= 0.64.1) |  | ||||||
|   - React-RCTImage (0.64.1): |  | ||||||
|     - FBReactNativeSpec (= 0.64.1) |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - RCTTypeSafety (= 0.64.1) |  | ||||||
|     - React-Core/RCTImageHeaders (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-RCTNetwork (= 0.64.1) |  | ||||||
|     - ReactCommon/turbomodule/core (= 0.64.1) |  | ||||||
|   - React-RCTLinking (0.64.1): |  | ||||||
|     - FBReactNativeSpec (= 0.64.1) |  | ||||||
|     - React-Core/RCTLinkingHeaders (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - ReactCommon/turbomodule/core (= 0.64.1) |  | ||||||
|   - React-RCTNetwork (0.64.1): |  | ||||||
|     - FBReactNativeSpec (= 0.64.1) |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - RCTTypeSafety (= 0.64.1) |  | ||||||
|     - React-Core/RCTNetworkHeaders (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - ReactCommon/turbomodule/core (= 0.64.1) |  | ||||||
|   - React-RCTSettings (0.64.1): |  | ||||||
|     - FBReactNativeSpec (= 0.64.1) |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - RCTTypeSafety (= 0.64.1) |  | ||||||
|     - React-Core/RCTSettingsHeaders (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - ReactCommon/turbomodule/core (= 0.64.1) |  | ||||||
|   - React-RCTText (0.64.1): |  | ||||||
|     - React-Core/RCTTextHeaders (= 0.64.1) |  | ||||||
|   - React-RCTVibration (0.64.1): |  | ||||||
|     - FBReactNativeSpec (= 0.64.1) |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-Core/RCTVibrationHeaders (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - ReactCommon/turbomodule/core (= 0.64.1) |  | ||||||
|   - React-runtimeexecutor (0.64.1): |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|   - ReactCommon/turbomodule/core (0.64.1): |  | ||||||
|     - DoubleConversion |  | ||||||
|     - glog |  | ||||||
|     - RCT-Folly (= 2020.01.13.00) |  | ||||||
|     - React-callinvoker (= 0.64.1) |  | ||||||
|     - React-Core (= 0.64.1) |  | ||||||
|     - React-cxxreact (= 0.64.1) |  | ||||||
|     - React-jsi (= 0.64.1) |  | ||||||
|     - React-perflogger (= 0.64.1) |  | ||||||
|   - RNAlipay (3.0.0): |  | ||||||
|     - React |  | ||||||
|   - Yoga (1.14.0) |   - Yoga (1.14.0) | ||||||
|   - YogaKit (1.18.1): |   - YogaKit (1.18.1): | ||||||
|     - Yoga (~> 1.14) |     - Yoga (~> 1.14) | ||||||
|  |  | ||||||
| DEPENDENCIES: | DEPENDENCIES: | ||||||
|  |   - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) | ||||||
|   - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) |   - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) | ||||||
|   - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) |   - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) | ||||||
|   - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) |   - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) | ||||||
|   - Flipper (~> 0.75.1) |   - Flipper (= 0.125.0) | ||||||
|   - Flipper-DoubleConversion (= 1.1.7) |   - Flipper-Boost-iOSX (= 1.76.0.1.11) | ||||||
|   - Flipper-Folly (~> 2.5.3) |   - Flipper-DoubleConversion (= 3.2.0.1) | ||||||
|   - Flipper-Glog (= 0.3.6) |   - Flipper-Fmt (= 7.1.7) | ||||||
|   - Flipper-PeerTalk (~> 0.0.4) |   - Flipper-Folly (= 2.6.10) | ||||||
|   - Flipper-RSocket (~> 1.3) |   - Flipper-Glog (= 0.5.0.5) | ||||||
|   - FlipperKit (~> 0.75.1) |   - Flipper-PeerTalk (= 0.0.4) | ||||||
|   - FlipperKit/Core (~> 0.75.1) |   - Flipper-RSocket (= 1.4.3) | ||||||
|   - FlipperKit/CppBridge (~> 0.75.1) |   - FlipperKit (= 0.125.0) | ||||||
|   - FlipperKit/FBCxxFollyDynamicConvert (~> 0.75.1) |   - FlipperKit/Core (= 0.125.0) | ||||||
|   - FlipperKit/FBDefines (~> 0.75.1) |   - FlipperKit/CppBridge (= 0.125.0) | ||||||
|   - FlipperKit/FKPortForwarding (~> 0.75.1) |   - FlipperKit/FBCxxFollyDynamicConvert (= 0.125.0) | ||||||
|   - FlipperKit/FlipperKitHighlightOverlay (~> 0.75.1) |   - FlipperKit/FBDefines (= 0.125.0) | ||||||
|   - FlipperKit/FlipperKitLayoutPlugin (~> 0.75.1) |   - FlipperKit/FKPortForwarding (= 0.125.0) | ||||||
|   - FlipperKit/FlipperKitLayoutTextSearchable (~> 0.75.1) |   - FlipperKit/FlipperKitHighlightOverlay (= 0.125.0) | ||||||
|   - FlipperKit/FlipperKitNetworkPlugin (~> 0.75.1) |   - FlipperKit/FlipperKitLayoutPlugin (= 0.125.0) | ||||||
|   - FlipperKit/FlipperKitReactPlugin (~> 0.75.1) |   - FlipperKit/FlipperKitLayoutTextSearchable (= 0.125.0) | ||||||
|   - FlipperKit/FlipperKitUserDefaultsPlugin (~> 0.75.1) |   - FlipperKit/FlipperKitNetworkPlugin (= 0.125.0) | ||||||
|   - FlipperKit/SKIOSNetworkPlugin (~> 0.75.1) |   - FlipperKit/FlipperKitReactPlugin (= 0.125.0) | ||||||
|  |   - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.125.0) | ||||||
|  |   - FlipperKit/SKIOSNetworkPlugin (= 0.125.0) | ||||||
|   - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) |   - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) | ||||||
|  |   - OpenSSL-Universal (= 1.1.1100) | ||||||
|   - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) |   - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) | ||||||
|   - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) |   - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) | ||||||
|   - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) |   - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) | ||||||
|   - React (from `../node_modules/react-native/`) |   - React (from `../node_modules/react-native/`) | ||||||
|  |   - React-bridging (from `../node_modules/react-native/ReactCommon`) | ||||||
|   - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) |   - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) | ||||||
|  |   - React-Codegen (from `build/generated/ios`) | ||||||
|   - React-Core (from `../node_modules/react-native/`) |   - React-Core (from `../node_modules/react-native/`) | ||||||
|   - React-Core/DevSupport (from `../node_modules/react-native/`) |   - React-Core/DevSupport (from `../node_modules/react-native/`) | ||||||
|   - React-Core/RCTWebSocket (from `../node_modules/react-native/`) |   - React-Core/RCTWebSocket (from `../node_modules/react-native/`) | ||||||
| @@ -359,6 +400,8 @@ DEPENDENCIES: | |||||||
|   - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) |   - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) | ||||||
|   - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) |   - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) | ||||||
|   - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) |   - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) | ||||||
|  |   - React-logger (from `../node_modules/react-native/ReactCommon/logger`) | ||||||
|  |   - react-native-alipay (from `../..`) | ||||||
|   - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) |   - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) | ||||||
|   - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) |   - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) | ||||||
|   - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) |   - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) | ||||||
| @@ -371,25 +414,29 @@ DEPENDENCIES: | |||||||
|   - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) |   - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) | ||||||
|   - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) |   - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) | ||||||
|   - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) |   - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) | ||||||
|   - RNAlipay (from `../../ios`) |  | ||||||
|   - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) |   - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) | ||||||
|  |  | ||||||
| SPEC REPOS: | SPEC REPOS: | ||||||
|   trunk: |   trunk: | ||||||
|     - boost-for-react-native |  | ||||||
|     - CocoaAsyncSocket |     - CocoaAsyncSocket | ||||||
|     - Flipper |     - Flipper | ||||||
|  |     - Flipper-Boost-iOSX | ||||||
|     - Flipper-DoubleConversion |     - Flipper-DoubleConversion | ||||||
|  |     - Flipper-Fmt | ||||||
|     - Flipper-Folly |     - Flipper-Folly | ||||||
|     - Flipper-Glog |     - Flipper-Glog | ||||||
|     - Flipper-PeerTalk |     - Flipper-PeerTalk | ||||||
|     - Flipper-RSocket |     - Flipper-RSocket | ||||||
|     - FlipperKit |     - FlipperKit | ||||||
|  |     - fmt | ||||||
|     - libevent |     - libevent | ||||||
|     - OpenSSL-Universal |     - OpenSSL-Universal | ||||||
|  |     - SocketRocket | ||||||
|     - YogaKit |     - YogaKit | ||||||
|  |  | ||||||
| EXTERNAL SOURCES: | EXTERNAL SOURCES: | ||||||
|  |   boost: | ||||||
|  |     :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" | ||||||
|   DoubleConversion: |   DoubleConversion: | ||||||
|     :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" |     :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" | ||||||
|   FBLazyVector: |   FBLazyVector: | ||||||
| @@ -406,8 +453,12 @@ EXTERNAL SOURCES: | |||||||
|     :path: "../node_modules/react-native/Libraries/TypeSafety" |     :path: "../node_modules/react-native/Libraries/TypeSafety" | ||||||
|   React: |   React: | ||||||
|     :path: "../node_modules/react-native/" |     :path: "../node_modules/react-native/" | ||||||
|  |   React-bridging: | ||||||
|  |     :path: "../node_modules/react-native/ReactCommon" | ||||||
|   React-callinvoker: |   React-callinvoker: | ||||||
|     :path: "../node_modules/react-native/ReactCommon/callinvoker" |     :path: "../node_modules/react-native/ReactCommon/callinvoker" | ||||||
|  |   React-Codegen: | ||||||
|  |     :path: build/generated/ios | ||||||
|   React-Core: |   React-Core: | ||||||
|     :path: "../node_modules/react-native/" |     :path: "../node_modules/react-native/" | ||||||
|   React-CoreModules: |   React-CoreModules: | ||||||
| @@ -420,6 +471,10 @@ EXTERNAL SOURCES: | |||||||
|     :path: "../node_modules/react-native/ReactCommon/jsiexecutor" |     :path: "../node_modules/react-native/ReactCommon/jsiexecutor" | ||||||
|   React-jsinspector: |   React-jsinspector: | ||||||
|     :path: "../node_modules/react-native/ReactCommon/jsinspector" |     :path: "../node_modules/react-native/ReactCommon/jsinspector" | ||||||
|  |   React-logger: | ||||||
|  |     :path: "../node_modules/react-native/ReactCommon/logger" | ||||||
|  |   react-native-alipay: | ||||||
|  |     :path: "../.." | ||||||
|   React-perflogger: |   React-perflogger: | ||||||
|     :path: "../node_modules/react-native/ReactCommon/reactperflogger" |     :path: "../node_modules/react-native/ReactCommon/reactperflogger" | ||||||
|   React-RCTActionSheet: |   React-RCTActionSheet: | ||||||
| @@ -444,54 +499,59 @@ EXTERNAL SOURCES: | |||||||
|     :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" |     :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" | ||||||
|   ReactCommon: |   ReactCommon: | ||||||
|     :path: "../node_modules/react-native/ReactCommon" |     :path: "../node_modules/react-native/ReactCommon" | ||||||
|   RNAlipay: |  | ||||||
|     :path: "../../ios" |  | ||||||
|   Yoga: |   Yoga: | ||||||
|     :path: "../node_modules/react-native/ReactCommon/yoga" |     :path: "../node_modules/react-native/ReactCommon/yoga" | ||||||
|  |  | ||||||
| SPEC CHECKSUMS: | SPEC CHECKSUMS: | ||||||
|   boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c |   boost: a7c83b31436843459a1961bfd74b96033dc77234 | ||||||
|   CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 |   CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 | ||||||
|   DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de |   DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 | ||||||
|   FBLazyVector: 7b423f9e248eae65987838148c36eec1dbfe0b53 |   FBLazyVector: 1d83d91816fa605d16227a83f1b2e71c8df09d22 | ||||||
|   FBReactNativeSpec: c9c2aff959cf4135918e0875384219b998242e4e |   FBReactNativeSpec: 626e35e73f83c637ff166f906d584f4c6750c251 | ||||||
|   Flipper: d3da1aa199aad94455ae725e9f3aa43f3ec17021 |   Flipper: 26fc4b7382499f1281eb8cb921e5c3ad6de91fe0 | ||||||
|   Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 |   Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c | ||||||
|   Flipper-Folly: 755929a4f851b2fb2c347d533a23f191b008554c |   Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30 | ||||||
|   Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6 |   Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b | ||||||
|  |   Flipper-Folly: 584845625005ff068a6ebf41f857f468decd26b3 | ||||||
|  |   Flipper-Glog: 70c50ce58ddaf67dc35180db05f191692570f446 | ||||||
|   Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 |   Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9 | ||||||
|   Flipper-RSocket: 127954abe8b162fcaf68d2134d34dc2bd7076154 |   Flipper-RSocket: d9d9ade67cbecf6ac10730304bf5607266dd2541 | ||||||
|   FlipperKit: 8a20b5c5fcf9436cac58551dc049867247f64b00 |   FlipperKit: cbdee19bdd4e7f05472a66ce290f1b729ba3cb86 | ||||||
|   glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62 |   fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 | ||||||
|  |   glog: 3d02b25ca00c2d456734d0bcff864cbc62f6ae1a | ||||||
|   libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 |   libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 | ||||||
|   OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b |   OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c | ||||||
|   RCT-Folly: ec7a233ccc97cc556cf7237f0db1ff65b986f27c |   RCT-Folly: b9d9fe1fc70114b751c076104e52f3b1b5e5a95a | ||||||
|   RCTRequired: ec2ebc96b7bfba3ca5c32740f5a0c6a014a274d2 |   RCTRequired: 66822c147facf02f7774af99825e0a31e39df42e | ||||||
|   RCTTypeSafety: 22567f31e67c3e088c7ac23ea46ab6d4779c0ea5 |   RCTTypeSafety: 309306c4e711b14a83c55c2816a6cc490ec19827 | ||||||
|   React: a241e3dbb1e91d06332f1dbd2b3ab26e1a4c4b9d |   React: a779632422a918b26db4f1b57225a41c14d20525 | ||||||
|   React-callinvoker: da4d1c6141696a00163960906bc8a55b985e4ce4 |   React-bridging: 96055aa45f0417898d7833e251f4ae79d28acef7 | ||||||
|   React-Core: 46ba164c437d7dac607b470c83c8308b05799748 |   React-callinvoker: 02df4d620df286381ff3f99180fb24feceaf01cc | ||||||
|   React-CoreModules: 217bd14904491c7b9940ff8b34a3fe08013c2f14 |   React-Codegen: 06613a5e753c3af2dca0d6e7dd02944a3d77c3f6 | ||||||
|   React-cxxreact: 0090588ae6660c4615d3629fdd5c768d0983add4 |   React-Core: 638d54d64048aa635e7c583fb0d8425206f446b4 | ||||||
|   React-jsi: 5de8204706bd872b78ea646aee5d2561ca1214b6 |   React-CoreModules: f706ec2a1939387517cadc6ce0d2ef0f20fccb53 | ||||||
|   React-jsiexecutor: 124e8f99992490d0d13e0649d950d3e1aae06fe9 |   React-cxxreact: ec183b7f6fec01e7167f38c1c64a03f68dca7fb2 | ||||||
|   React-jsinspector: 500a59626037be5b3b3d89c5151bc3baa9abf1a9 |   React-jsi: ed7dc77f5193dca9c73cec90bfec409e7ddfe401 | ||||||
|   React-perflogger: aad6d4b4a267936b3667260d1f649b6f6069a675 |   React-jsiexecutor: 1842ca163b160aeb224d2c65b2a60c393b273c67 | ||||||
|   React-RCTActionSheet: fc376be462c9c8d6ad82c0905442fd77f82a9d2a |   React-jsinspector: bb2605f98aada5d81f3494690da3ef3b4ff3b716 | ||||||
|   React-RCTAnimation: ba0a1c3a2738be224a08092fa7f1b444ab77d309 |   React-logger: 23a50ef4c18bf9adbb51e2c979318e6b3a2e44a1 | ||||||
|   React-RCTBlob: f758d4403fc5828a326dc69e27b41e1a92f34947 |   react-native-alipay: 537db53cb2de98353e623a60ca0402de37264314 | ||||||
|   React-RCTImage: ce57088705f4a8d03f6594b066a59c29143ba73e |   React-perflogger: 39d2ba8cbcac54d1bb1d9a980dab348e96aef467 | ||||||
|   React-RCTLinking: 852a3a95c65fa63f657a4b4e2d3d83a815e00a7c |   React-RCTActionSheet: b1ad907a2c8f8e4d037148ca507b7f2d6ab1c66d | ||||||
|   React-RCTNetwork: 9d7ccb8a08d522d71700b4fb677d9fa28cccd118 |   React-RCTAnimation: 914a9ba46fb6e7376f7709c7ce825d53b47ca2ee | ||||||
|   React-RCTSettings: d8aaf4389ff06114dee8c42ef5f0f2915946011e |   React-RCTBlob: de62fd5edc5c36951f0b113bf252eb43b7131f79 | ||||||
|   React-RCTText: 809c12ed6b261796ba056c04fcd20d8b90bcc81d |   React-RCTImage: aa0749a8d748b34942c7e71ac5d9f42be8b70cf3 | ||||||
|   React-RCTVibration: 4b99a7f5c6c0abbc5256410cc5425fb8531986e1 |   React-RCTLinking: 595a9f8fbf4d6634bff28d1175b3523b61466612 | ||||||
|   React-runtimeexecutor: ff951a0c241bfaefc4940a3f1f1a229e7cb32fa6 |   React-RCTNetwork: 0559fd0fccb01f89c638baa43c8d185dc8008626 | ||||||
|   ReactCommon: bedc99ed4dae329c4fcf128d0c31b9115e5365ca |   React-RCTSettings: 8e492a25a62f1ef6323f82ce652ae87fa59c82ca | ||||||
|   RNAlipay: e9567310da367fda84803b006d623355f91e2ecb |   React-RCTText: 17457cde6ef8832ba43c886baebb6627c5d7ed18 | ||||||
|   Yoga: a7de31c64fe738607e7a3803e3f591a4b1df7393 |   React-RCTVibration: dd8099eb46e9cee4692934bc8cbe5e9a4f5e8d31 | ||||||
|  |   React-runtimeexecutor: 607eb048e22a16388c908ee1f6644200e8d1e19b | ||||||
|  |   ReactCommon: af7636436b382db7cde4583bbd642f0978e6e3ed | ||||||
|  |   SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608 | ||||||
|  |   Yoga: 44c64131616253fa83366295acdbce3d14926041 | ||||||
|   YogaKit: f782866e155069a2cca2517aafea43200b01fd5a |   YogaKit: f782866e155069a2cca2517aafea43200b01fd5a | ||||||
|  |  | ||||||
| PODFILE CHECKSUM: 311cf87a4a33d759b7ec994ec3735e03d4ededbf | PODFILE CHECKSUM: d86e66c2874689cd5ab998282245ad4757a12721 | ||||||
|  |  | ||||||
| COCOAPODS: 1.10.1 | COCOAPODS: 1.11.3 | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								example/ios/_xcode.env
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								example/ios/_xcode.env
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | # This `.xcode.env` file is versioned and is used to source the environment | ||||||
|  | # used when running script phases inside Xcode. | ||||||
|  | # To customize your local environment, you can create an `.xcode.env.local` | ||||||
|  | # file that is not versioned. | ||||||
|  |  | ||||||
|  | # NODE_BINARY variable contains the PATH to the node executable. | ||||||
|  | # | ||||||
|  | # Customize the NODE_BINARY variable here. | ||||||
|  | # For example, to use nvm with brew, add the following line | ||||||
|  | # . "$(brew --prefix nvm)/nvm.sh" --no-use | ||||||
|  | export NODE_BINARY=$(command -v node) | ||||||
| @@ -3,23 +3,17 @@ | |||||||
| 	archiveVersion = 1; | 	archiveVersion = 1; | ||||||
| 	classes = { | 	classes = { | ||||||
| 	}; | 	}; | ||||||
| 	objectVersion = 46; | 	objectVersion = 54; | ||||||
| 	objects = { | 	objects = { | ||||||
|  |  | ||||||
| /* Begin PBXBuildFile section */ | /* Begin PBXBuildFile section */ | ||||||
| 		00E356F31AD99517003FC87E /* exampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* exampleTests.m */; }; | 		00E356F31AD99517003FC87E /* exampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* exampleTests.m */; }; | ||||||
| 		13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; | 		13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; | ||||||
| 		13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; | 		13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; | ||||||
| 		13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; | 		13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; | ||||||
| 		166A04BA6220347FC21E544F /* libPods-example-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D1345F408D2B4CC473BDD31 /* libPods-example-tvOSTests.a */; }; |  | ||||||
| 		299EB34004C7BB9816739ACD /* libPods-example-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 590A896F64AEF5BE0BA82AE6 /* libPods-example-tvOS.a */; }; |  | ||||||
| 		2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; |  | ||||||
| 		2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; |  | ||||||
| 		2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; |  | ||||||
| 		2DCD954D1E0B4F2C00145EB5 /* exampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* exampleTests.m */; }; |  | ||||||
| 		81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; | 		81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; | ||||||
| 		B43A9FCB297F5ADEBAE05610 /* libPods-example-exampleTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E2A18E037E9C84A7BB27DC53 /* libPods-example-exampleTests.a */; }; | 		A7FE8757B0253CD7589FAE91 /* libPods-example-exampleTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EA82C6C904106EC5FAA7FB7 /* libPods-example-exampleTests.a */; }; | ||||||
| 		B797AA4AA11F6AA572464F4C /* libPods-example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E72E26DA430591188989969 /* libPods-example.a */; }; | 		FEB6C514CC3F61A37F24B98C /* libPods-example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 808F513FAF96DAD039E92222 /* libPods-example.a */; }; | ||||||
| /* End PBXBuildFile section */ | /* End PBXBuildFile section */ | ||||||
|  |  | ||||||
| /* Begin PBXContainerItemProxy section */ | /* Begin PBXContainerItemProxy section */ | ||||||
| @@ -30,43 +24,27 @@ | |||||||
| 			remoteGlobalIDString = 13B07F861A680F5B00A75B9A; | 			remoteGlobalIDString = 13B07F861A680F5B00A75B9A; | ||||||
| 			remoteInfo = example; | 			remoteInfo = example; | ||||||
| 		}; | 		}; | ||||||
| 		2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = { |  | ||||||
| 			isa = PBXContainerItemProxy; |  | ||||||
| 			containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; |  | ||||||
| 			proxyType = 1; |  | ||||||
| 			remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7; |  | ||||||
| 			remoteInfo = "example-tvOS"; |  | ||||||
| 		}; |  | ||||||
| /* End PBXContainerItemProxy section */ | /* End PBXContainerItemProxy section */ | ||||||
|  |  | ||||||
| /* Begin PBXFileReference section */ | /* Begin PBXFileReference section */ | ||||||
| 		008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; }; |  | ||||||
| 		00E356EE1AD99517003FC87E /* exampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = exampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; | 		00E356EE1AD99517003FC87E /* exampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = exampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||||
| 		00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | 		00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | ||||||
| 		00E356F21AD99517003FC87E /* exampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exampleTests.m; sourceTree = "<group>"; }; | 		00E356F21AD99517003FC87E /* exampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = exampleTests.m; sourceTree = "<group>"; }; | ||||||
|  | 		0350257FC9F65E85689797E3 /* Pods-example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example.debug.xcconfig"; path = "Target Support Files/Pods-example/Pods-example.debug.xcconfig"; sourceTree = "<group>"; }; | ||||||
| 		13B07F961A680F5B00A75B9A /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; }; | 		13B07F961A680F5B00A75B9A /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||||
| 		13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = example/AppDelegate.h; sourceTree = "<group>"; }; | 		13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = example/AppDelegate.h; sourceTree = "<group>"; }; | ||||||
| 		13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = example/AppDelegate.m; sourceTree = "<group>"; }; | 		13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = example/AppDelegate.mm; sourceTree = "<group>"; }; | ||||||
| 		13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = example/Images.xcassets; sourceTree = "<group>"; }; | 		13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = example/Images.xcassets; sourceTree = "<group>"; }; | ||||||
| 		13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = example/Info.plist; sourceTree = "<group>"; }; | 		13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = example/Info.plist; sourceTree = "<group>"; }; | ||||||
| 		13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = example/main.m; sourceTree = "<group>"; }; | 		13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = example/main.m; sourceTree = "<group>"; }; | ||||||
| 		2081385A299935CC32AA9B09 /* Pods-example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example.release.xcconfig"; path = "Target Support Files/Pods-example/Pods-example.release.xcconfig"; sourceTree = "<group>"; }; | 		1EA82C6C904106EC5FAA7FB7 /* libPods-example-exampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-example-exampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||||
| 		20A584C7D03A552ACABD9285 /* Pods-example-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example-tvOS.release.xcconfig"; path = "Target Support Files/Pods-example-tvOS/Pods-example-tvOS.release.xcconfig"; sourceTree = "<group>"; }; | 		703716FB709265C05CB09BD9 /* Pods-example-exampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example-exampleTests.debug.xcconfig"; path = "Target Support Files/Pods-example-exampleTests/Pods-example-exampleTests.debug.xcconfig"; sourceTree = "<group>"; }; | ||||||
| 		2D02E47B1E0B4A5D006451C7 /* example-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "example-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; | 		7DE1E4D0289E49B200722D10 /* libreact-native-alipay.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = "libreact-native-alipay.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||||
| 		2D02E4901E0B4A5D006451C7 /* example-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "example-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; | 		808F513FAF96DAD039E92222 /* libPods-example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-example.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||||
| 		2EC89C0F73C6544603C503FB /* Pods-example-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-example-tvOS/Pods-example-tvOS.debug.xcconfig"; sourceTree = "<group>"; }; |  | ||||||
| 		3112D26F5BD29566FE2D3C34 /* Pods-example-exampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example-exampleTests.debug.xcconfig"; path = "Target Support Files/Pods-example-exampleTests/Pods-example-exampleTests.debug.xcconfig"; sourceTree = "<group>"; }; |  | ||||||
| 		490CB7FA8A6961A60BA42F15 /* Pods-example-tvOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example-tvOSTests.debug.xcconfig"; path = "Target Support Files/Pods-example-tvOSTests/Pods-example-tvOSTests.debug.xcconfig"; sourceTree = "<group>"; }; |  | ||||||
| 		590A896F64AEF5BE0BA82AE6 /* libPods-example-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-example-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; |  | ||||||
| 		5D1345F408D2B4CC473BDD31 /* libPods-example-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-example-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; |  | ||||||
| 		7E72E26DA430591188989969 /* libPods-example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-example.a"; sourceTree = BUILT_PRODUCTS_DIR; }; |  | ||||||
| 		81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = example/LaunchScreen.storyboard; sourceTree = "<group>"; }; | 		81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = example/LaunchScreen.storyboard; sourceTree = "<group>"; }; | ||||||
| 		AB59210E912C1284334F9D09 /* Pods-example-tvOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example-tvOSTests.release.xcconfig"; path = "Target Support Files/Pods-example-tvOSTests/Pods-example-tvOSTests.release.xcconfig"; sourceTree = "<group>"; }; | 		985BE54A6B9DC27AFEEB2892 /* Pods-example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example.release.xcconfig"; path = "Target Support Files/Pods-example/Pods-example.release.xcconfig"; sourceTree = "<group>"; }; | ||||||
| 		DD6F9EF734BCAB0C40828BDE /* Pods-example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example.debug.xcconfig"; path = "Target Support Files/Pods-example/Pods-example.debug.xcconfig"; sourceTree = "<group>"; }; | 		C8734EACFAE9EEF4378FA714 /* Pods-example-exampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example-exampleTests.release.xcconfig"; path = "Target Support Files/Pods-example-exampleTests/Pods-example-exampleTests.release.xcconfig"; sourceTree = "<group>"; }; | ||||||
| 		E2A18E037E9C84A7BB27DC53 /* libPods-example-exampleTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-example-exampleTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; |  | ||||||
| 		E4C3E66F330A0A318B7500EF /* Pods-example-exampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example-exampleTests.release.xcconfig"; path = "Target Support Files/Pods-example-exampleTests/Pods-example-exampleTests.release.xcconfig"; sourceTree = "<group>"; }; |  | ||||||
| 		ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; | 		ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; | ||||||
| 		ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; |  | ||||||
| /* End PBXFileReference section */ | /* End PBXFileReference section */ | ||||||
|  |  | ||||||
| /* Begin PBXFrameworksBuildPhase section */ | /* Begin PBXFrameworksBuildPhase section */ | ||||||
| @@ -74,7 +52,7 @@ | |||||||
| 			isa = PBXFrameworksBuildPhase; | 			isa = PBXFrameworksBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
| 				B43A9FCB297F5ADEBAE05610 /* libPods-example-exampleTests.a in Frameworks */, | 				A7FE8757B0253CD7589FAE91 /* libPods-example-exampleTests.a in Frameworks */, | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 		}; | 		}; | ||||||
| @@ -82,23 +60,7 @@ | |||||||
| 			isa = PBXFrameworksBuildPhase; | 			isa = PBXFrameworksBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
| 				B797AA4AA11F6AA572464F4C /* libPods-example.a in Frameworks */, | 				FEB6C514CC3F61A37F24B98C /* libPods-example.a in Frameworks */, | ||||||
| 			); |  | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; |  | ||||||
| 		}; |  | ||||||
| 		2D02E4781E0B4A5D006451C7 /* Frameworks */ = { |  | ||||||
| 			isa = PBXFrameworksBuildPhase; |  | ||||||
| 			buildActionMask = 2147483647; |  | ||||||
| 			files = ( |  | ||||||
| 				299EB34004C7BB9816739ACD /* libPods-example-tvOS.a in Frameworks */, |  | ||||||
| 			); |  | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; |  | ||||||
| 		}; |  | ||||||
| 		2D02E48D1E0B4A5D006451C7 /* Frameworks */ = { |  | ||||||
| 			isa = PBXFrameworksBuildPhase; |  | ||||||
| 			buildActionMask = 2147483647; |  | ||||||
| 			files = ( |  | ||||||
| 				166A04BA6220347FC21E544F /* libPods-example-tvOSTests.a in Frameworks */, |  | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 		}; | 		}; | ||||||
| @@ -125,9 +87,8 @@ | |||||||
| 		13B07FAE1A68108700A75B9A /* example */ = { | 		13B07FAE1A68108700A75B9A /* example */ = { | ||||||
| 			isa = PBXGroup; | 			isa = PBXGroup; | ||||||
| 			children = ( | 			children = ( | ||||||
| 				008F07F21AC5B25A0029DE68 /* main.jsbundle */, |  | ||||||
| 				13B07FAF1A68108700A75B9A /* AppDelegate.h */, | 				13B07FAF1A68108700A75B9A /* AppDelegate.h */, | ||||||
| 				13B07FB01A68108700A75B9A /* AppDelegate.m */, | 				13B07FB01A68108700A75B9A /* AppDelegate.mm */, | ||||||
| 				13B07FB51A68108700A75B9A /* Images.xcassets */, | 				13B07FB51A68108700A75B9A /* Images.xcassets */, | ||||||
| 				13B07FB61A68108700A75B9A /* Info.plist */, | 				13B07FB61A68108700A75B9A /* Info.plist */, | ||||||
| 				81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, | 				81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, | ||||||
| @@ -139,31 +100,14 @@ | |||||||
| 		2D16E6871FA4F8E400B85C8A /* Frameworks */ = { | 		2D16E6871FA4F8E400B85C8A /* Frameworks */ = { | ||||||
| 			isa = PBXGroup; | 			isa = PBXGroup; | ||||||
| 			children = ( | 			children = ( | ||||||
|  | 				7DE1E4D0289E49B200722D10 /* libreact-native-alipay.a */, | ||||||
| 				ED297162215061F000B7C4FE /* JavaScriptCore.framework */, | 				ED297162215061F000B7C4FE /* JavaScriptCore.framework */, | ||||||
| 				ED2971642150620600B7C4FE /* JavaScriptCore.framework */, | 				808F513FAF96DAD039E92222 /* libPods-example.a */, | ||||||
| 				7E72E26DA430591188989969 /* libPods-example.a */, | 				1EA82C6C904106EC5FAA7FB7 /* libPods-example-exampleTests.a */, | ||||||
| 				E2A18E037E9C84A7BB27DC53 /* libPods-example-exampleTests.a */, |  | ||||||
| 				590A896F64AEF5BE0BA82AE6 /* libPods-example-tvOS.a */, |  | ||||||
| 				5D1345F408D2B4CC473BDD31 /* libPods-example-tvOSTests.a */, |  | ||||||
| 			); | 			); | ||||||
| 			name = Frameworks; | 			name = Frameworks; | ||||||
| 			sourceTree = "<group>"; | 			sourceTree = "<group>"; | ||||||
| 		}; | 		}; | ||||||
| 		30CA004F154142FC3469EC71 /* Pods */ = { |  | ||||||
| 			isa = PBXGroup; |  | ||||||
| 			children = ( |  | ||||||
| 				DD6F9EF734BCAB0C40828BDE /* Pods-example.debug.xcconfig */, |  | ||||||
| 				2081385A299935CC32AA9B09 /* Pods-example.release.xcconfig */, |  | ||||||
| 				3112D26F5BD29566FE2D3C34 /* Pods-example-exampleTests.debug.xcconfig */, |  | ||||||
| 				E4C3E66F330A0A318B7500EF /* Pods-example-exampleTests.release.xcconfig */, |  | ||||||
| 				2EC89C0F73C6544603C503FB /* Pods-example-tvOS.debug.xcconfig */, |  | ||||||
| 				20A584C7D03A552ACABD9285 /* Pods-example-tvOS.release.xcconfig */, |  | ||||||
| 				490CB7FA8A6961A60BA42F15 /* Pods-example-tvOSTests.debug.xcconfig */, |  | ||||||
| 				AB59210E912C1284334F9D09 /* Pods-example-tvOSTests.release.xcconfig */, |  | ||||||
| 			); |  | ||||||
| 			path = Pods; |  | ||||||
| 			sourceTree = "<group>"; |  | ||||||
| 		}; |  | ||||||
| 		832341AE1AAA6A7D00B99B32 /* Libraries */ = { | 		832341AE1AAA6A7D00B99B32 /* Libraries */ = { | ||||||
| 			isa = PBXGroup; | 			isa = PBXGroup; | ||||||
| 			children = ( | 			children = ( | ||||||
| @@ -179,7 +123,7 @@ | |||||||
| 				00E356EF1AD99517003FC87E /* exampleTests */, | 				00E356EF1AD99517003FC87E /* exampleTests */, | ||||||
| 				83CBBA001A601CBA00E9B192 /* Products */, | 				83CBBA001A601CBA00E9B192 /* Products */, | ||||||
| 				2D16E6871FA4F8E400B85C8A /* Frameworks */, | 				2D16E6871FA4F8E400B85C8A /* Frameworks */, | ||||||
| 				30CA004F154142FC3469EC71 /* Pods */, | 				BBD78D7AC51CEA395F1C20DB /* Pods */, | ||||||
| 			); | 			); | ||||||
| 			indentWidth = 2; | 			indentWidth = 2; | ||||||
| 			sourceTree = "<group>"; | 			sourceTree = "<group>"; | ||||||
| @@ -191,12 +135,21 @@ | |||||||
| 			children = ( | 			children = ( | ||||||
| 				13B07F961A680F5B00A75B9A /* example.app */, | 				13B07F961A680F5B00A75B9A /* example.app */, | ||||||
| 				00E356EE1AD99517003FC87E /* exampleTests.xctest */, | 				00E356EE1AD99517003FC87E /* exampleTests.xctest */, | ||||||
| 				2D02E47B1E0B4A5D006451C7 /* example-tvOS.app */, |  | ||||||
| 				2D02E4901E0B4A5D006451C7 /* example-tvOSTests.xctest */, |  | ||||||
| 			); | 			); | ||||||
| 			name = Products; | 			name = Products; | ||||||
| 			sourceTree = "<group>"; | 			sourceTree = "<group>"; | ||||||
| 		}; | 		}; | ||||||
|  | 		BBD78D7AC51CEA395F1C20DB /* Pods */ = { | ||||||
|  | 			isa = PBXGroup; | ||||||
|  | 			children = ( | ||||||
|  | 				0350257FC9F65E85689797E3 /* Pods-example.debug.xcconfig */, | ||||||
|  | 				985BE54A6B9DC27AFEEB2892 /* Pods-example.release.xcconfig */, | ||||||
|  | 				703716FB709265C05CB09BD9 /* Pods-example-exampleTests.debug.xcconfig */, | ||||||
|  | 				C8734EACFAE9EEF4378FA714 /* Pods-example-exampleTests.release.xcconfig */, | ||||||
|  | 			); | ||||||
|  | 			path = Pods; | ||||||
|  | 			sourceTree = "<group>"; | ||||||
|  | 		}; | ||||||
| /* End PBXGroup section */ | /* End PBXGroup section */ | ||||||
|  |  | ||||||
| /* Begin PBXNativeTarget section */ | /* Begin PBXNativeTarget section */ | ||||||
| @@ -204,12 +157,12 @@ | |||||||
| 			isa = PBXNativeTarget; | 			isa = PBXNativeTarget; | ||||||
| 			buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "exampleTests" */; | 			buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "exampleTests" */; | ||||||
| 			buildPhases = ( | 			buildPhases = ( | ||||||
| 				91ABE0B4BA5FED08F42D024D /* [CP] Check Pods Manifest.lock */, | 				1C053A4030B389C2BE4E29E6 /* [CP] Check Pods Manifest.lock */, | ||||||
| 				00E356EA1AD99517003FC87E /* Sources */, | 				00E356EA1AD99517003FC87E /* Sources */, | ||||||
| 				00E356EB1AD99517003FC87E /* Frameworks */, | 				00E356EB1AD99517003FC87E /* Frameworks */, | ||||||
| 				00E356EC1AD99517003FC87E /* Resources */, | 				00E356EC1AD99517003FC87E /* Resources */, | ||||||
| 				6696EF002299B1AEDFE56CA9 /* [CP] Copy Pods Resources */, | 				B01DCDA8C5A673A48FDAE04B /* [CP] Embed Pods Frameworks */, | ||||||
| 				122FE8C96421AF1E94C5E4E7 /* [CP] Embed Pods Frameworks */, | 				033831B975B87C321F0A778A /* [CP] Copy Pods Resources */, | ||||||
| 			); | 			); | ||||||
| 			buildRules = ( | 			buildRules = ( | ||||||
| 			); | 			); | ||||||
| @@ -225,14 +178,14 @@ | |||||||
| 			isa = PBXNativeTarget; | 			isa = PBXNativeTarget; | ||||||
| 			buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "example" */; | 			buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "example" */; | ||||||
| 			buildPhases = ( | 			buildPhases = ( | ||||||
| 				3600CD3732F17F57FACE808E /* [CP] Check Pods Manifest.lock */, | 				79883C92EACAE849F236F5E6 /* [CP] Check Pods Manifest.lock */, | ||||||
| 				FD10A7F022414F080027D42C /* Start Packager */, | 				FD10A7F022414F080027D42C /* Start Packager */, | ||||||
| 				13B07F871A680F5B00A75B9A /* Sources */, | 				13B07F871A680F5B00A75B9A /* Sources */, | ||||||
| 				13B07F8C1A680F5B00A75B9A /* Frameworks */, | 				13B07F8C1A680F5B00A75B9A /* Frameworks */, | ||||||
| 				13B07F8E1A680F5B00A75B9A /* Resources */, | 				13B07F8E1A680F5B00A75B9A /* Resources */, | ||||||
| 				00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, | 				00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, | ||||||
| 				C625F15ADC9C74A909EFD89C /* [CP] Copy Pods Resources */, | 				E86EC3E356E887B4CD97AFA8 /* [CP] Embed Pods Frameworks */, | ||||||
| 				90320E83E82CBFD892893550 /* [CP] Embed Pods Frameworks */, | 				5021B8CA64705AEB85BC9B7C /* [CP] Copy Pods Resources */, | ||||||
| 			); | 			); | ||||||
| 			buildRules = ( | 			buildRules = ( | ||||||
| 			); | 			); | ||||||
| @@ -243,74 +196,25 @@ | |||||||
| 			productReference = 13B07F961A680F5B00A75B9A /* example.app */; | 			productReference = 13B07F961A680F5B00A75B9A /* example.app */; | ||||||
| 			productType = "com.apple.product-type.application"; | 			productType = "com.apple.product-type.application"; | ||||||
| 		}; | 		}; | ||||||
| 		2D02E47A1E0B4A5D006451C7 /* example-tvOS */ = { |  | ||||||
| 			isa = PBXNativeTarget; |  | ||||||
| 			buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "example-tvOS" */; |  | ||||||
| 			buildPhases = ( |  | ||||||
| 				D22CB2D564E998DFA7932D33 /* [CP] Check Pods Manifest.lock */, |  | ||||||
| 				FD10A7F122414F3F0027D42C /* Start Packager */, |  | ||||||
| 				2D02E4771E0B4A5D006451C7 /* Sources */, |  | ||||||
| 				2D02E4781E0B4A5D006451C7 /* Frameworks */, |  | ||||||
| 				2D02E4791E0B4A5D006451C7 /* Resources */, |  | ||||||
| 				2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */, |  | ||||||
| 			); |  | ||||||
| 			buildRules = ( |  | ||||||
| 			); |  | ||||||
| 			dependencies = ( |  | ||||||
| 			); |  | ||||||
| 			name = "example-tvOS"; |  | ||||||
| 			productName = "example-tvOS"; |  | ||||||
| 			productReference = 2D02E47B1E0B4A5D006451C7 /* example-tvOS.app */; |  | ||||||
| 			productType = "com.apple.product-type.application"; |  | ||||||
| 		}; |  | ||||||
| 		2D02E48F1E0B4A5D006451C7 /* example-tvOSTests */ = { |  | ||||||
| 			isa = PBXNativeTarget; |  | ||||||
| 			buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "example-tvOSTests" */; |  | ||||||
| 			buildPhases = ( |  | ||||||
| 				4E6C362E6E1079E72F150C7A /* [CP] Check Pods Manifest.lock */, |  | ||||||
| 				2D02E48C1E0B4A5D006451C7 /* Sources */, |  | ||||||
| 				2D02E48D1E0B4A5D006451C7 /* Frameworks */, |  | ||||||
| 				2D02E48E1E0B4A5D006451C7 /* Resources */, |  | ||||||
| 			); |  | ||||||
| 			buildRules = ( |  | ||||||
| 			); |  | ||||||
| 			dependencies = ( |  | ||||||
| 				2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */, |  | ||||||
| 			); |  | ||||||
| 			name = "example-tvOSTests"; |  | ||||||
| 			productName = "example-tvOSTests"; |  | ||||||
| 			productReference = 2D02E4901E0B4A5D006451C7 /* example-tvOSTests.xctest */; |  | ||||||
| 			productType = "com.apple.product-type.bundle.unit-test"; |  | ||||||
| 		}; |  | ||||||
| /* End PBXNativeTarget section */ | /* End PBXNativeTarget section */ | ||||||
|  |  | ||||||
| /* Begin PBXProject section */ | /* Begin PBXProject section */ | ||||||
| 		83CBB9F71A601CBA00E9B192 /* Project object */ = { | 		83CBB9F71A601CBA00E9B192 /* Project object */ = { | ||||||
| 			isa = PBXProject; | 			isa = PBXProject; | ||||||
| 			attributes = { | 			attributes = { | ||||||
| 				LastUpgradeCheck = 1130; | 				LastUpgradeCheck = 1210; | ||||||
| 				TargetAttributes = { | 				TargetAttributes = { | ||||||
| 					00E356ED1AD99517003FC87E = { | 					00E356ED1AD99517003FC87E = { | ||||||
| 						CreatedOnToolsVersion = 6.2; | 						CreatedOnToolsVersion = 6.2; | ||||||
| 						TestTargetID = 13B07F861A680F5B00A75B9A; | 						TestTargetID = 13B07F861A680F5B00A75B9A; | ||||||
| 					}; | 					}; | ||||||
| 					13B07F861A680F5B00A75B9A = { | 					13B07F861A680F5B00A75B9A = { | ||||||
| 						DevelopmentTeam = 968DSZ49MT; |  | ||||||
| 						LastSwiftMigration = 1120; | 						LastSwiftMigration = 1120; | ||||||
| 					}; | 					}; | ||||||
| 					2D02E47A1E0B4A5D006451C7 = { |  | ||||||
| 						CreatedOnToolsVersion = 8.2.1; |  | ||||||
| 						ProvisioningStyle = Automatic; |  | ||||||
| 					}; |  | ||||||
| 					2D02E48F1E0B4A5D006451C7 = { |  | ||||||
| 						CreatedOnToolsVersion = 8.2.1; |  | ||||||
| 						ProvisioningStyle = Automatic; |  | ||||||
| 						TestTargetID = 2D02E47A1E0B4A5D006451C7; |  | ||||||
| 					}; |  | ||||||
| 				}; | 				}; | ||||||
| 			}; | 			}; | ||||||
| 			buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */; | 			buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */; | ||||||
| 			compatibilityVersion = "Xcode 3.2"; | 			compatibilityVersion = "Xcode 12.0"; | ||||||
| 			developmentRegion = en; | 			developmentRegion = en; | ||||||
| 			hasScannedForEncodings = 0; | 			hasScannedForEncodings = 0; | ||||||
| 			knownRegions = ( | 			knownRegions = ( | ||||||
| @@ -324,8 +228,6 @@ | |||||||
| 			targets = ( | 			targets = ( | ||||||
| 				13B07F861A680F5B00A75B9A /* example */, | 				13B07F861A680F5B00A75B9A /* example */, | ||||||
| 				00E356ED1AD99517003FC87E /* exampleTests */, | 				00E356ED1AD99517003FC87E /* exampleTests */, | ||||||
| 				2D02E47A1E0B4A5D006451C7 /* example-tvOS */, |  | ||||||
| 				2D02E48F1E0B4A5D006451C7 /* example-tvOSTests */, |  | ||||||
| 			); | 			); | ||||||
| 		}; | 		}; | ||||||
| /* End PBXProject section */ | /* End PBXProject section */ | ||||||
| @@ -347,21 +249,6 @@ | |||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 		}; | 		}; | ||||||
| 		2D02E4791E0B4A5D006451C7 /* Resources */ = { |  | ||||||
| 			isa = PBXResourcesBuildPhase; |  | ||||||
| 			buildActionMask = 2147483647; |  | ||||||
| 			files = ( |  | ||||||
| 				2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */, |  | ||||||
| 			); |  | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; |  | ||||||
| 		}; |  | ||||||
| 		2D02E48E1E0B4A5D006451C7 /* Resources */ = { |  | ||||||
| 			isa = PBXResourcesBuildPhase; |  | ||||||
| 			buildActionMask = 2147483647; |  | ||||||
| 			files = ( |  | ||||||
| 			); |  | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; |  | ||||||
| 		}; |  | ||||||
| /* End PBXResourcesBuildPhase section */ | /* End PBXResourcesBuildPhase section */ | ||||||
|  |  | ||||||
| /* Begin PBXShellScriptBuildPhase section */ | /* Begin PBXShellScriptBuildPhase section */ | ||||||
| @@ -371,129 +258,34 @@ | |||||||
| 			files = ( | 			files = ( | ||||||
| 			); | 			); | ||||||
| 			inputPaths = ( | 			inputPaths = ( | ||||||
|  | 				"$(SRCROOT)/.xcode.env.local", | ||||||
|  | 				"$(SRCROOT)/.xcode.env", | ||||||
| 			); | 			); | ||||||
| 			name = "Bundle React Native code and images"; | 			name = "Bundle React Native code and images"; | ||||||
| 			outputPaths = ( | 			outputPaths = ( | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 			shellPath = /bin/sh; | 			shellPath = /bin/sh; | ||||||
| 			shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.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"; | ||||||
| 		}; | 		}; | ||||||
| 		122FE8C96421AF1E94C5E4E7 /* [CP] Embed Pods Frameworks */ = { | 		033831B975B87C321F0A778A /* [CP] Copy Pods Resources */ = { | ||||||
| 			isa = PBXShellScriptBuildPhase; |  | ||||||
| 			buildActionMask = 2147483647; |  | ||||||
| 			files = ( |  | ||||||
| 			); |  | ||||||
| 			inputPaths = ( |  | ||||||
| 				"${PODS_ROOT}/Target Support Files/Pods-example-exampleTests/Pods-example-exampleTests-frameworks.sh", |  | ||||||
| 				"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL/OpenSSL.framework/OpenSSL", |  | ||||||
| 			); |  | ||||||
| 			name = "[CP] Embed Pods Frameworks"; |  | ||||||
| 			outputPaths = ( |  | ||||||
| 				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework", |  | ||||||
| 			); |  | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; |  | ||||||
| 			shellPath = /bin/sh; |  | ||||||
| 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example-exampleTests/Pods-example-exampleTests-frameworks.sh\"\n"; |  | ||||||
| 			showEnvVarsInLog = 0; |  | ||||||
| 		}; |  | ||||||
| 		2D02E4CB1E0B4B27006451C7 /* 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"; |  | ||||||
| 		}; |  | ||||||
| 		3600CD3732F17F57FACE808E /* [CP] Check Pods Manifest.lock */ = { |  | ||||||
| 			isa = PBXShellScriptBuildPhase; | 			isa = PBXShellScriptBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
| 			); | 			); | ||||||
| 			inputFileListPaths = ( | 			inputFileListPaths = ( | ||||||
| 			); | 				"${PODS_ROOT}/Target Support Files/Pods-example-exampleTests/Pods-example-exampleTests-resources-${CONFIGURATION}-input-files.xcfilelist", | ||||||
| 			inputPaths = ( |  | ||||||
| 				"${PODS_PODFILE_DIR_PATH}/Podfile.lock", |  | ||||||
| 				"${PODS_ROOT}/Manifest.lock", |  | ||||||
| 			); |  | ||||||
| 			name = "[CP] Check Pods Manifest.lock"; |  | ||||||
| 			outputFileListPaths = ( |  | ||||||
| 			); |  | ||||||
| 			outputPaths = ( |  | ||||||
| 				"$(DERIVED_FILE_DIR)/Pods-example-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; |  | ||||||
| 		}; |  | ||||||
| 		4E6C362E6E1079E72F150C7A /* [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-example-tvOSTests-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; |  | ||||||
| 		}; |  | ||||||
| 		6696EF002299B1AEDFE56CA9 /* [CP] Copy Pods Resources */ = { |  | ||||||
| 			isa = PBXShellScriptBuildPhase; |  | ||||||
| 			buildActionMask = 2147483647; |  | ||||||
| 			files = ( |  | ||||||
| 			); |  | ||||||
| 			inputPaths = ( |  | ||||||
| 				"${PODS_ROOT}/Target Support Files/Pods-example-exampleTests/Pods-example-exampleTests-resources.sh", |  | ||||||
| 				"${PODS_ROOT}/../../../ios/AlipaySDK.bundle", |  | ||||||
| 				"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", |  | ||||||
| 			); | 			); | ||||||
| 			name = "[CP] Copy Pods Resources"; | 			name = "[CP] Copy Pods Resources"; | ||||||
| 			outputPaths = ( | 			outputFileListPaths = ( | ||||||
| 				"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AlipaySDK.bundle", | 				"${PODS_ROOT}/Target Support Files/Pods-example-exampleTests/Pods-example-exampleTests-resources-${CONFIGURATION}-output-files.xcfilelist", | ||||||
| 				"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", |  | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 			shellPath = /bin/sh; | 			shellPath = /bin/sh; | ||||||
| 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example-exampleTests/Pods-example-exampleTests-resources.sh\"\n"; | 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example-exampleTests/Pods-example-exampleTests-resources.sh\"\n"; | ||||||
| 			showEnvVarsInLog = 0; | 			showEnvVarsInLog = 0; | ||||||
| 		}; | 		}; | ||||||
| 		90320E83E82CBFD892893550 /* [CP] Embed Pods Frameworks */ = { | 		1C053A4030B389C2BE4E29E6 /* [CP] Check Pods Manifest.lock */ = { | ||||||
| 			isa = PBXShellScriptBuildPhase; |  | ||||||
| 			buildActionMask = 2147483647; |  | ||||||
| 			files = ( |  | ||||||
| 			); |  | ||||||
| 			inputPaths = ( |  | ||||||
| 				"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks.sh", |  | ||||||
| 				"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL/OpenSSL.framework/OpenSSL", |  | ||||||
| 			); |  | ||||||
| 			name = "[CP] Embed Pods Frameworks"; |  | ||||||
| 			outputPaths = ( |  | ||||||
| 				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework", |  | ||||||
| 			); |  | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; |  | ||||||
| 			shellPath = /bin/sh; |  | ||||||
| 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks.sh\"\n"; |  | ||||||
| 			showEnvVarsInLog = 0; |  | ||||||
| 		}; |  | ||||||
| 		91ABE0B4BA5FED08F42D024D /* [CP] Check Pods Manifest.lock */ = { |  | ||||||
| 			isa = PBXShellScriptBuildPhase; | 			isa = PBXShellScriptBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
| @@ -515,27 +307,24 @@ | |||||||
| 			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"; | 			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; | 			showEnvVarsInLog = 0; | ||||||
| 		}; | 		}; | ||||||
| 		C625F15ADC9C74A909EFD89C /* [CP] Copy Pods Resources */ = { | 		5021B8CA64705AEB85BC9B7C /* [CP] Copy Pods Resources */ = { | ||||||
| 			isa = PBXShellScriptBuildPhase; | 			isa = PBXShellScriptBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
| 			); | 			); | ||||||
| 			inputPaths = ( | 			inputFileListPaths = ( | ||||||
| 				"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources.sh", | 				"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources-${CONFIGURATION}-input-files.xcfilelist", | ||||||
| 				"${PODS_ROOT}/../../../ios/AlipaySDK.bundle", |  | ||||||
| 				"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", |  | ||||||
| 			); | 			); | ||||||
| 			name = "[CP] Copy Pods Resources"; | 			name = "[CP] Copy Pods Resources"; | ||||||
| 			outputPaths = ( | 			outputFileListPaths = ( | ||||||
| 				"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AlipaySDK.bundle", | 				"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources-${CONFIGURATION}-output-files.xcfilelist", | ||||||
| 				"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", |  | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 			shellPath = /bin/sh; | 			shellPath = /bin/sh; | ||||||
| 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources.sh\"\n"; | 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources.sh\"\n"; | ||||||
| 			showEnvVarsInLog = 0; | 			showEnvVarsInLog = 0; | ||||||
| 		}; | 		}; | ||||||
| 		D22CB2D564E998DFA7932D33 /* [CP] Check Pods Manifest.lock */ = { | 		79883C92EACAE849F236F5E6 /* [CP] Check Pods Manifest.lock */ = { | ||||||
| 			isa = PBXShellScriptBuildPhase; | 			isa = PBXShellScriptBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
| @@ -550,33 +339,48 @@ | |||||||
| 			outputFileListPaths = ( | 			outputFileListPaths = ( | ||||||
| 			); | 			); | ||||||
| 			outputPaths = ( | 			outputPaths = ( | ||||||
| 				"$(DERIVED_FILE_DIR)/Pods-example-tvOS-checkManifestLockResult.txt", | 				"$(DERIVED_FILE_DIR)/Pods-example-checkManifestLockResult.txt", | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 			shellPath = /bin/sh; | 			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"; | 			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; | 			showEnvVarsInLog = 0; | ||||||
| 		}; | 		}; | ||||||
| 		FD10A7F022414F080027D42C /* Start Packager */ = { | 		B01DCDA8C5A673A48FDAE04B /* [CP] Embed Pods Frameworks */ = { | ||||||
| 			isa = PBXShellScriptBuildPhase; | 			isa = PBXShellScriptBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
| 			); | 			); | ||||||
| 			inputFileListPaths = ( | 			inputFileListPaths = ( | ||||||
|  | 				"${PODS_ROOT}/Target Support Files/Pods-example-exampleTests/Pods-example-exampleTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", | ||||||
| 			); | 			); | ||||||
| 			inputPaths = ( | 			name = "[CP] Embed Pods Frameworks"; | ||||||
| 			); |  | ||||||
| 			name = "Start Packager"; |  | ||||||
| 			outputFileListPaths = ( | 			outputFileListPaths = ( | ||||||
| 			); | 				"${PODS_ROOT}/Target Support Files/Pods-example-exampleTests/Pods-example-exampleTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", | ||||||
| 			outputPaths = ( |  | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 			shellPath = /bin/sh; | 			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"; | 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example-exampleTests/Pods-example-exampleTests-frameworks.sh\"\n"; | ||||||
| 			showEnvVarsInLog = 0; | 			showEnvVarsInLog = 0; | ||||||
| 		}; | 		}; | ||||||
| 		FD10A7F122414F3F0027D42C /* Start Packager */ = { | 		E86EC3E356E887B4CD97AFA8 /* [CP] Embed Pods Frameworks */ = { | ||||||
|  | 			isa = PBXShellScriptBuildPhase; | ||||||
|  | 			buildActionMask = 2147483647; | ||||||
|  | 			files = ( | ||||||
|  | 			); | ||||||
|  | 			inputFileListPaths = ( | ||||||
|  | 				"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks-${CONFIGURATION}-input-files.xcfilelist", | ||||||
|  | 			); | ||||||
|  | 			name = "[CP] Embed Pods Frameworks"; | ||||||
|  | 			outputFileListPaths = ( | ||||||
|  | 				"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks-${CONFIGURATION}-output-files.xcfilelist", | ||||||
|  | 			); | ||||||
|  | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
|  | 			shellPath = /bin/sh; | ||||||
|  | 			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks.sh\"\n"; | ||||||
|  | 			showEnvVarsInLog = 0; | ||||||
|  | 		}; | ||||||
|  | 		FD10A7F022414F080027D42C /* Start Packager */ = { | ||||||
| 			isa = PBXShellScriptBuildPhase; | 			isa = PBXShellScriptBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
| @@ -610,28 +414,11 @@ | |||||||
| 			isa = PBXSourcesBuildPhase; | 			isa = PBXSourcesBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
| 				13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, | 				13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, | ||||||
| 				13B07FC11A68108700A75B9A /* main.m in Sources */, | 				13B07FC11A68108700A75B9A /* main.m in Sources */, | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 		}; | 		}; | ||||||
| 		2D02E4771E0B4A5D006451C7 /* Sources */ = { |  | ||||||
| 			isa = PBXSourcesBuildPhase; |  | ||||||
| 			buildActionMask = 2147483647; |  | ||||||
| 			files = ( |  | ||||||
| 				2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */, |  | ||||||
| 				2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */, |  | ||||||
| 			); |  | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; |  | ||||||
| 		}; |  | ||||||
| 		2D02E48C1E0B4A5D006451C7 /* Sources */ = { |  | ||||||
| 			isa = PBXSourcesBuildPhase; |  | ||||||
| 			buildActionMask = 2147483647; |  | ||||||
| 			files = ( |  | ||||||
| 				2DCD954D1E0B4F2C00145EB5 /* exampleTests.m in Sources */, |  | ||||||
| 			); |  | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; |  | ||||||
| 		}; |  | ||||||
| /* End PBXSourcesBuildPhase section */ | /* End PBXSourcesBuildPhase section */ | ||||||
|  |  | ||||||
| /* Begin PBXTargetDependency section */ | /* Begin PBXTargetDependency section */ | ||||||
| @@ -640,17 +427,12 @@ | |||||||
| 			target = 13B07F861A680F5B00A75B9A /* example */; | 			target = 13B07F861A680F5B00A75B9A /* example */; | ||||||
| 			targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; | 			targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; | ||||||
| 		}; | 		}; | ||||||
| 		2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = { |  | ||||||
| 			isa = PBXTargetDependency; |  | ||||||
| 			target = 2D02E47A1E0B4A5D006451C7 /* example-tvOS */; |  | ||||||
| 			targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */; |  | ||||||
| 		}; |  | ||||||
| /* End PBXTargetDependency section */ | /* End PBXTargetDependency section */ | ||||||
|  |  | ||||||
| /* Begin XCBuildConfiguration section */ | /* Begin XCBuildConfiguration section */ | ||||||
| 		00E356F61AD99517003FC87E /* Debug */ = { | 		00E356F61AD99517003FC87E /* Debug */ = { | ||||||
| 			isa = XCBuildConfiguration; | 			isa = XCBuildConfiguration; | ||||||
| 			baseConfigurationReference = 3112D26F5BD29566FE2D3C34 /* Pods-example-exampleTests.debug.xcconfig */; | 			baseConfigurationReference = 703716FB709265C05CB09BD9 /* Pods-example-exampleTests.debug.xcconfig */; | ||||||
| 			buildSettings = { | 			buildSettings = { | ||||||
| 				BUNDLE_LOADER = "$(TEST_HOST)"; | 				BUNDLE_LOADER = "$(TEST_HOST)"; | ||||||
| 				GCC_PREPROCESSOR_DEFINITIONS = ( | 				GCC_PREPROCESSOR_DEFINITIONS = ( | ||||||
| @@ -658,14 +440,18 @@ | |||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| 				); | 				); | ||||||
| 				INFOPLIST_FILE = exampleTests/Info.plist; | 				INFOPLIST_FILE = exampleTests/Info.plist; | ||||||
| 				IPHONEOS_DEPLOYMENT_TARGET = 10.0; | 				IPHONEOS_DEPLOYMENT_TARGET = 12.4; | ||||||
| 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; | 				LD_RUNPATH_SEARCH_PATHS = ( | ||||||
|  | 					"$(inherited)", | ||||||
|  | 					"@executable_path/Frameworks", | ||||||
|  | 					"@loader_path/Frameworks", | ||||||
|  | 				); | ||||||
| 				OTHER_LDFLAGS = ( | 				OTHER_LDFLAGS = ( | ||||||
| 					"-ObjC", | 					"-ObjC", | ||||||
| 					"-lc++", | 					"-lc++", | ||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| 				); | 				); | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; | 				PRODUCT_BUNDLE_IDENTIFIER = "com.uiwjs.example.alipay.$(PRODUCT_NAME:rfc1034identifier)"; | ||||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; | 				PRODUCT_NAME = "$(TARGET_NAME)"; | ||||||
| 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/example"; | 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/example"; | ||||||
| 			}; | 			}; | ||||||
| @@ -673,19 +459,23 @@ | |||||||
| 		}; | 		}; | ||||||
| 		00E356F71AD99517003FC87E /* Release */ = { | 		00E356F71AD99517003FC87E /* Release */ = { | ||||||
| 			isa = XCBuildConfiguration; | 			isa = XCBuildConfiguration; | ||||||
| 			baseConfigurationReference = E4C3E66F330A0A318B7500EF /* Pods-example-exampleTests.release.xcconfig */; | 			baseConfigurationReference = C8734EACFAE9EEF4378FA714 /* Pods-example-exampleTests.release.xcconfig */; | ||||||
| 			buildSettings = { | 			buildSettings = { | ||||||
| 				BUNDLE_LOADER = "$(TEST_HOST)"; | 				BUNDLE_LOADER = "$(TEST_HOST)"; | ||||||
| 				COPY_PHASE_STRIP = NO; | 				COPY_PHASE_STRIP = NO; | ||||||
| 				INFOPLIST_FILE = exampleTests/Info.plist; | 				INFOPLIST_FILE = exampleTests/Info.plist; | ||||||
| 				IPHONEOS_DEPLOYMENT_TARGET = 10.0; | 				IPHONEOS_DEPLOYMENT_TARGET = 12.4; | ||||||
| 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; | 				LD_RUNPATH_SEARCH_PATHS = ( | ||||||
|  | 					"$(inherited)", | ||||||
|  | 					"@executable_path/Frameworks", | ||||||
|  | 					"@loader_path/Frameworks", | ||||||
|  | 				); | ||||||
| 				OTHER_LDFLAGS = ( | 				OTHER_LDFLAGS = ( | ||||||
| 					"-ObjC", | 					"-ObjC", | ||||||
| 					"-lc++", | 					"-lc++", | ||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| 				); | 				); | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)"; | 				PRODUCT_BUNDLE_IDENTIFIER = "com.uiwjs.example.alipay.$(PRODUCT_NAME:rfc1034identifier)"; | ||||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; | 				PRODUCT_NAME = "$(TARGET_NAME)"; | ||||||
| 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/example"; | 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/example"; | ||||||
| 			}; | 			}; | ||||||
| @@ -693,21 +483,23 @@ | |||||||
| 		}; | 		}; | ||||||
| 		13B07F941A680F5B00A75B9A /* Debug */ = { | 		13B07F941A680F5B00A75B9A /* Debug */ = { | ||||||
| 			isa = XCBuildConfiguration; | 			isa = XCBuildConfiguration; | ||||||
| 			baseConfigurationReference = DD6F9EF734BCAB0C40828BDE /* Pods-example.debug.xcconfig */; | 			baseConfigurationReference = 0350257FC9F65E85689797E3 /* Pods-example.debug.xcconfig */; | ||||||
| 			buildSettings = { | 			buildSettings = { | ||||||
| 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||||||
| 				CLANG_ENABLE_MODULES = YES; | 				CLANG_ENABLE_MODULES = YES; | ||||||
| 				CURRENT_PROJECT_VERSION = 1; | 				CURRENT_PROJECT_VERSION = 1; | ||||||
| 				DEVELOPMENT_TEAM = 968DSZ49MT; |  | ||||||
| 				ENABLE_BITCODE = NO; | 				ENABLE_BITCODE = NO; | ||||||
| 				INFOPLIST_FILE = example/Info.plist; | 				INFOPLIST_FILE = example/Info.plist; | ||||||
| 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; | 				LD_RUNPATH_SEARCH_PATHS = ( | ||||||
|  | 					"$(inherited)", | ||||||
|  | 					"@executable_path/Frameworks", | ||||||
|  | 				); | ||||||
| 				OTHER_LDFLAGS = ( | 				OTHER_LDFLAGS = ( | ||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| 					"-ObjC", | 					"-ObjC", | ||||||
| 					"-lc++", | 					"-lc++", | ||||||
| 				); | 				); | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = com.uiwjs.example.alipay; | 				PRODUCT_BUNDLE_IDENTIFIER = "com.uiwjs.example.alipay.$(PRODUCT_NAME:rfc1034identifier)"; | ||||||
| 				PRODUCT_NAME = example; | 				PRODUCT_NAME = example; | ||||||
| 				SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | 				SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | ||||||
| 				SWIFT_VERSION = 5.0; | 				SWIFT_VERSION = 5.0; | ||||||
| @@ -717,142 +509,34 @@ | |||||||
| 		}; | 		}; | ||||||
| 		13B07F951A680F5B00A75B9A /* Release */ = { | 		13B07F951A680F5B00A75B9A /* Release */ = { | ||||||
| 			isa = XCBuildConfiguration; | 			isa = XCBuildConfiguration; | ||||||
| 			baseConfigurationReference = 2081385A299935CC32AA9B09 /* Pods-example.release.xcconfig */; | 			baseConfigurationReference = 985BE54A6B9DC27AFEEB2892 /* Pods-example.release.xcconfig */; | ||||||
| 			buildSettings = { | 			buildSettings = { | ||||||
| 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||||||
| 				CLANG_ENABLE_MODULES = YES; | 				CLANG_ENABLE_MODULES = YES; | ||||||
| 				CURRENT_PROJECT_VERSION = 1; | 				CURRENT_PROJECT_VERSION = 1; | ||||||
| 				DEVELOPMENT_TEAM = 968DSZ49MT; |  | ||||||
| 				INFOPLIST_FILE = example/Info.plist; | 				INFOPLIST_FILE = example/Info.plist; | ||||||
| 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; | 				LD_RUNPATH_SEARCH_PATHS = ( | ||||||
|  | 					"$(inherited)", | ||||||
|  | 					"@executable_path/Frameworks", | ||||||
|  | 				); | ||||||
| 				OTHER_LDFLAGS = ( | 				OTHER_LDFLAGS = ( | ||||||
| 					"$(inherited)", | 					"$(inherited)", | ||||||
| 					"-ObjC", | 					"-ObjC", | ||||||
| 					"-lc++", | 					"-lc++", | ||||||
| 				); | 				); | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = com.uiwjs.example.alipay; | 				PRODUCT_BUNDLE_IDENTIFIER = "com.uiwjs.example.alipay.$(PRODUCT_NAME:rfc1034identifier)"; | ||||||
| 				PRODUCT_NAME = example; | 				PRODUCT_NAME = example; | ||||||
| 				SWIFT_VERSION = 5.0; | 				SWIFT_VERSION = 5.0; | ||||||
| 				VERSIONING_SYSTEM = "apple-generic"; | 				VERSIONING_SYSTEM = "apple-generic"; | ||||||
| 			}; | 			}; | ||||||
| 			name = Release; | 			name = Release; | ||||||
| 		}; | 		}; | ||||||
| 		2D02E4971E0B4A5E006451C7 /* Debug */ = { |  | ||||||
| 			isa = XCBuildConfiguration; |  | ||||||
| 			baseConfigurationReference = 2EC89C0F73C6544603C503FB /* Pods-example-tvOS.debug.xcconfig */; |  | ||||||
| 			buildSettings = { |  | ||||||
| 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; |  | ||||||
| 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; |  | ||||||
| 				CLANG_ANALYZER_NONNULL = YES; |  | ||||||
| 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |  | ||||||
| 				CLANG_WARN_INFINITE_RECURSION = YES; |  | ||||||
| 				CLANG_WARN_SUSPICIOUS_MOVE = YES; |  | ||||||
| 				DEBUG_INFORMATION_FORMAT = dwarf; |  | ||||||
| 				ENABLE_TESTABILITY = YES; |  | ||||||
| 				GCC_NO_COMMON_BLOCKS = YES; |  | ||||||
| 				INFOPLIST_FILE = "example-tvOS/Info.plist"; |  | ||||||
| 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |  | ||||||
| 				OTHER_LDFLAGS = ( |  | ||||||
| 					"$(inherited)", |  | ||||||
| 					"-ObjC", |  | ||||||
| 					"-lc++", |  | ||||||
| 				); |  | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.example-tvOS"; |  | ||||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; |  | ||||||
| 				SDKROOT = appletvos; |  | ||||||
| 				TARGETED_DEVICE_FAMILY = 3; |  | ||||||
| 				TVOS_DEPLOYMENT_TARGET = 10.0; |  | ||||||
| 			}; |  | ||||||
| 			name = Debug; |  | ||||||
| 		}; |  | ||||||
| 		2D02E4981E0B4A5E006451C7 /* Release */ = { |  | ||||||
| 			isa = XCBuildConfiguration; |  | ||||||
| 			baseConfigurationReference = 20A584C7D03A552ACABD9285 /* Pods-example-tvOS.release.xcconfig */; |  | ||||||
| 			buildSettings = { |  | ||||||
| 				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; |  | ||||||
| 				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; |  | ||||||
| 				CLANG_ANALYZER_NONNULL = YES; |  | ||||||
| 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |  | ||||||
| 				CLANG_WARN_INFINITE_RECURSION = YES; |  | ||||||
| 				CLANG_WARN_SUSPICIOUS_MOVE = YES; |  | ||||||
| 				COPY_PHASE_STRIP = NO; |  | ||||||
| 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; |  | ||||||
| 				GCC_NO_COMMON_BLOCKS = YES; |  | ||||||
| 				INFOPLIST_FILE = "example-tvOS/Info.plist"; |  | ||||||
| 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |  | ||||||
| 				OTHER_LDFLAGS = ( |  | ||||||
| 					"$(inherited)", |  | ||||||
| 					"-ObjC", |  | ||||||
| 					"-lc++", |  | ||||||
| 				); |  | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.example-tvOS"; |  | ||||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; |  | ||||||
| 				SDKROOT = appletvos; |  | ||||||
| 				TARGETED_DEVICE_FAMILY = 3; |  | ||||||
| 				TVOS_DEPLOYMENT_TARGET = 10.0; |  | ||||||
| 			}; |  | ||||||
| 			name = Release; |  | ||||||
| 		}; |  | ||||||
| 		2D02E4991E0B4A5E006451C7 /* Debug */ = { |  | ||||||
| 			isa = XCBuildConfiguration; |  | ||||||
| 			baseConfigurationReference = 490CB7FA8A6961A60BA42F15 /* Pods-example-tvOSTests.debug.xcconfig */; |  | ||||||
| 			buildSettings = { |  | ||||||
| 				BUNDLE_LOADER = "$(TEST_HOST)"; |  | ||||||
| 				CLANG_ANALYZER_NONNULL = YES; |  | ||||||
| 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |  | ||||||
| 				CLANG_WARN_INFINITE_RECURSION = YES; |  | ||||||
| 				CLANG_WARN_SUSPICIOUS_MOVE = YES; |  | ||||||
| 				DEBUG_INFORMATION_FORMAT = dwarf; |  | ||||||
| 				ENABLE_TESTABILITY = YES; |  | ||||||
| 				GCC_NO_COMMON_BLOCKS = YES; |  | ||||||
| 				INFOPLIST_FILE = "example-tvOSTests/Info.plist"; |  | ||||||
| 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; |  | ||||||
| 				OTHER_LDFLAGS = ( |  | ||||||
| 					"$(inherited)", |  | ||||||
| 					"-ObjC", |  | ||||||
| 					"-lc++", |  | ||||||
| 				); |  | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.example-tvOSTests"; |  | ||||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; |  | ||||||
| 				SDKROOT = appletvos; |  | ||||||
| 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example-tvOS.app/example-tvOS"; |  | ||||||
| 				TVOS_DEPLOYMENT_TARGET = 10.1; |  | ||||||
| 			}; |  | ||||||
| 			name = Debug; |  | ||||||
| 		}; |  | ||||||
| 		2D02E49A1E0B4A5E006451C7 /* Release */ = { |  | ||||||
| 			isa = XCBuildConfiguration; |  | ||||||
| 			baseConfigurationReference = AB59210E912C1284334F9D09 /* Pods-example-tvOSTests.release.xcconfig */; |  | ||||||
| 			buildSettings = { |  | ||||||
| 				BUNDLE_LOADER = "$(TEST_HOST)"; |  | ||||||
| 				CLANG_ANALYZER_NONNULL = YES; |  | ||||||
| 				CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |  | ||||||
| 				CLANG_WARN_INFINITE_RECURSION = YES; |  | ||||||
| 				CLANG_WARN_SUSPICIOUS_MOVE = YES; |  | ||||||
| 				COPY_PHASE_STRIP = NO; |  | ||||||
| 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; |  | ||||||
| 				GCC_NO_COMMON_BLOCKS = YES; |  | ||||||
| 				INFOPLIST_FILE = "example-tvOSTests/Info.plist"; |  | ||||||
| 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; |  | ||||||
| 				OTHER_LDFLAGS = ( |  | ||||||
| 					"$(inherited)", |  | ||||||
| 					"-ObjC", |  | ||||||
| 					"-lc++", |  | ||||||
| 				); |  | ||||||
| 				PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.example-tvOSTests"; |  | ||||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; |  | ||||||
| 				SDKROOT = appletvos; |  | ||||||
| 				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example-tvOS.app/example-tvOS"; |  | ||||||
| 				TVOS_DEPLOYMENT_TARGET = 10.1; |  | ||||||
| 			}; |  | ||||||
| 			name = Release; |  | ||||||
| 		}; |  | ||||||
| 		83CBBA201A601CBA00E9B192 /* Debug */ = { | 		83CBBA201A601CBA00E9B192 /* Debug */ = { | ||||||
| 			isa = XCBuildConfiguration; | 			isa = XCBuildConfiguration; | ||||||
| 			buildSettings = { | 			buildSettings = { | ||||||
| 				ALWAYS_SEARCH_USER_PATHS = NO; | 				ALWAYS_SEARCH_USER_PATHS = NO; | ||||||
| 				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; | 				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; | ||||||
| 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; | 				CLANG_CXX_LANGUAGE_STANDARD = "c++17"; | ||||||
| 				CLANG_CXX_LIBRARY = "libc++"; | 				CLANG_CXX_LIBRARY = "libc++"; | ||||||
| 				CLANG_ENABLE_MODULES = YES; | 				CLANG_ENABLE_MODULES = YES; | ||||||
| 				CLANG_ENABLE_OBJC_ARC = YES; | 				CLANG_ENABLE_OBJC_ARC = YES; | ||||||
| @@ -870,6 +554,7 @@ | |||||||
| 				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; | 				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; | ||||||
| 				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; | 				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; | ||||||
| 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | ||||||
|  | 				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; | ||||||
| 				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; | 				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; | ||||||
| 				CLANG_WARN_STRICT_PROTOTYPES = YES; | 				CLANG_WARN_STRICT_PROTOTYPES = YES; | ||||||
| 				CLANG_WARN_SUSPICIOUS_MOVE = YES; | 				CLANG_WARN_SUSPICIOUS_MOVE = YES; | ||||||
| @@ -879,6 +564,7 @@ | |||||||
| 				COPY_PHASE_STRIP = NO; | 				COPY_PHASE_STRIP = NO; | ||||||
| 				ENABLE_STRICT_OBJC_MSGSEND = YES; | 				ENABLE_STRICT_OBJC_MSGSEND = YES; | ||||||
| 				ENABLE_TESTABILITY = YES; | 				ENABLE_TESTABILITY = YES; | ||||||
|  | 				"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; | ||||||
| 				GCC_C_LANGUAGE_STANDARD = gnu99; | 				GCC_C_LANGUAGE_STANDARD = gnu99; | ||||||
| 				GCC_DYNAMIC_NO_PIC = NO; | 				GCC_DYNAMIC_NO_PIC = NO; | ||||||
| 				GCC_NO_COMMON_BLOCKS = YES; | 				GCC_NO_COMMON_BLOCKS = YES; | ||||||
| @@ -894,15 +580,25 @@ | |||||||
| 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | ||||||
| 				GCC_WARN_UNUSED_FUNCTION = YES; | 				GCC_WARN_UNUSED_FUNCTION = YES; | ||||||
| 				GCC_WARN_UNUSED_VARIABLE = YES; | 				GCC_WARN_UNUSED_VARIABLE = YES; | ||||||
| 				IPHONEOS_DEPLOYMENT_TARGET = 10.0; | 				IPHONEOS_DEPLOYMENT_TARGET = 12.4; | ||||||
| 				LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; | 				LD_RUNPATH_SEARCH_PATHS = ( | ||||||
|  | 					/usr/lib/swift, | ||||||
|  | 					"$(inherited)", | ||||||
|  | 				); | ||||||
| 				LIBRARY_SEARCH_PATHS = ( | 				LIBRARY_SEARCH_PATHS = ( | ||||||
|  | 					"\"$(SDKROOT)/usr/lib/swift\"", | ||||||
| 					"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", | 					"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", | ||||||
| 					"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", |  | ||||||
| 					"\"$(inherited)\"", | 					"\"$(inherited)\"", | ||||||
| 				); | 				); | ||||||
| 				MTL_ENABLE_DEBUG_INFO = YES; | 				MTL_ENABLE_DEBUG_INFO = YES; | ||||||
| 				ONLY_ACTIVE_ARCH = YES; | 				ONLY_ACTIVE_ARCH = YES; | ||||||
|  | 				OTHER_CPLUSPLUSFLAGS = ( | ||||||
|  | 					"$(OTHER_CFLAGS)", | ||||||
|  | 					"-DFOLLY_NO_CONFIG", | ||||||
|  | 					"-DFOLLY_MOBILE=1", | ||||||
|  | 					"-DFOLLY_USE_LIBCPP=1", | ||||||
|  | 				); | ||||||
|  | 				REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; | ||||||
| 				SDKROOT = iphoneos; | 				SDKROOT = iphoneos; | ||||||
| 			}; | 			}; | ||||||
| 			name = Debug; | 			name = Debug; | ||||||
| @@ -912,7 +608,7 @@ | |||||||
| 			buildSettings = { | 			buildSettings = { | ||||||
| 				ALWAYS_SEARCH_USER_PATHS = NO; | 				ALWAYS_SEARCH_USER_PATHS = NO; | ||||||
| 				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; | 				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; | ||||||
| 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; | 				CLANG_CXX_LANGUAGE_STANDARD = "c++17"; | ||||||
| 				CLANG_CXX_LIBRARY = "libc++"; | 				CLANG_CXX_LIBRARY = "libc++"; | ||||||
| 				CLANG_ENABLE_MODULES = YES; | 				CLANG_ENABLE_MODULES = YES; | ||||||
| 				CLANG_ENABLE_OBJC_ARC = YES; | 				CLANG_ENABLE_OBJC_ARC = YES; | ||||||
| @@ -930,6 +626,7 @@ | |||||||
| 				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; | 				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; | ||||||
| 				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; | 				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; | ||||||
| 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | ||||||
|  | 				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; | ||||||
| 				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; | 				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; | ||||||
| 				CLANG_WARN_STRICT_PROTOTYPES = YES; | 				CLANG_WARN_STRICT_PROTOTYPES = YES; | ||||||
| 				CLANG_WARN_SUSPICIOUS_MOVE = YES; | 				CLANG_WARN_SUSPICIOUS_MOVE = YES; | ||||||
| @@ -939,6 +636,7 @@ | |||||||
| 				COPY_PHASE_STRIP = YES; | 				COPY_PHASE_STRIP = YES; | ||||||
| 				ENABLE_NS_ASSERTIONS = NO; | 				ENABLE_NS_ASSERTIONS = NO; | ||||||
| 				ENABLE_STRICT_OBJC_MSGSEND = YES; | 				ENABLE_STRICT_OBJC_MSGSEND = YES; | ||||||
|  | 				"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = ""; | ||||||
| 				GCC_C_LANGUAGE_STANDARD = gnu99; | 				GCC_C_LANGUAGE_STANDARD = gnu99; | ||||||
| 				GCC_NO_COMMON_BLOCKS = YES; | 				GCC_NO_COMMON_BLOCKS = YES; | ||||||
| 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | ||||||
| @@ -947,14 +645,24 @@ | |||||||
| 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | ||||||
| 				GCC_WARN_UNUSED_FUNCTION = YES; | 				GCC_WARN_UNUSED_FUNCTION = YES; | ||||||
| 				GCC_WARN_UNUSED_VARIABLE = YES; | 				GCC_WARN_UNUSED_VARIABLE = YES; | ||||||
| 				IPHONEOS_DEPLOYMENT_TARGET = 10.0; | 				IPHONEOS_DEPLOYMENT_TARGET = 12.4; | ||||||
| 				LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)"; | 				LD_RUNPATH_SEARCH_PATHS = ( | ||||||
|  | 					/usr/lib/swift, | ||||||
|  | 					"$(inherited)", | ||||||
|  | 				); | ||||||
| 				LIBRARY_SEARCH_PATHS = ( | 				LIBRARY_SEARCH_PATHS = ( | ||||||
|  | 					"\"$(SDKROOT)/usr/lib/swift\"", | ||||||
| 					"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", | 					"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", | ||||||
| 					"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", |  | ||||||
| 					"\"$(inherited)\"", | 					"\"$(inherited)\"", | ||||||
| 				); | 				); | ||||||
| 				MTL_ENABLE_DEBUG_INFO = NO; | 				MTL_ENABLE_DEBUG_INFO = NO; | ||||||
|  | 				OTHER_CPLUSPLUSFLAGS = ( | ||||||
|  | 					"$(OTHER_CFLAGS)", | ||||||
|  | 					"-DFOLLY_NO_CONFIG", | ||||||
|  | 					"-DFOLLY_MOBILE=1", | ||||||
|  | 					"-DFOLLY_USE_LIBCPP=1", | ||||||
|  | 				); | ||||||
|  | 				REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; | ||||||
| 				SDKROOT = iphoneos; | 				SDKROOT = iphoneos; | ||||||
| 				VALIDATE_PRODUCT = YES; | 				VALIDATE_PRODUCT = YES; | ||||||
| 			}; | 			}; | ||||||
| @@ -981,24 +689,6 @@ | |||||||
| 			defaultConfigurationIsVisible = 0; | 			defaultConfigurationIsVisible = 0; | ||||||
| 			defaultConfigurationName = Release; | 			defaultConfigurationName = Release; | ||||||
| 		}; | 		}; | ||||||
| 		2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "example-tvOS" */ = { |  | ||||||
| 			isa = XCConfigurationList; |  | ||||||
| 			buildConfigurations = ( |  | ||||||
| 				2D02E4971E0B4A5E006451C7 /* Debug */, |  | ||||||
| 				2D02E4981E0B4A5E006451C7 /* Release */, |  | ||||||
| 			); |  | ||||||
| 			defaultConfigurationIsVisible = 0; |  | ||||||
| 			defaultConfigurationName = Release; |  | ||||||
| 		}; |  | ||||||
| 		2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "example-tvOSTests" */ = { |  | ||||||
| 			isa = XCConfigurationList; |  | ||||||
| 			buildConfigurations = ( |  | ||||||
| 				2D02E4991E0B4A5E006451C7 /* Debug */, |  | ||||||
| 				2D02E49A1E0B4A5E006451C7 /* Release */, |  | ||||||
| 			); |  | ||||||
| 			defaultConfigurationIsVisible = 0; |  | ||||||
| 			defaultConfigurationName = Release; |  | ||||||
| 		}; |  | ||||||
| 		83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */ = { | 		83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */ = { | ||||||
| 			isa = XCConfigurationList; | 			isa = XCConfigurationList; | ||||||
| 			buildConfigurations = ( | 			buildConfigurations = ( | ||||||
|   | |||||||
| @@ -1,62 +0,0 @@ | |||||||
| #import "AppDelegate.h" |  | ||||||
|  |  | ||||||
| #import <React/RCTBridge.h> |  | ||||||
| #import <React/RCTBundleURLProvider.h> |  | ||||||
| #import <React/RCTRootView.h> |  | ||||||
|  |  | ||||||
| #ifdef FB_SONARKIT_ENABLED |  | ||||||
| #import <FlipperKit/FlipperClient.h> |  | ||||||
| #import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h> |  | ||||||
| #import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h> |  | ||||||
| #import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h> |  | ||||||
| #import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h> |  | ||||||
| #import <FlipperKitReactPlugin/FlipperKitReactPlugin.h> |  | ||||||
|  |  | ||||||
| static void InitializeFlipper(UIApplication *application) { |  | ||||||
|   FlipperClient *client = [FlipperClient sharedClient]; |  | ||||||
|   SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults]; |  | ||||||
|   [client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application withDescriptorMapper:layoutDescriptorMapper]]; |  | ||||||
|   [client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]]; |  | ||||||
|   [client addPlugin:[FlipperKitReactPlugin new]]; |  | ||||||
|   [client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]]; |  | ||||||
|   [client start]; |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| @implementation AppDelegate |  | ||||||
|  |  | ||||||
| - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions |  | ||||||
| { |  | ||||||
| #ifdef FB_SONARKIT_ENABLED |  | ||||||
|   InitializeFlipper(application); |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|   RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; |  | ||||||
|   RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge |  | ||||||
|                                                    moduleName:@"example" |  | ||||||
|                                             initialProperties:nil]; |  | ||||||
|  |  | ||||||
|     if (@available(iOS 13.0, *)) { |  | ||||||
|       rootView.backgroundColor = [UIColor systemBackgroundColor]; |  | ||||||
|     } else { |  | ||||||
|       rootView.backgroundColor = [UIColor whiteColor]; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|   self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; |  | ||||||
|   UIViewController *rootViewController = [UIViewController new]; |  | ||||||
|   rootViewController.view = rootView; |  | ||||||
|   self.window.rootViewController = rootViewController; |  | ||||||
|   [self.window makeKeyAndVisible]; |  | ||||||
|   return YES; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge |  | ||||||
| { |  | ||||||
| #if DEBUG |  | ||||||
|   return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; |  | ||||||
| #else |  | ||||||
|   return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; |  | ||||||
| #endif |  | ||||||
| } |  | ||||||
|  |  | ||||||
| @end |  | ||||||
							
								
								
									
										108
									
								
								example/ios/example/AppDelegate.mm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								example/ios/example/AppDelegate.mm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,108 @@ | |||||||
|  | #import "AppDelegate.h" | ||||||
|  |  | ||||||
|  | #import <React/RCTBridge.h> | ||||||
|  | #import <React/RCTBundleURLProvider.h> | ||||||
|  | #import <React/RCTRootView.h> | ||||||
|  |  | ||||||
|  | #import <React/RCTAppSetupUtils.h> | ||||||
|  |  | ||||||
|  | #if RCT_NEW_ARCH_ENABLED | ||||||
|  | #import <React/CoreModulesPlugins.h> | ||||||
|  | #import <React/RCTCxxBridgeDelegate.h> | ||||||
|  | #import <React/RCTFabricSurfaceHostingProxyRootView.h> | ||||||
|  | #import <React/RCTSurfacePresenter.h> | ||||||
|  | #import <React/RCTSurfacePresenterBridgeAdapter.h> | ||||||
|  | #import <ReactCommon/RCTTurboModuleManager.h> | ||||||
|  |  | ||||||
|  | #import <react/config/ReactNativeConfig.h> | ||||||
|  |  | ||||||
|  | @interface AppDelegate () <RCTCxxBridgeDelegate, RCTTurboModuleManagerDelegate> { | ||||||
|  |   RCTTurboModuleManager *_turboModuleManager; | ||||||
|  |   RCTSurfacePresenterBridgeAdapter *_bridgeAdapter; | ||||||
|  |   std::shared_ptr<const facebook::react::ReactNativeConfig> _reactNativeConfig; | ||||||
|  |   facebook::react::ContextContainer::Shared _contextContainer; | ||||||
|  | } | ||||||
|  | @end | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | @implementation AppDelegate | ||||||
|  |  | ||||||
|  | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions | ||||||
|  | { | ||||||
|  |   RCTAppSetupPrepareApp(application); | ||||||
|  |  | ||||||
|  |   RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions]; | ||||||
|  |  | ||||||
|  | #if RCT_NEW_ARCH_ENABLED | ||||||
|  |   _contextContainer = std::make_shared<facebook::react::ContextContainer const>(); | ||||||
|  |   _reactNativeConfig = std::make_shared<facebook::react::EmptyReactNativeConfig const>(); | ||||||
|  |   _contextContainer->insert("ReactNativeConfig", _reactNativeConfig); | ||||||
|  |   _bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer]; | ||||||
|  |   bridge.surfacePresenter = _bridgeAdapter.surfacePresenter; | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  |   UIView *rootView = RCTAppSetupDefaultRootView(bridge, @"main", nil); | ||||||
|  |  | ||||||
|  |   if (@available(iOS 13.0, *)) { | ||||||
|  |     rootView.backgroundColor = [UIColor systemBackgroundColor]; | ||||||
|  |   } else { | ||||||
|  |     rootView.backgroundColor = [UIColor whiteColor]; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; | ||||||
|  |   UIViewController *rootViewController = [UIViewController new]; | ||||||
|  |   rootViewController.view = rootView; | ||||||
|  |   self.window.rootViewController = rootViewController; | ||||||
|  |   [self.window makeKeyAndVisible]; | ||||||
|  |   return YES; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge | ||||||
|  | { | ||||||
|  | #if DEBUG | ||||||
|  |   return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; | ||||||
|  | #else | ||||||
|  |   return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; | ||||||
|  | #endif | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #if RCT_NEW_ARCH_ENABLED | ||||||
|  |  | ||||||
|  | #pragma mark - RCTCxxBridgeDelegate | ||||||
|  |  | ||||||
|  | - (std::unique_ptr<facebook::react::JSExecutorFactory>)jsExecutorFactoryForBridge:(RCTBridge *)bridge | ||||||
|  | { | ||||||
|  |   _turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge | ||||||
|  |                                                              delegate:self | ||||||
|  |                                                             jsInvoker:bridge.jsCallInvoker]; | ||||||
|  |   return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #pragma mark RCTTurboModuleManagerDelegate | ||||||
|  |  | ||||||
|  | - (Class)getModuleClassFromName:(const char *)name | ||||||
|  | { | ||||||
|  |   return RCTCoreModulesClassProvider(name); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const std::string &)name | ||||||
|  |                                                       jsInvoker:(std::shared_ptr<facebook::react::CallInvoker>)jsInvoker | ||||||
|  | { | ||||||
|  |   return nullptr; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const std::string &)name | ||||||
|  |                                                      initParams: | ||||||
|  |                                                          (const facebook::react::ObjCTurboModule::InitParams &)params | ||||||
|  | { | ||||||
|  |   return nullptr; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | - (id<RCTTurboModule>)getModuleInstanceFromClass:(Class)moduleClass | ||||||
|  | { | ||||||
|  |   return RCTAppSetupDefaultModuleFromClass(moduleClass); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | @end | ||||||
| @@ -2,37 +2,52 @@ | |||||||
|   "images" : [ |   "images" : [ | ||||||
|     { |     { | ||||||
|       "idiom" : "iphone", |       "idiom" : "iphone", | ||||||
|       "size" : "29x29", |       "scale" : "2x", | ||||||
|       "scale" : "2x" |       "size" : "20x20" | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "idiom" : "iphone", |       "idiom" : "iphone", | ||||||
|       "size" : "29x29", |       "scale" : "3x", | ||||||
|       "scale" : "3x" |       "size" : "20x20" | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "idiom" : "iphone", |       "idiom" : "iphone", | ||||||
|       "size" : "40x40", |       "scale" : "2x", | ||||||
|       "scale" : "2x" |       "size" : "29x29" | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "idiom" : "iphone", |       "idiom" : "iphone", | ||||||
|       "size" : "40x40", |       "scale" : "3x", | ||||||
|       "scale" : "3x" |       "size" : "29x29" | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "idiom" : "iphone", |       "idiom" : "iphone", | ||||||
|       "size" : "60x60", |       "scale" : "2x", | ||||||
|       "scale" : "2x" |       "size" : "40x40" | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       "idiom" : "iphone", |       "idiom" : "iphone", | ||||||
|       "size" : "60x60", |       "scale" : "3x", | ||||||
|       "scale" : "3x" |       "size" : "40x40" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "idiom" : "iphone", | ||||||
|  |       "scale" : "2x", | ||||||
|  |       "size" : "60x60" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "idiom" : "iphone", | ||||||
|  |       "scale" : "3x", | ||||||
|  |       "size" : "60x60" | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "idiom" : "ios-marketing", | ||||||
|  |       "scale" : "1x", | ||||||
|  |       "size" : "1024x1024" | ||||||
|     } |     } | ||||||
|   ], |   ], | ||||||
|   "info" : { |   "info" : { | ||||||
|     "version" : 1, |     "author" : "xcode", | ||||||
|     "author" : "xcode" |     "version" : 1 | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @@ -2,7 +2,8 @@ | |||||||
|  |  | ||||||
| #import "AppDelegate.h" | #import "AppDelegate.h" | ||||||
|  |  | ||||||
| int main(int argc, char * argv[]) { | int main(int argc, char *argv[]) | ||||||
|  | { | ||||||
|   @autoreleasepool { |   @autoreleasepool { | ||||||
|     return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); |     return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ | |||||||
|  |  | ||||||
| @implementation exampleTests | @implementation exampleTests | ||||||
|  |  | ||||||
| - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test | ||||||
| { | { | ||||||
|   if (test(view)) { |   if (test(view)) { | ||||||
|     return YES; |     return YES; | ||||||
| @@ -34,23 +34,25 @@ | |||||||
|  |  | ||||||
|   __block NSString *redboxError = nil; |   __block NSString *redboxError = nil; | ||||||
| #ifdef DEBUG | #ifdef DEBUG | ||||||
|   RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { |   RCTSetLogFunction( | ||||||
|     if (level >= RCTLogLevelError) { |       ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { | ||||||
|       redboxError = message; |         if (level >= RCTLogLevelError) { | ||||||
|     } |           redboxError = message; | ||||||
|   }); |         } | ||||||
|  |       }); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { |   while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { | ||||||
|     [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; |     [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; | ||||||
|     [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; |     [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; | ||||||
|  |  | ||||||
|     foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { |     foundElement = [self findSubviewInView:vc.view | ||||||
|       if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { |                                   matching:^BOOL(UIView *view) { | ||||||
|         return YES; |                                     if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { | ||||||
|       } |                                       return YES; | ||||||
|       return NO; |                                     } | ||||||
|     }]; |                                     return NO; | ||||||
|  |                                   }]; | ||||||
|   } |   } | ||||||
|  |  | ||||||
| #ifdef DEBUG | #ifdef DEBUG | ||||||
| @@ -61,5 +63,4 @@ | |||||||
|   XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); |   XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @end | @end | ||||||
|   | |||||||
| @@ -3,7 +3,49 @@ | |||||||
|  * https://github.com/facebook/react-native |  * https://github.com/facebook/react-native | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
|  | const path = require('path'); | ||||||
|  | const exclusionList = require('metro-config/src/defaults/exclusionList'); | ||||||
|  | const escape = require('escape-string-regexp'); | ||||||
|  | const pak = require('../package.json'); | ||||||
|  | const root = path.resolve(__dirname, '..'); | ||||||
|  |  | ||||||
|  | const modules = Object.keys({ | ||||||
|  |   ...pak.peerDependencies, | ||||||
|  | }); | ||||||
|  |  | ||||||
| module.exports = { | module.exports = { | ||||||
|  |   projectRoot: __dirname, | ||||||
|  |   // quick workaround for another issue with symlinks | ||||||
|  |   watchFolders: [path.resolve(__dirname, '.'), root], | ||||||
|  |   // workaround for an issue with symlinks encountered starting with | ||||||
|  |   // metro@0.55 / React Native 0.61 | ||||||
|  |   // (not needed with React Native 0.60 / metro@0.54) | ||||||
|  |   // resolver: { | ||||||
|  |   //   extraNodeModules: new Proxy( | ||||||
|  |   //     {}, | ||||||
|  |   //     {get: (_, name) => path.resolve('.', 'node_modules', name)}, | ||||||
|  |   //   ), | ||||||
|  |   // }, | ||||||
|  |  | ||||||
|  |   // We need to make sure that only one version is loaded for peerDependencies | ||||||
|  |   // So we blacklist 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: new Proxy( | ||||||
|  |     //   {}, | ||||||
|  |     //   {get: (_, name) => path.resolve('.', 'node_modules', name)}, | ||||||
|  |     // ), | ||||||
|  |  | ||||||
|  |     extraNodeModules: modules.reduce((acc, name) => { | ||||||
|  |       acc[name] = path.join(__dirname, 'node_modules', name); | ||||||
|  |       return acc; | ||||||
|  |     }, {}), | ||||||
|  |   }, | ||||||
|  |  | ||||||
|   transformer: { |   transformer: { | ||||||
|     getTransformOptions: async () => ({ |     getTransformOptions: async () => ({ | ||||||
|       transform: { |       transform: { | ||||||
|   | |||||||
| @@ -3,26 +3,35 @@ | |||||||
|   "version": "0.0.1", |   "version": "0.0.1", | ||||||
|   "private": true, |   "private": true, | ||||||
|   "scripts": { |   "scripts": { | ||||||
|  |     "pods": "pod-install --quiet", | ||||||
|  |     "postinstall": "patch-package", | ||||||
|     "android": "react-native run-android", |     "android": "react-native run-android", | ||||||
|     "ios": "react-native run-ios", |     "ios": "react-native run-ios", | ||||||
|     "start": "react-native start", |     "start": "react-native start", | ||||||
|     "test": "jest", |     "test": "jest", | ||||||
|     "lint": "eslint ." |     "lint": "eslint ." | ||||||
|   }, |   }, | ||||||
|  |   "peerDependencies": { | ||||||
|  |     "react": "*", | ||||||
|  |     "react-native": "*" | ||||||
|  |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@uiw/react-native-alipay": "link:../", |     "@uiw/react-native-alipay": "5.0.2", | ||||||
|     "react": "17.0.1", |     "react": "18.0.0", | ||||||
|     "react-native": "0.64.1" |     "react-native": "0.69.3" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@babel/core": "7.14.0", |     "@babel/core": "^7.12.9", | ||||||
|     "@babel/runtime": "7.14.0", |     "@babel/runtime": "^7.12.5", | ||||||
|     "@react-native-community/eslint-config": "2.0.0", |     "@react-native-community/eslint-config": "^2.0.0", | ||||||
|     "babel-jest": "26.6.3", |     "babel-jest": "^26.6.3", | ||||||
|     "eslint": "7.14.0", |     "eslint": "^7.32.0", | ||||||
|     "jest": "26.6.3", |     "jest": "^26.6.3", | ||||||
|     "metro-react-native-babel-preset": "0.64.0", |     "babel-plugin-module-resolver": "^4.1.0", | ||||||
|     "react-test-renderer": "17.0.1" |     "metro-react-native-babel-preset": "^0.77.0", | ||||||
|  |     "react-test-renderer": "18.0.0", | ||||||
|  |     "patch-package": "^6.4.7", | ||||||
|  |     "postinstall-postinstall": "^2.1.0" | ||||||
|   }, |   }, | ||||||
|   "jest": { |   "jest": { | ||||||
|     "preset": "react-native" |     "preset": "react-native" | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								example/react-native.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								example/react-native.config.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | const path = require('path'); | ||||||
|  |  | ||||||
|  | module.exports = { | ||||||
|  |   dependencies: { | ||||||
|  |     '@uiw/react-native-alipay': { | ||||||
|  |       root: path.join(__dirname, '..'), | ||||||
|  |     }, | ||||||
|  |   }, | ||||||
|  | }; | ||||||
							
								
								
									
										7118
									
								
								example/yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										7118
									
								
								example/yarn.lock
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										19
									
								
								index.js
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								index.js
									
									
									
									
									
								
							| @@ -1,5 +1,24 @@ | |||||||
| import { NativeModules, Platform } from 'react-native'; | import { NativeModules, Platform } from 'react-native'; | ||||||
|  |  | ||||||
|  | const LINKING_ERROR = | ||||||
|  |   `The package '@uiw/react-native-alipay' doesn't seem to be linked. Make sure: \n\n` + | ||||||
|  |   Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) + | ||||||
|  |   '- You rebuilt the app after installing the package\n' + | ||||||
|  |   '- You are not using Expo managed workflow\n'; | ||||||
|  |  | ||||||
|  | console.log(':::NativeModules:::', NativeModules.RNAlipay) | ||||||
|  | const RNAlipay = NativeModules.RNAlipay ? NativeModules.RNAlipay  : new Proxy( | ||||||
|  |   {}, | ||||||
|  |   { | ||||||
|  |     get() { | ||||||
|  |       throw new Error(LINKING_ERROR); | ||||||
|  |     }, | ||||||
|  |   } | ||||||
|  | ); | ||||||
|  | // console.log('>RNAlipay1111>',  RNAlipay.setAlipayScheme) | ||||||
|  |  | ||||||
|  | // console.log('>>NativeModules.RNAlipay:', NativeModules.RNAlipay) | ||||||
|  |  | ||||||
| export default class Alipay { | export default class Alipay { | ||||||
|   /** |   /** | ||||||
|    * 支付 |    * 支付 | ||||||
|   | |||||||
										
											Binary file not shown.
										
									
								
							| @@ -9,7 +9,7 @@ | |||||||
|  |  | ||||||
| //////////////////////////////////////////////////////// | //////////////////////////////////////////////////////// | ||||||
| ///////////////// 支付宝标准版本支付SDK /////////////////// | ///////////////// 支付宝标准版本支付SDK /////////////////// | ||||||
| ///////// version:15.8.06  motify:2021.11.22/////////// | ///////// version:15.8.11  modify:2022.07.26/////////// | ||||||
| //////////////////////////////////////////////////////// | //////////////////////////////////////////////////////// | ||||||
|  |  | ||||||
| #import <UIKit/UIKit.h> | #import <UIKit/UIKit.h> | ||||||
|   | |||||||
| @@ -1,8 +1,4 @@ | |||||||
| #if __has_include("RCTBridgeModule.h") |  | ||||||
| #import "RCTBridgeModule.h" |  | ||||||
| #else |  | ||||||
| #import <React/RCTBridgeModule.h> | #import <React/RCTBridgeModule.h> | ||||||
| #endif |  | ||||||
|  |  | ||||||
| @interface RNAlipay : NSObject <RCTBridgeModule> | @interface RNAlipay : NSObject <RCTBridgeModule> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -4,14 +4,12 @@ | |||||||
|  |  | ||||||
| @interface RNAlipay () | @interface RNAlipay () | ||||||
| @property (nonatomic, copy) RCTPromiseResolveBlock payOrderResolve; | @property (nonatomic, copy) RCTPromiseResolveBlock payOrderResolve; | ||||||
|  |  | ||||||
| @end | @end | ||||||
|  |  | ||||||
|  |  | ||||||
| @implementation RNAlipay | @implementation RNAlipay | ||||||
| { | { | ||||||
|     NSString *alipayScheme; |     NSString *alipayScheme; | ||||||
| } | } | ||||||
|  |  | ||||||
| RCT_EXPORT_MODULE() | RCT_EXPORT_MODULE() | ||||||
|  |  | ||||||
| - (instancetype)init | - (instancetype)init | ||||||
| @@ -108,10 +106,19 @@ RCT_EXPORT_METHOD(getVersion: (RCTPromiseResolveBlock)resolve rejecter:(RCTPromi | |||||||
| /*!  | /*!  | ||||||
|  * [warn][tid:main][RCTModuleData.mm:68] Module Alipay requires main queue setup since it overrides `init` but doesn't implement `requiresMainQueueSetup`.  |  * [warn][tid:main][RCTModuleData.mm:68] Module Alipay requires main queue setup since it overrides `init` but doesn't implement `requiresMainQueueSetup`.  | ||||||
|  * In a future release React Native will default to initializing all native modules on a background thread unless explicitly opted-out of. |  * In a future release React Native will default to initializing all native modules on a background thread unless explicitly opted-out of. | ||||||
|  */ |  */; | ||||||
| + (BOOL)requiresMainQueueSetup | + (BOOL)requiresMainQueueSetup | ||||||
| { | { | ||||||
|     return YES; |     return YES; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // Don't compile this code when we build for the old architecture. | ||||||
|  | #ifdef RCT_NEW_ARCH_ENABLED | ||||||
|  | - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule: | ||||||
|  |     (const facebook::react::ObjCTurboModule::InitParams &)params | ||||||
|  | { | ||||||
|  |     return std::make_shared<facebook::react::NativeAwesomeModuleSpecJSI>(params); | ||||||
|  | } | ||||||
|  | #endif | ||||||
|  |  | ||||||
| @end | @end | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
| 	objects = { | 	objects = { | ||||||
|  |  | ||||||
| /* Begin PBXBuildFile section */ | /* Begin PBXBuildFile section */ | ||||||
| 		B9EB6BD424BDF5E6001A2514 /* AlipaySDK in Frameworks */ = {isa = PBXBuildFile; fileRef = B9EB6BCF24BDF342001A2514 /* AlipaySDK */; }; | 		7DE1E4C2289E2AB500722D10 /* AlipaySDK in Frameworks */ = {isa = PBXBuildFile; fileRef = B9EB6BCF24BDF342001A2514 /* AlipaySDK */; }; | ||||||
| /* End PBXBuildFile section */ | /* End PBXBuildFile section */ | ||||||
|  |  | ||||||
| /* Begin PBXCopyFilesBuildPhase section */ | /* Begin PBXCopyFilesBuildPhase section */ | ||||||
| @@ -34,7 +34,7 @@ | |||||||
| 			isa = PBXFrameworksBuildPhase; | 			isa = PBXFrameworksBuildPhase; | ||||||
| 			buildActionMask = 2147483647; | 			buildActionMask = 2147483647; | ||||||
| 			files = ( | 			files = ( | ||||||
| 				B9EB6BD424BDF5E6001A2514 /* AlipaySDK in Frameworks */, | 				7DE1E4C2289E2AB500722D10 /* AlipaySDK in Frameworks */, | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| 		}; | 		}; | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,20 +1,24 @@ | |||||||
| { | { | ||||||
|   "name": "@uiw/react-native-alipay", |   "name": "@uiw/react-native-alipay", | ||||||
|   "title": "React Native Alipay", |   "title": "React Native Alipay", | ||||||
|   "version": "4.0.0", |   "version": "5.0.2", | ||||||
|   "description": "基于 React Native 的支付宝插件,支持Android/iOS。", |   "description": "基于 React Native 的支付宝插件,支持Android/iOS。", | ||||||
|   "main": "index.js", |   "main": "index.js", | ||||||
|  |   "react-native": "index", | ||||||
|   "typings": "index.d.ts", |   "typings": "index.d.ts", | ||||||
|   "files": [ |   "files": [ | ||||||
|     "android/libs", |     "android/libs", | ||||||
|     "android/src", |     "android/src", | ||||||
|     "android/build.gradle", |     "android/build.gradle", | ||||||
|  |     "react-native-alipay.podspec", | ||||||
|     "ios", |     "ios", | ||||||
|     "index.d.ts", |     "index.d.ts", | ||||||
|     "index.js", |     "index.js", | ||||||
|     "README.md" |     "README.md" | ||||||
|   ], |   ], | ||||||
|   "scripts": { |   "scripts": { | ||||||
|  |     "example": "yarn --cwd example", | ||||||
|  |     "bootstrap": "yarn example && yarn && yarn example pods", | ||||||
|     "build": "typedoc" |     "build": "typedoc" | ||||||
|   }, |   }, | ||||||
|   "repository": { |   "repository": { | ||||||
| @@ -39,12 +43,13 @@ | |||||||
|   "licenseFilename": "LICENSE", |   "licenseFilename": "LICENSE", | ||||||
|   "readmeFilename": "README.md", |   "readmeFilename": "README.md", | ||||||
|   "peerDependencies": { |   "peerDependencies": { | ||||||
|     "react": "^16.8.1", |     "react": "*", | ||||||
|     "react-native": ">=0.60.0-rc.0 <1.0.x" |     "react-native": "*" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "react": "17.0.1", |     "react": "18.0.0", | ||||||
|     "react-native": "0.64.1", |     "react-native": "0.69.3", | ||||||
|  |     "pod-install": "^0.1.0", | ||||||
|     "typedoc": "0.20.36", |     "typedoc": "0.20.36", | ||||||
|     "typescript": "4.2.4" |     "typescript": "4.2.4" | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -1,9 +1,11 @@ | |||||||
| require "json" | require "json" | ||||||
| 
 | 
 | ||||||
| package = JSON.parse(File.read(File.join(__dir__, '..', "package.json"))) | package = JSON.parse(File.read(File.join(__dir__, "package.json"))) | ||||||
| 
 | 
 | ||||||
| Pod::Spec.new do |s| | Pod::Spec.new do |s| | ||||||
|   s.name         = "RNAlipay" |   s.name         = "react-native-alipay" | ||||||
|  |   # s.name         = "RNAlipay" | ||||||
|  |   # s.name         = "React-Alipay" | ||||||
|   s.version      = package["version"] |   s.version      = package["version"] | ||||||
|   s.summary      = package["description"] |   s.summary      = package["description"] | ||||||
|   s.description  = <<-DESC |   s.description  = <<-DESC | ||||||
| @@ -18,7 +20,8 @@ Pod::Spec.new do |s| | |||||||
|   s.platforms    = { :ios => "9.0" } |   s.platforms    = { :ios => "9.0" } | ||||||
|   s.source       = { :git => "https://github.com/uiwjs/react-native-alipay.git", :tag => "#{s.version}" } |   s.source       = { :git => "https://github.com/uiwjs/react-native-alipay.git", :tag => "#{s.version}" } | ||||||
| 
 | 
 | ||||||
|   s.source_files = "**/*.{h,c,m,swift}" |   s.source_files = "ios/**/*.{h,m,mm,swift}" | ||||||
|  | 
 | ||||||
|   # s.source_files = "**/*.{h,m}" |   # s.source_files = "**/*.{h,m}" | ||||||
|   s.requires_arc = true |   s.requires_arc = true | ||||||
| 
 | 
 | ||||||
| @@ -33,12 +36,15 @@ Pod::Spec.new do |s| | |||||||
|   s.frameworks = "CoreText", |   s.frameworks = "CoreText", | ||||||
|   s.frameworks = "WebKit" |   s.frameworks = "WebKit" | ||||||
| 
 | 
 | ||||||
|   s.dependency "React" |   # s.dependency "React" | ||||||
|   s.resource = 'AlipaySDK.bundle' |   s.dependency "React-Core" | ||||||
|  |   s.resource = 'ios/AlipaySDK.bundle' | ||||||
|  |   # s.vendored_libraries = "libAlipaySDK.a" | ||||||
|   # s.source_files  = "AlipaySDKiOS/AlipaySDK.framework/**/*" |   # s.source_files  = "AlipaySDKiOS/AlipaySDK.framework/**/*" | ||||||
|   s.vendored_frameworks = 'AlipaySDK.framework' |   s.vendored_frameworks = 'ios/AlipaySDK.framework' | ||||||
|   s.library = "c++", "z" |   s.library = "c++", "z" | ||||||
|   # ... |   # ... | ||||||
|   # s.dependency "..." |   # s.dependency "..." | ||||||
|  | 
 | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
							
								
								
									
										29
									
								
								scripts/bootstrap.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								scripts/bootstrap.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | |||||||
|  | const os = require('os'); | ||||||
|  | const path = require('path'); | ||||||
|  | const child_process = require('child_process'); | ||||||
|  |  | ||||||
|  | const root = path.resolve(__dirname, '..'); | ||||||
|  | const args = process.argv.slice(2); | ||||||
|  | const options = { | ||||||
|  |   cwd: process.cwd(), | ||||||
|  |   env: process.env, | ||||||
|  |   stdio: 'inherit', | ||||||
|  |   encoding: 'utf-8', | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | if (os.type() === 'Windows_NT') { | ||||||
|  |   options.shell = true; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | let result; | ||||||
|  |  | ||||||
|  | if (process.cwd() !== root || args.length) { | ||||||
|  |   // We're not in the root of the project, or additional arguments were passed | ||||||
|  |   // In this case, forward the command to `yarn` | ||||||
|  |   result = child_process.spawnSync('yarn', args, options); | ||||||
|  | } else { | ||||||
|  |   // If `yarn` is run without arguments, perform bootstrap | ||||||
|  |   result = child_process.spawnSync('yarn', ['bootstrap'], options); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | process.exitCode = result.status; | ||||||
		Reference in New Issue
	
	Block a user