Upgrade react-native to 0.60.5
- Use community net-info, react-native-webview instead of deprecated react-native classes - Remove react-native-tcp - Upgrade react-native libs (react-native-camera, react-native-firebase, react-native-mail, react-native-udp, react-native-webview-bridge) - Do not include `:react-native-android` module explicitly - Take advantage of RN AutoLinking - nix: Update Gradle dependencies
This commit is contained in:
parent
5db0a58ab8
commit
9feb31bd3b
|
@ -0,0 +1,4 @@
|
|||
module.exports = {
|
||||
root: true,
|
||||
extends: '@react-native-community',
|
||||
};
|
39
.flowconfig
39
.flowconfig
|
@ -20,15 +20,20 @@
|
|||
|
||||
# Ignore duplicate module providers
|
||||
# For RN Apps installed via npm, "Libraries" folder is inside node_modules/react-native but in the source repo it is in the root
|
||||
.*/Libraries/react-native/React.js
|
||||
node_modules/react-native/Libraries/react-native/React.js
|
||||
.*/Libraries/react-native/ReactNative.js
|
||||
.*/node_modules/jest-runtime/build/__tests__/.*
|
||||
|
||||
; Ignore polyfills
|
||||
.*/Libraries/polyfills/.*
|
||||
node_modules/react-native/Libraries/polyfills/.*
|
||||
|
||||
; Ignore metro
|
||||
.*/node_modules/metro/.*
|
||||
; These should not be required directly
|
||||
; require from fbjs/lib instead: require('fbjs/lib/warning')
|
||||
node_modules/warning/.*
|
||||
; Flow doesn't support platforms
|
||||
.*/Libraries/Utilities/HMRLoadingView.js
|
||||
[untyped]
|
||||
.*/node_modules/@react-native-community/cli/.*/.*
|
||||
|
||||
[include]
|
||||
|
||||
|
@ -40,11 +45,31 @@ node_modules/react-native/flow/
|
|||
esproposal.optional_chaining=enable
|
||||
esproposal.nullish_coalescing=enable
|
||||
|
||||
module.system=haste
|
||||
|
||||
esproposal.class_static_fields=enable
|
||||
esproposal.class_instance_fields=enable
|
||||
|
||||
module.file_ext=.js
|
||||
module.file_ext=.json
|
||||
module.file_ext=.ios.js
|
||||
|
||||
module.system=haste
|
||||
module.system.haste.use_name_reducers=true
|
||||
# get basename
|
||||
# get basename
|
||||
module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
|
||||
module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
|
||||
module.system.haste.paths.blacklist=.*/__tests__/.*
|
||||
module.system.haste.paths.blacklist=.*/__tests__/.*
|
||||
module.system.haste.paths.blacklist=.*/__mocks__/.*
|
||||
module.system.haste.paths.blacklist=.*/__mocks__/.*
|
||||
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.*
|
||||
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/Libraries/.*
|
||||
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/Libraries/.*
|
||||
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/RNTester/.*
|
||||
module.system.haste.paths.whitelist=<PROJECT_ROOT>/node_modules/react-native/IntegrationTests/.*
|
||||
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/react-native/react-native-implementation.js
|
||||
module.system.haste.paths.blacklist=<PROJECT_ROOT>/node_modules/react-native/Libraries/Animated/src/polyfills/.*
|
||||
|
||||
experimental.strict_type_args=true
|
||||
|
||||
munge_underscores=true
|
||||
|
@ -67,4 +92,4 @@ suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*
|
|||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
|
||||
|
||||
[version]
|
||||
^0.92.0
|
||||
^0.98.0
|
||||
|
|
|
@ -96,8 +96,8 @@ doo-index.html
|
|||
Statusgo.framework
|
||||
|
||||
#ios
|
||||
ios/Pods
|
||||
ios/StatusIm.xcworkspace
|
||||
/ios/Pods/
|
||||
/ios/StatusIm.xcworkspace
|
||||
.ruby-version
|
||||
status-e2e/
|
||||
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
module.exports = {
|
||||
bracketSpacing: false,
|
||||
jsxBracketSameLine: true,
|
||||
singleQuote: true,
|
||||
trailingComma: 'all',
|
||||
};
|
|
@ -79,13 +79,15 @@ import com.sun.org.apache.xalan.internal.xsltc.compiler.Copy
|
|||
project.ext.react = [
|
||||
nodeExecutableAndArgs: ["node", "--max-old-space-size=16384"],
|
||||
entryFile: "index.android.js",
|
||||
enableHermes: false, // clean and rebuild if changing
|
||||
bundleInPr: true,
|
||||
inputExcludes: ["android/**", "ios/**", "react-native/**", "src/**", "test/**"]
|
||||
]
|
||||
|
||||
configurations.all {
|
||||
exclude group: 'com.facebook.react', module: 'react-native'
|
||||
}
|
||||
// NOTE: Uncomment if building RN from a fork
|
||||
// configurations.all {
|
||||
// exclude group: 'com.facebook.react', module: 'react-native'
|
||||
// }
|
||||
|
||||
apply from: "../../node_modules/react-native/react.gradle"
|
||||
|
||||
|
@ -104,6 +106,28 @@ def enableSeparateBuildPerCPUArchitecture = false
|
|||
*/
|
||||
def enableProguardInReleaseBuilds = false
|
||||
|
||||
/**
|
||||
* The preferred build flavor of JavaScriptCore.
|
||||
*
|
||||
* For example, to use the international variant, you can use:
|
||||
* `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
|
||||
*
|
||||
* The international variant includes ICU i18n library and necessary data
|
||||
* allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
|
||||
* give correct results when using with locales other than en-US. Note that
|
||||
* this variant is about 6MiB larger per architecture than default.
|
||||
*/
|
||||
def jscFlavor = 'org.webkit:android-jsc:+'
|
||||
|
||||
/**
|
||||
* Whether to enable the Hermes VM.
|
||||
*
|
||||
* This should be set on project.ext.react and mirrored here. If it is not set
|
||||
* on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
|
||||
* and the benefits of using Hermes will therefore be sharply reduced.
|
||||
*/
|
||||
def enableHermes = project.ext.react.get("enableHermes", false);
|
||||
|
||||
def getVersionCode = { ->
|
||||
new ByteArrayOutputStream().withStream { stdOut ->
|
||||
if (project.hasProperty("versionCode")) {
|
||||
|
@ -162,6 +186,7 @@ android {
|
|||
ndk {
|
||||
abiFilters getEnvOrConfig('NDK_ABI_FILTERS').split(';')
|
||||
}
|
||||
missingDimensionStrategy 'react-native-camera', 'general'
|
||||
}
|
||||
/**
|
||||
* Arbitrary project metadata
|
||||
|
@ -179,8 +204,15 @@ android {
|
|||
packagingOptions {
|
||||
exclude 'META-INF/rxjava.properties'
|
||||
exclude '/lib/mips64/**'
|
||||
exclude '/lib/arm64-v8a/**'
|
||||
exclude '/lib/armeabi/**'
|
||||
|
||||
pickFirst '**/armeabi-v7a/libc++_shared.so'
|
||||
pickFirst '**/x86/libc++_shared.so'
|
||||
pickFirst '**/arm64-v8a/libc++_shared.so'
|
||||
pickFirst '**/x86_64/libc++_shared.so'
|
||||
pickFirst '**/x86/libjsc.so'
|
||||
pickFirst '**/armeabi-v7a/libjsc.so'
|
||||
|
||||
/** Fix for: Execution failed for task ':app:transformNativeLibsWithStripDebugSymbolForDebug'.
|
||||
* with recent version of ndk (17.0.4754217)
|
||||
*/
|
||||
|
@ -192,6 +224,12 @@ android {
|
|||
javaMaxHeapSize "8g"
|
||||
}
|
||||
signingConfigs {
|
||||
debug {
|
||||
storeFile file('debug.keystore')
|
||||
storePassword 'android'
|
||||
keyAlias 'androiddebugkey'
|
||||
keyPassword 'android'
|
||||
}
|
||||
release {
|
||||
/* environment variables take precedence over gradle.properties file */
|
||||
storeFile file(getEnvOrConfig('STATUS_RELEASE_STORE_FILE').replaceAll("~", System.properties['user.home']))
|
||||
|
@ -213,9 +251,13 @@ android {
|
|||
applicationIdSuffix ".debug"
|
||||
debuggable true
|
||||
versionNameSuffix "-SNAPSHOT"
|
||||
signingConfig signingConfigs.debug
|
||||
resValue "string", "build_config_package", "im.status.ethereum"
|
||||
}
|
||||
release {
|
||||
// Caution! In production, you need to generate your own keystore file.
|
||||
// see https://facebook.github.io/react-native/docs/signed-apk-android.
|
||||
signingConfig signingConfigs.debug
|
||||
minifyEnabled enableProguardInReleaseBuilds
|
||||
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
||||
signingConfig signingConfigs.release
|
||||
|
@ -242,6 +284,7 @@ android {
|
|||
output.versionCodeOverride =
|
||||
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -256,44 +299,33 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation project(':@react-native-community_netinfo')
|
||||
implementation project(':react-native-background-timer')
|
||||
implementation project(':react-native-svg')
|
||||
implementation 'com.android.support:multidex:1.0.2'
|
||||
implementation project(':react-native-splash-screen')
|
||||
implementation project(':react-native-image-resizer')
|
||||
implementation project(':react-native-dialogs')
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
implementation "com.facebook.react:react-native:+" // From node_modules
|
||||
|
||||
if (enableHermes) {
|
||||
def hermesPath = "../../node_modules/hermesvm/android/";
|
||||
debugImplementation files(hermesPath + "hermes-debug.aar")
|
||||
releaseImplementation files(hermesPath + "hermes-release.aar")
|
||||
prImplementation files(hermesPath + "hermes-release.aar")
|
||||
} else {
|
||||
implementation jscFlavor
|
||||
}
|
||||
|
||||
implementation 'com.android.support:multidex:1.0.2'
|
||||
implementation project(':react-native-dialogs')
|
||||
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
|
||||
// Force using exact RN version instead of relying on gradle dependency resolution
|
||||
// https://docs.gradle.org/current/userguide/introduction_dependency_management.html#sec:dependency_resolution
|
||||
// NOTE: Uncomment if building RN from a fork
|
||||
//compile ("com.facebook.react:react-native:0.55.4") { force = true } // From node_modules
|
||||
implementation project(':react-native-android')
|
||||
implementation project(':react-native-languages')
|
||||
implementation project(':react-native-status')
|
||||
implementation project(':react-native-fs')
|
||||
implementation project(':react-native-image-crop-picker')
|
||||
implementation project(':react-native-webview-bridge')
|
||||
implementation project(':react-native-touch-id')
|
||||
implementation project(':react-native-config')
|
||||
implementation project(':react-native-firebase')
|
||||
implementation project(':react-native-shake')
|
||||
implementation project(':react-native-gesture-handler')
|
||||
implementation project(':react-native-screens')
|
||||
implementation project(':RNMail')
|
||||
compile ('com.google.android.gms:play-services-base:16.0.1') {
|
||||
force = true
|
||||
}
|
||||
compile (project(':react-native-camera')) {
|
||||
exclude group: "com.google.android.gms"
|
||||
compile 'com.android.support:exifinterface:28.+'
|
||||
}
|
||||
implementation project(':react-native-status-keycard')
|
||||
implementation 'com.google.firebase:firebase-core:16.0.3' //this decides your firebase SDK version
|
||||
implementation 'com.google.firebase:firebase-messaging:17.1.0'
|
||||
implementation project(':react-native-keychain')
|
||||
implementation "com.google.android.gms:play-services-base:${rootProject.ext.googlePlayServicesVersion}"
|
||||
implementation 'com.google.firebase:firebase-core:16.0.9' //this decides your firebase SDK version
|
||||
implementation 'com.google.firebase:firebase-messaging:18.0.0'
|
||||
|
||||
compile 'com.github.status-im:function:0.0.1'
|
||||
implementation 'com.github.status-im:function:0.0.1'
|
||||
implementation 'com.facebook.fresco:animated-gif:1.10.0'
|
||||
}
|
||||
|
||||
|
@ -318,5 +350,7 @@ task hemroidBuild(type: Exec) {
|
|||
preBuild.dependsOn hemroidBuild
|
||||
|
||||
// Must be at bottom to avoid dependency collision
|
||||
apply plugin: "com.google.gms.google-services"
|
||||
apply plugin: 'com.google.gms.google-services'
|
||||
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
|
||||
|
||||
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
|
||||
|
|
Binary file not shown.
|
@ -9,13 +9,6 @@
|
|||
|
||||
# Add any project specific keep options here:
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Disabling obfuscation is useful if you collect stack traces from production crashes
|
||||
# (unless you are using a system that supports de-obfuscate the stack traces).
|
||||
-dontobfuscate
|
||||
|
|
|
@ -83,11 +83,6 @@
|
|||
<action android:name="com.google.firebase.MESSAGING_EVENT" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
<service android:name="io.invertase.firebase.messaging.RNFirebaseInstanceIdService">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
|
||||
</intent-filter>
|
||||
</service>
|
||||
<service android:name="io.invertase.firebase.messaging.RNFirebaseBackgroundMessagingService" />
|
||||
<provider
|
||||
android:name="android.support.v4.content.FileProvider"
|
||||
|
|
|
@ -1,41 +1,24 @@
|
|||
package im.status.ethereum;
|
||||
|
||||
import android.support.multidex.MultiDexApplication;
|
||||
import android.util.Log;
|
||||
import com.facebook.react.PackageList;
|
||||
import com.facebook.hermes.reactexecutor.HermesExecutorFactory;
|
||||
import com.facebook.react.bridge.JavaScriptExecutorFactory;
|
||||
|
||||
import com.aakashns.reactnativedialogs.ReactNativeDialogsPackage;
|
||||
import com.facebook.react.ReactApplication;
|
||||
import com.reactnativecommunity.netinfo.NetInfoPackage;
|
||||
import com.facebook.react.ReactNativeHost;
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.react.shell.MainReactPackage;
|
||||
import com.facebook.soloader.SoLoader;
|
||||
import com.github.alinz.reactnativewebviewbridge.WebViewBridgePackage;
|
||||
import com.horcrux.svg.SvgPackage;
|
||||
import com.lugg.ReactNativeConfig.ReactNativeConfigPackage;
|
||||
import com.oblador.keychain.KeychainPackage;
|
||||
import com.ocetnik.timer.BackgroundTimerPackage;
|
||||
import com.reactcommunity.rnlanguages.RNLanguagesPackage;
|
||||
import com.reactnative.ivpusic.imagepicker.PickerPackage;
|
||||
import com.rnfs.RNFSPackage;
|
||||
import com.rnfingerprint.FingerprintAuthPackage;
|
||||
|
||||
import org.devio.rn.splashscreen.SplashScreenReactPackage;
|
||||
import org.reactnative.camera.RNCameraPackage;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import fr.bamlab.rnimageresizer.ImageResizerPackage;
|
||||
import im.status.ethereum.function.Function;
|
||||
import im.status.ethereum.keycard.RNStatusKeycardPackage;
|
||||
import im.status.ethereum.module.StatusPackage;
|
||||
import io.invertase.firebase.RNFirebasePackage;
|
||||
import io.invertase.firebase.messaging.RNFirebaseMessagingPackage;
|
||||
import io.invertase.firebase.notifications.RNFirebaseNotificationsPackage;
|
||||
import com.chirag.RNMail.*;
|
||||
import com.clipsub.RNShake.RNShakeEventPackage;
|
||||
import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
|
||||
import com.swmansion.rnscreens.RNScreensPackage;
|
||||
|
||||
public class MainApplication extends MultiDexApplication implements ReactApplication {
|
||||
|
||||
|
@ -48,32 +31,14 @@ public class MainApplication extends MultiDexApplication implements ReactApplica
|
|||
@Override
|
||||
protected List<ReactPackage> getPackages() {
|
||||
StatusPackage statusPackage = new StatusPackage(RootUtil.isDeviceRooted());
|
||||
Function<String, String> callRPC = statusPackage.getCallRPC();
|
||||
return Arrays.asList(
|
||||
new MainReactPackage(),
|
||||
new NetInfoPackage(),
|
||||
new RNMail(),
|
||||
new RNFirebasePackage(),
|
||||
new RNFirebaseMessagingPackage(),
|
||||
new RNFirebaseNotificationsPackage(),
|
||||
new BackgroundTimerPackage(),
|
||||
new SvgPackage(),
|
||||
new SplashScreenReactPackage(),
|
||||
statusPackage,
|
||||
new RNStatusKeycardPackage(),
|
||||
new RNLanguagesPackage(),
|
||||
new RNCameraPackage(),
|
||||
new RNFSPackage(),
|
||||
new ReactNativeDialogsPackage(),
|
||||
new ImageResizerPackage(),
|
||||
new PickerPackage(),
|
||||
new WebViewBridgePackage(BuildConfig.DEBUG_WEBVIEW == "1", callRPC),
|
||||
new ReactNativeConfigPackage(),
|
||||
new KeychainPackage(),
|
||||
new RNShakeEventPackage(),
|
||||
new FingerprintAuthPackage(),
|
||||
new RNGestureHandlerPackage(),
|
||||
new RNScreensPackage());
|
||||
List<ReactPackage> packages = new PackageList(this).getPackages();
|
||||
packages.add(statusPackage);
|
||||
packages.add(new RNFirebaseMessagingPackage());
|
||||
packages.add(new RNFirebaseNotificationsPackage());
|
||||
packages.add(new ReactNativeDialogsPackage());
|
||||
packages.add(new RNStatusKeycardPackage());
|
||||
packages.add(new WebViewBridgePackage(BuildConfig.DEBUG_WEBVIEW == "1"));
|
||||
return packages;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -7,5 +7,7 @@
|
|||
<item name="colorControlNormal">@color/primary</item>
|
||||
<item name="colorControlActivated">@color/primary</item>
|
||||
<item name="android:windowBackground">@color/background</item>
|
||||
<item name="android:textColor">#000000</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -9,7 +9,9 @@ ext {
|
|||
compileSdkVersion = Integer.valueOf(project.compileSdkVersion)
|
||||
targetSdkVersion = Integer.valueOf(project.targetSdkVersion)
|
||||
supportLibVersion = project.supportLibVersion
|
||||
gradleBuildTools = project.gradleBuildTools
|
||||
gradlePluginVersion = project.gradlePluginVersion
|
||||
googlePlayServicesVersion = project.googlePlayServicesVersion
|
||||
googlePlayServicesVisionVersion = project.googlePlayServicesVisionVersion
|
||||
}
|
||||
|
||||
buildscript {
|
||||
|
@ -19,10 +21,8 @@ buildscript {
|
|||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath project.ext.gradleBuildTools
|
||||
// google-services downgraded from 4.1.0 because of
|
||||
// https://github.com/invertase/react-native-firebase/issues/766#issuecomment-365116012
|
||||
classpath 'com.google.gms:google-services:4.0.1'
|
||||
classpath "com.android.tools.build:gradle:${project.ext.gradlePluginVersion}"
|
||||
classpath 'com.google.gms:google-services:4.2.0'
|
||||
classpath 'de.undercouch:gradle-download-task:3.1.2'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
|
@ -54,12 +54,20 @@ allprojects {
|
|||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
maven { url "$rootDir/../node_modules/react-native/android" }
|
||||
maven {
|
||||
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
||||
url("$rootDir/../node_modules/react-native/android")
|
||||
}
|
||||
maven {
|
||||
// Android JSC is installed from npm
|
||||
url("$rootDir/../node_modules/jsc-android/dist")
|
||||
}
|
||||
|
||||
google()
|
||||
jcenter()
|
||||
|
||||
// for geth, function, and status-go
|
||||
flatDir { dirs "libs", System.env.STATUS_GO_ANDROID_LIBDIR }
|
||||
maven { url "https://jitpack.io" }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,12 +21,17 @@
|
|||
# $keytool -genkey -v -keystore ./status-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias status
|
||||
|
||||
# Version requirements used throughout the Gradle scripts
|
||||
minSdkVersion=18
|
||||
minSdkVersion=23
|
||||
compileSdkVersion=28
|
||||
targetSdkVersion=28
|
||||
buildToolsVersion=28.0.3
|
||||
supportLibVersion=28.0.0
|
||||
gradleBuildTools=com.android.tools.build:gradle:3.4.1
|
||||
gradlePluginVersion=3.4.1
|
||||
googlePlayServicesVersion=16.0.1
|
||||
googlePlayServicesVisionVersion=17.0.2
|
||||
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
|
||||
STATUS_RELEASE_STORE_FILE=~/.gradle/status-im.keystore
|
||||
STATUS_RELEASE_STORE_PASSWORD=password
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
keystore(
|
||||
name = "debug",
|
||||
properties = "debug.keystore.properties",
|
||||
store = "debug.keystore",
|
||||
visibility = [
|
||||
"PUBLIC",
|
||||
],
|
||||
)
|
|
@ -1,4 +0,0 @@
|
|||
key.store=debug.keystore
|
||||
key.alias=androiddebugkey
|
||||
key.store.password=android
|
||||
key.alias.password=android
|
|
@ -6,50 +6,15 @@ pluginManagement {
|
|||
}
|
||||
|
||||
rootProject.name = 'StatusIm'
|
||||
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
|
||||
include ':react-native-nfc-manager'
|
||||
project(':react-native-nfc-manager').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-nfc-manager/android')
|
||||
include ':react-native-firebase'
|
||||
project(':react-native-firebase').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-firebase/android')
|
||||
include ':react-native-background-timer'
|
||||
project(':react-native-background-timer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-background-timer/android')
|
||||
include ':react-native-svg'
|
||||
project(':react-native-svg').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-svg/android')
|
||||
include ':app'
|
||||
include ':react-native-splash-screen'
|
||||
project(':react-native-splash-screen').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-splash-screen/android')
|
||||
include ':react-native-image-resizer'
|
||||
project(':react-native-image-resizer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-image-resizer/android')
|
||||
include ':react-native-dialogs'
|
||||
project(':react-native-dialogs').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-dialogs/android')
|
||||
include ':react-native-languages'
|
||||
project(':react-native-languages').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-languages/android')
|
||||
include ':react-native-status'
|
||||
project(':react-native-status').projectDir = new File(rootProject.projectDir, '../modules/react-native-status/android')
|
||||
include ':react-native-camera'
|
||||
project(':react-native-camera').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-camera/android')
|
||||
include ':react-native-status-keycard'
|
||||
project(':react-native-status-keycard').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-status-keycard/android')
|
||||
include ':react-native-fs'
|
||||
project(':react-native-fs').projectDir = new File(settingsDir, '../node_modules/react-native-fs/android')
|
||||
include ':react-native-image-crop-picker'
|
||||
project(':react-native-image-crop-picker').projectDir = new File(settingsDir, '../node_modules/react-native-image-crop-picker/android')
|
||||
include ':react-native-keychain'
|
||||
project(':react-native-keychain').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-keychain/android')
|
||||
include ':react-native-webview-bridge'
|
||||
project(':react-native-webview-bridge').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webview-bridge/android')
|
||||
include ':react-native-touch-id'
|
||||
project(':react-native-touch-id').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-touch-id/android')
|
||||
include ':react-native-config'
|
||||
project(':react-native-config').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-config/android')
|
||||
include ':react-native-android'
|
||||
project(':react-native-android').projectDir = new File(rootProject.projectDir, '../node_modules/react-native/ReactAndroid')
|
||||
include ':RNMail', ':app'
|
||||
project(':RNMail').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-mail/android')
|
||||
include ':react-native-shake'
|
||||
project(':react-native-shake').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-shake/android')
|
||||
include ':react-native-gesture-handler'
|
||||
project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/android')
|
||||
include ':react-native-screens'
|
||||
project(':react-native-screens').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-screens/android')
|
||||
include ':@react-native-community_netinfo'
|
||||
project(':@react-native-community_netinfo').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/netinfo/android')
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -31,7 +31,6 @@ var TopLevel = {
|
|||
"callPrivateRPC" : function () {},
|
||||
"callRPC" : function () {},
|
||||
"canImplyAuthentication" : function () {},
|
||||
"capture" : function () {},
|
||||
"catch" : function () {},
|
||||
"Chance" : function () {},
|
||||
"changePin" : function () {},
|
||||
|
@ -480,6 +479,7 @@ var TopLevel = {
|
|||
"SyncInstallation" : function () {},
|
||||
"SyncInstallationHandler" : function () {},
|
||||
"t" : function () {},
|
||||
"takePictureAsync" : function () {},
|
||||
"Text" : function () {},
|
||||
"text" : function () {},
|
||||
"TextEncoder" : function () {},
|
||||
|
|
50
ios/Podfile
50
ios/Podfile
|
@ -7,37 +7,45 @@ target 'StatusIm' do
|
|||
platform :ios, '9.0'
|
||||
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
|
||||
# use_frameworks!
|
||||
|
||||
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
|
||||
# Pods for StatusIm
|
||||
pod 'Firebase/Core'
|
||||
pod 'Firebase/Messaging'
|
||||
pod 'Firebase/Core', '~> 5.5'
|
||||
pod 'Firebase/Messaging', '~> 5.5'
|
||||
|
||||
# RCTImage is requered by react-native-svg
|
||||
pod 'React', :path => '../node_modules/react-native', :subspecs => ['RCTImage',]
|
||||
pod 'React', :path => '../node_modules/react-native/'
|
||||
pod 'React-Core', :path => '../node_modules/react-native/React'
|
||||
pod 'React-DevSupport', :path => '../node_modules/react-native/React'
|
||||
pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
|
||||
pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
|
||||
pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
|
||||
# RCTImage is required by react-native-svg
|
||||
pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
|
||||
pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
|
||||
pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
|
||||
pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
|
||||
pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
|
||||
pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
|
||||
pod 'React-RCTWebSocket', :path => '../node_modules/react-native/Libraries/WebSocket'
|
||||
|
||||
pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
|
||||
pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
|
||||
pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
|
||||
pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
|
||||
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
|
||||
pod 'react-native-background-timer', :path => '../node_modules/react-native-background-timer'
|
||||
pod 'RNKeychain', :path => '../node_modules/react-native-keychain'
|
||||
pod 'react-native-camera', path: '../node_modules/react-native-camera'
|
||||
pod 'TouchID', path: '../node_modules/react-native-touch-id'
|
||||
pod 'SQLCipher', '~>3.0'
|
||||
pod 'SSZipArchive'
|
||||
|
||||
# when removing svg pod, RCTImage is needed to be removed from React subspecs
|
||||
pod 'RNSVG', :path => '../node_modules/react-native-svg'
|
||||
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
|
||||
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
|
||||
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
|
||||
|
||||
pod 'react-native-netinfo', :path => '../node_modules/@react-native-community/netinfo'
|
||||
pod 'react-native-image-resizer', :path => '../node_modules/react-native-image-resizer'
|
||||
pod 'SQLCipher', '~>3.0'
|
||||
pod 'SSZipArchive'
|
||||
|
||||
target 'StatusImTests' do
|
||||
inherit! :search_paths
|
||||
# Pods for testing
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
post_install do |installer|
|
||||
installer.pods_project.targets.each do |target|
|
||||
if target.name == "React"
|
||||
target.remove_from_project
|
||||
end
|
||||
end
|
||||
use_native_modules!
|
||||
end
|
||||
|
|
402
ios/Podfile.lock
402
ios/Podfile.lock
|
@ -1,99 +1,251 @@
|
|||
PODS:
|
||||
- Firebase/Core (5.7.0):
|
||||
- boost-for-react-native (1.63.0)
|
||||
- Crashlytics (3.13.4):
|
||||
- Fabric (~> 1.10.2)
|
||||
- DoubleConversion (1.1.6)
|
||||
- Fabric (1.10.2)
|
||||
- Firebase/Core (5.20.2):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseAnalytics (= 5.1.1)
|
||||
- Firebase/CoreOnly (5.7.0):
|
||||
- FirebaseCore (= 5.1.2)
|
||||
- Firebase/Messaging (5.7.0):
|
||||
- FirebaseAnalytics (= 5.8.1)
|
||||
- Firebase/CoreOnly (5.20.2):
|
||||
- FirebaseCore (= 5.4.1)
|
||||
- Firebase/Messaging (5.20.2):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseMessaging (= 3.1.1)
|
||||
- FirebaseAnalytics (5.1.1):
|
||||
- FirebaseCore (~> 5.1)
|
||||
- FirebaseInstanceID (~> 3.2)
|
||||
- GoogleAppMeasurement (~> 5.1)
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 5.2.0)
|
||||
- GoogleUtilities/MethodSwizzler (~> 5.2.0)
|
||||
- FirebaseMessaging (= 3.5.0)
|
||||
- FirebaseAnalytics (5.8.1):
|
||||
- FirebaseCore (~> 5.4)
|
||||
- FirebaseInstanceID (~> 3.8)
|
||||
- GoogleAppMeasurement (= 5.8.1)
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 5.2)
|
||||
- GoogleUtilities/MethodSwizzler (~> 5.2)
|
||||
- GoogleUtilities/Network (~> 5.2)
|
||||
- "GoogleUtilities/NSData+zlib (~> 5.2)"
|
||||
- nanopb (~> 0.3)
|
||||
- FirebaseCore (5.1.2):
|
||||
- GoogleUtilities/Logger (~> 5.2)
|
||||
- FirebaseInstanceID (3.2.1):
|
||||
- FirebaseCore (~> 5.1)
|
||||
- FirebaseAnalyticsInterop (1.4.0)
|
||||
- FirebaseCore (5.4.1):
|
||||
- GoogleUtilities/Environment (~> 5.2)
|
||||
- FirebaseMessaging (3.1.1):
|
||||
- FirebaseCore (~> 5.0)
|
||||
- FirebaseInstanceID (~> 3.0)
|
||||
- GoogleUtilities/Reachability (~> 5.2)
|
||||
- GoogleUtilities/Logger (~> 5.2)
|
||||
- FirebaseInstanceID (3.8.1):
|
||||
- FirebaseCore (~> 5.2)
|
||||
- GoogleUtilities/Environment (~> 5.2)
|
||||
- GoogleUtilities/UserDefaults (~> 5.2)
|
||||
- FirebaseMessaging (3.5.0):
|
||||
- FirebaseAnalyticsInterop (~> 1.1)
|
||||
- FirebaseCore (~> 5.2)
|
||||
- FirebaseInstanceID (~> 3.6)
|
||||
- GoogleUtilities/Environment (~> 5.3)
|
||||
- GoogleUtilities/Reachability (~> 5.3)
|
||||
- GoogleUtilities/UserDefaults (~> 5.3)
|
||||
- Protobuf (~> 3.1)
|
||||
- GoogleAppMeasurement (5.1.1):
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 5.2.0)
|
||||
- GoogleUtilities/MethodSwizzler (~> 5.2.0)
|
||||
- Folly (2018.10.22.00):
|
||||
- boost-for-react-native
|
||||
- DoubleConversion
|
||||
- Folly/Default (= 2018.10.22.00)
|
||||
- glog
|
||||
- Folly/Default (2018.10.22.00):
|
||||
- boost-for-react-native
|
||||
- DoubleConversion
|
||||
- glog
|
||||
- glog (0.3.5)
|
||||
- GoogleAppMeasurement (5.8.1):
|
||||
- GoogleUtilities/AppDelegateSwizzler (~> 5.2)
|
||||
- GoogleUtilities/MethodSwizzler (~> 5.2)
|
||||
- GoogleUtilities/Network (~> 5.2)
|
||||
- "GoogleUtilities/NSData+zlib (~> 5.2)"
|
||||
- nanopb (~> 0.3)
|
||||
- GoogleUtilities/AppDelegateSwizzler (5.2.2):
|
||||
- GoogleUtilities/AppDelegateSwizzler (5.8.0):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network
|
||||
- GoogleUtilities/Environment (5.2.2)
|
||||
- GoogleUtilities/Logger (5.2.2):
|
||||
- GoogleUtilities/Environment (5.8.0)
|
||||
- GoogleUtilities/Logger (5.8.0):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/MethodSwizzler (5.2.2):
|
||||
- GoogleUtilities/MethodSwizzler (5.8.0):
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network (5.2.2):
|
||||
- GoogleUtilities/Network (5.8.0):
|
||||
- GoogleUtilities/Logger
|
||||
- "GoogleUtilities/NSData+zlib"
|
||||
- GoogleUtilities/Reachability
|
||||
- "GoogleUtilities/NSData+zlib (5.2.2)"
|
||||
- GoogleUtilities/Reachability (5.2.2):
|
||||
- "GoogleUtilities/NSData+zlib (5.8.0)"
|
||||
- GoogleUtilities/Reachability (5.8.0):
|
||||
- GoogleUtilities/Logger
|
||||
- nanopb (0.3.8):
|
||||
- nanopb/decode (= 0.3.8)
|
||||
- nanopb/encode (= 0.3.8)
|
||||
- nanopb/decode (0.3.8)
|
||||
- nanopb/encode (0.3.8)
|
||||
- Protobuf (3.6.1)
|
||||
- React (0.59.10):
|
||||
- React/Core (= 0.59.10)
|
||||
- GoogleUtilities/UserDefaults (5.8.0):
|
||||
- GoogleUtilities/Logger
|
||||
- nanopb (0.3.901):
|
||||
- nanopb/decode (= 0.3.901)
|
||||
- nanopb/encode (= 0.3.901)
|
||||
- nanopb/decode (0.3.901)
|
||||
- nanopb/encode (0.3.901)
|
||||
- Protobuf (3.9.0)
|
||||
- QBImagePickerController (3.4.0)
|
||||
- React (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-DevSupport (= 0.60.5)
|
||||
- React-RCTActionSheet (= 0.60.5)
|
||||
- React-RCTAnimation (= 0.60.5)
|
||||
- React-RCTBlob (= 0.60.5)
|
||||
- React-RCTImage (= 0.60.5)
|
||||
- React-RCTLinking (= 0.60.5)
|
||||
- React-RCTNetwork (= 0.60.5)
|
||||
- React-RCTSettings (= 0.60.5)
|
||||
- React-RCTText (= 0.60.5)
|
||||
- React-RCTVibration (= 0.60.5)
|
||||
- React-RCTWebSocket (= 0.60.5)
|
||||
- React-Core (0.60.5):
|
||||
- Folly (= 2018.10.22.00)
|
||||
- React-cxxreact (= 0.60.5)
|
||||
- React-jsiexecutor (= 0.60.5)
|
||||
- yoga (= 0.60.5.React)
|
||||
- React-cxxreact (0.60.5):
|
||||
- boost-for-react-native (= 1.63.0)
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-jsinspector (= 0.60.5)
|
||||
- React-DevSupport (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTWebSocket (= 0.60.5)
|
||||
- React-jsi (0.60.5):
|
||||
- boost-for-react-native (= 1.63.0)
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-jsi/Default (= 0.60.5)
|
||||
- React-jsi/Default (0.60.5):
|
||||
- boost-for-react-native (= 1.63.0)
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-jsiexecutor (0.60.5):
|
||||
- DoubleConversion
|
||||
- Folly (= 2018.10.22.00)
|
||||
- glog
|
||||
- React-cxxreact (= 0.60.5)
|
||||
- React-jsi (= 0.60.5)
|
||||
- React-jsinspector (0.60.5)
|
||||
- react-native-background-timer (2.1.1):
|
||||
- React
|
||||
- react-native-camera (1.1.5):
|
||||
- react-native-camera (3.3.3):
|
||||
- React
|
||||
- react-native-camera/RCT (= 1.1.5)
|
||||
- react-native-camera/RN (= 1.1.5)
|
||||
- react-native-camera/RCT (1.1.5):
|
||||
- react-native-camera/RCT (= 3.3.3)
|
||||
- react-native-camera/RN (= 3.3.3)
|
||||
- react-native-camera/RCT (3.3.3):
|
||||
- React
|
||||
- react-native-camera/RN (1.1.5):
|
||||
- react-native-camera/RN (3.3.3):
|
||||
- React
|
||||
- React/Core (0.59.10):
|
||||
- yoga (= 0.59.10.React)
|
||||
- React/RCTImage (0.59.10):
|
||||
- React/Core
|
||||
- React/RCTNetwork
|
||||
- React/RCTNetwork (0.59.10):
|
||||
- React/Core
|
||||
- react-native-image-resizer (1.0.0):
|
||||
- React
|
||||
- react-native-mail (4.0.0):
|
||||
- React
|
||||
- react-native-netinfo (4.2.1):
|
||||
- React
|
||||
- react-native-shake (3.3.1):
|
||||
- React
|
||||
- react-native-splash-screen (3.2.0):
|
||||
- React
|
||||
- react-native-webview (6.11.1):
|
||||
- React
|
||||
- react-native-webview-bridge (0.33.17):
|
||||
- React
|
||||
- React-RCTActionSheet (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTAnimation (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTBlob (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTNetwork (= 0.60.5)
|
||||
- React-RCTWebSocket (= 0.60.5)
|
||||
- React-RCTImage (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTNetwork (= 0.60.5)
|
||||
- React-RCTLinking (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTNetwork (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTSettings (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTText (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTVibration (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- React-RCTWebSocket (0.60.5):
|
||||
- React-Core (= 0.60.5)
|
||||
- RNFirebase (5.5.6):
|
||||
- Firebase/Core
|
||||
- React
|
||||
- RNFirebase/Crashlytics (= 5.5.6)
|
||||
- RNFirebase/Crashlytics (5.5.6):
|
||||
- Crashlytics
|
||||
- Fabric
|
||||
- Firebase/Core
|
||||
- React
|
||||
- RNFS (2.14.1):
|
||||
- React
|
||||
- RNGestureHandler (1.3.0):
|
||||
- React
|
||||
- RNImageCropPicker (0.25.0):
|
||||
- QBImagePickerController
|
||||
- React-Core
|
||||
- React-RCTImage
|
||||
- RSKImageCropper
|
||||
- RNKeychain (3.0.0-rc.3):
|
||||
- React
|
||||
- RNSVG (9.7.1):
|
||||
- RNLanguages (3.0.2):
|
||||
- React
|
||||
- RNScreens (1.0.0-alpha.22):
|
||||
- React
|
||||
- RNSVG (9.8.4):
|
||||
- React
|
||||
- RSKImageCropper (2.2.3)
|
||||
- SQLCipher (3.4.2):
|
||||
- SQLCipher/standard (= 3.4.2)
|
||||
- SQLCipher/common (3.4.2)
|
||||
- SQLCipher/standard (3.4.2):
|
||||
- SQLCipher/common
|
||||
- SSZipArchive (2.1.4)
|
||||
- SSZipArchive (2.2.2)
|
||||
- TouchID (4.4.1):
|
||||
- React
|
||||
- yoga (0.59.10.React)
|
||||
- yoga (0.60.5.React)
|
||||
|
||||
DEPENDENCIES:
|
||||
- Firebase/Core
|
||||
- Firebase/Messaging
|
||||
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
|
||||
- Firebase/Core (~> 5.5)
|
||||
- Firebase/Messaging (~> 5.5)
|
||||
- Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
|
||||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||
- React (from `../node_modules/react-native/`)
|
||||
- React-Core (from `../node_modules/react-native/React`)
|
||||
- React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
|
||||
- React-DevSupport (from `../node_modules/react-native/React`)
|
||||
- React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
|
||||
- React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
|
||||
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
|
||||
- react-native-background-timer (from `../node_modules/react-native-background-timer`)
|
||||
- react-native-camera (from `../node_modules/react-native-camera`)
|
||||
- React/RCTImage (from `../node_modules/react-native`)
|
||||
- react-native-image-resizer (from `../node_modules/react-native-image-resizer`)
|
||||
- react-native-mail (from `../node_modules/react-native-mail`)
|
||||
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
|
||||
- react-native-shake (from `../node_modules/react-native-shake`)
|
||||
- react-native-splash-screen (from `../node_modules/react-native-splash-screen`)
|
||||
- react-native-webview (from `../node_modules/react-native-webview`)
|
||||
- react-native-webview-bridge (from `../node_modules/react-native-webview-bridge`)
|
||||
- React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
|
||||
- React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
|
||||
- React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
|
||||
- React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
|
||||
- React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
|
||||
- React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
|
||||
- React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
|
||||
- React-RCTText (from `../node_modules/react-native/Libraries/Text`)
|
||||
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
|
||||
- React-RCTWebSocket (from `../node_modules/react-native/Libraries/WebSocket`)
|
||||
- RNFirebase (from `../node_modules/react-native-firebase/ios`)
|
||||
- RNFS (from `../node_modules/react-native-fs`)
|
||||
- RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
|
||||
- RNImageCropPicker (from `../node_modules/react-native-image-crop-picker`)
|
||||
- RNKeychain (from `../node_modules/react-native-keychain`)
|
||||
- RNLanguages (from `../node_modules/react-native-languages`)
|
||||
- RNScreens (from `../node_modules/react-native-screens`)
|
||||
- RNSVG (from `../node_modules/react-native-svg`)
|
||||
- SQLCipher (~> 3.0)
|
||||
- SSZipArchive
|
||||
|
@ -102,8 +254,12 @@ DEPENDENCIES:
|
|||
|
||||
SPEC REPOS:
|
||||
https://github.com/cocoapods/specs.git:
|
||||
- boost-for-react-native
|
||||
- Crashlytics
|
||||
- Fabric
|
||||
- Firebase
|
||||
- FirebaseAnalytics
|
||||
- FirebaseAnalyticsInterop
|
||||
- FirebaseCore
|
||||
- FirebaseInstanceID
|
||||
- FirebaseMessaging
|
||||
|
@ -111,18 +267,84 @@ SPEC REPOS:
|
|||
- GoogleUtilities
|
||||
- nanopb
|
||||
- Protobuf
|
||||
- QBImagePickerController
|
||||
- RSKImageCropper
|
||||
- SQLCipher
|
||||
- SSZipArchive
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
DoubleConversion:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
|
||||
Folly:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
|
||||
glog:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
|
||||
React:
|
||||
:path: "../node_modules/react-native"
|
||||
:path: "../node_modules/react-native/"
|
||||
React-Core:
|
||||
:path: "../node_modules/react-native/React"
|
||||
React-cxxreact:
|
||||
:path: "../node_modules/react-native/ReactCommon/cxxreact"
|
||||
React-DevSupport:
|
||||
:path: "../node_modules/react-native/React"
|
||||
React-jsi:
|
||||
:path: "../node_modules/react-native/ReactCommon/jsi"
|
||||
React-jsiexecutor:
|
||||
:path: "../node_modules/react-native/ReactCommon/jsiexecutor"
|
||||
React-jsinspector:
|
||||
:path: "../node_modules/react-native/ReactCommon/jsinspector"
|
||||
react-native-background-timer:
|
||||
:path: "../node_modules/react-native-background-timer"
|
||||
react-native-camera:
|
||||
:path: "../node_modules/react-native-camera"
|
||||
react-native-image-resizer:
|
||||
:path: "../node_modules/react-native-image-resizer"
|
||||
react-native-mail:
|
||||
:path: "../node_modules/react-native-mail"
|
||||
react-native-netinfo:
|
||||
:path: "../node_modules/@react-native-community/netinfo"
|
||||
react-native-shake:
|
||||
:path: "../node_modules/react-native-shake"
|
||||
react-native-splash-screen:
|
||||
:path: "../node_modules/react-native-splash-screen"
|
||||
react-native-webview:
|
||||
:path: "../node_modules/react-native-webview"
|
||||
react-native-webview-bridge:
|
||||
:path: "../node_modules/react-native-webview-bridge"
|
||||
React-RCTActionSheet:
|
||||
:path: "../node_modules/react-native/Libraries/ActionSheetIOS"
|
||||
React-RCTAnimation:
|
||||
:path: "../node_modules/react-native/Libraries/NativeAnimation"
|
||||
React-RCTBlob:
|
||||
:path: "../node_modules/react-native/Libraries/Blob"
|
||||
React-RCTImage:
|
||||
:path: "../node_modules/react-native/Libraries/Image"
|
||||
React-RCTLinking:
|
||||
:path: "../node_modules/react-native/Libraries/LinkingIOS"
|
||||
React-RCTNetwork:
|
||||
:path: "../node_modules/react-native/Libraries/Network"
|
||||
React-RCTSettings:
|
||||
:path: "../node_modules/react-native/Libraries/Settings"
|
||||
React-RCTText:
|
||||
:path: "../node_modules/react-native/Libraries/Text"
|
||||
React-RCTVibration:
|
||||
:path: "../node_modules/react-native/Libraries/Vibration"
|
||||
React-RCTWebSocket:
|
||||
:path: "../node_modules/react-native/Libraries/WebSocket"
|
||||
RNFirebase:
|
||||
:path: "../node_modules/react-native-firebase/ios"
|
||||
RNFS:
|
||||
:path: "../node_modules/react-native-fs"
|
||||
RNGestureHandler:
|
||||
:path: "../node_modules/react-native-gesture-handler"
|
||||
RNImageCropPicker:
|
||||
:path: "../node_modules/react-native-image-crop-picker"
|
||||
RNKeychain:
|
||||
:path: "../node_modules/react-native-keychain"
|
||||
RNLanguages:
|
||||
:path: "../node_modules/react-native-languages"
|
||||
RNScreens:
|
||||
:path: "../node_modules/react-native-screens"
|
||||
RNSVG:
|
||||
:path: "../node_modules/react-native-svg"
|
||||
TouchID:
|
||||
|
@ -131,25 +353,63 @@ EXTERNAL SOURCES:
|
|||
:path: "../node_modules/react-native/ReactCommon/yoga"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
Firebase: 734a4f92957aa6c40e7ae3fda3d9359e1890aa87
|
||||
FirebaseAnalytics: 993577e91157feb40945abedd6ab346d8a4b6ac8
|
||||
FirebaseCore: 3a97432acb324b439fbed338e642f9cbb516a63d
|
||||
FirebaseInstanceID: ea5af6920d0a4a29b40459d055bebe4a6c1333c4
|
||||
FirebaseMessaging: 698c94dd1e3436346c29bb9c85dcdca4c4a0c30b
|
||||
GoogleAppMeasurement: f7507b39b70ad0bd80b3d81518b2f43868974307
|
||||
GoogleUtilities: 06b66f9567769a7958db20a92f0128b2843e49d5
|
||||
nanopb: 5601e6bca2dbf1ed831b519092ec110f66982ca3
|
||||
Protobuf: 1eb9700044745f00181c136ef21b8ff3ad5a0fd5
|
||||
React: 1d605e098d69bdf08960787f3446f0a9dc2e2ccf
|
||||
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
|
||||
Crashlytics: 2dfd686bcb918dc10ee0e76f7f853fe42c7bd552
|
||||
DoubleConversion: 5805e889d232975c086db112ece9ed034df7a0b2
|
||||
Fabric: 706c8b8098fff96c33c0db69cbf81f9c551d0d74
|
||||
Firebase: 0c8cf33f266410c61ab3e2265cfa412200351d9c
|
||||
FirebaseAnalytics: ece1aa57a4f43c64d53a648b5a5e05151aae947b
|
||||
FirebaseAnalyticsInterop: d48b6ab67bcf016a05e55b71fc39c61c0cb6b7f3
|
||||
FirebaseCore: f1a9a8be1aee4bf71a2fc0f4096df6788bdfda61
|
||||
FirebaseInstanceID: a122b0c258720cf250551bb2bedf48c699f80d90
|
||||
FirebaseMessaging: 4235f949ce1c4e827aeb19705ba5c53f9b85aa10
|
||||
Folly: 30e7936e1c45c08d884aa59369ed951a8e68cf51
|
||||
glog: 7b113d8578aa09b57aa5945dd002bc37d0ab4fb5
|
||||
GoogleAppMeasurement: ffe513e90551844a739e7bcbb1d2aca1c28a4338
|
||||
GoogleUtilities: 04fce34bcd5620c1ee76fb79172105c74a4df335
|
||||
nanopb: 2901f78ea1b7b4015c860c2fdd1ea2fee1a18d48
|
||||
Protobuf: 1097ca58584c8d9be81bfbf2c5ff5975648dd87a
|
||||
QBImagePickerController: d54cf93db6decf26baf6ed3472f336ef35cae022
|
||||
React: c438ccc7e14e86d4702bb92d7e262f549ffaa995
|
||||
React-Core: c76495f5c14e73c0f803b89c3fa83f804da61bd6
|
||||
React-cxxreact: f64bc64cf4682d6ea5a064f6017da72482858682
|
||||
React-DevSupport: 30336bca00f72681eac995d21a31b963e7d5cfec
|
||||
React-jsi: 40f467ff088c811c6630acccb4aea57ea7ccb1b5
|
||||
React-jsiexecutor: e4b4717060a0cd8d0270323b5655a68c95432efd
|
||||
React-jsinspector: 044105eea064aec81adc5e4d777a8f6589e7d094
|
||||
react-native-background-timer: bb7a98c8e97fc7c290de2d423dd09ddb73dcbcbb
|
||||
react-native-camera: 68ad5143d2d0636236d46c7de8d2a6455ca52a36
|
||||
react-native-camera: 9c50d7def800895e7991ccda6203929553ceec9c
|
||||
react-native-image-resizer: 04a3409e7d4ad646c4468671c69dec490def139c
|
||||
react-native-mail: ff4aba592530d80ac96eea6c1ca03114b84d630a
|
||||
react-native-netinfo: a91b5cf92ed3ada997cfe2bf067633386eb19fd8
|
||||
react-native-shake: e9d1368d6f0ec7e48c8afc91e379b81006b9ba42
|
||||
react-native-splash-screen: a49be22f0f6648b8416f3bd28258645eeaa5b42b
|
||||
react-native-webview: ad9581723f4d401c22cb3a371811d4dc9310df56
|
||||
react-native-webview-bridge: c712d20bbe7e2a2fabdd5d8ccdfec5e704455763
|
||||
React-RCTActionSheet: 08864c609d9f959abf3d51fdd93f8bc6e91f21eb
|
||||
React-RCTAnimation: a4547e9fac2627ded3df9d302f5558b475faf819
|
||||
React-RCTBlob: 62d5c263a2adb8f7a2cafd601beba18a2d99cbbb
|
||||
React-RCTImage: 963859de2b05d2037d1b7842cdbddc8d7f3a2f3b
|
||||
React-RCTLinking: 5998a7db9a6156ed112b006d01f76b2d1cc83d98
|
||||
React-RCTNetwork: 0b676e8194f3f893db813007d37e37e9820173a3
|
||||
React-RCTSettings: fdd7606f1b6050eced69fc6046d5db6768aefd57
|
||||
React-RCTText: 36c0532feb5521cb295ba80e7e44b70cf1c36fc7
|
||||
React-RCTVibration: dabb8d59bb47e1d9124b3f77bfdc1b33d42b0a74
|
||||
React-RCTWebSocket: 2e7f6e98fd6d2bf447d145e499c3a235cc13e350
|
||||
RNFirebase: ca408d6bee0ca9383bd0cfe84f40b01370b8ad4d
|
||||
RNFS: 6a2bfb5d0b14cf0ad72667f76202358abba4aacf
|
||||
RNGestureHandler: 7ccf2f3f60458e084f9ada01fbaf610f6fef073c
|
||||
RNImageCropPicker: c406db73f02f11bf3a887f856ff04ee50af173f4
|
||||
RNKeychain: 627c6095cef215dd3d9804a9a9cf45ab96aa3997
|
||||
RNLanguages: e3ae05ef105937645218272429dac0c3f7633451
|
||||
RNScreens: 354046589421edc3d83d5c6212475bf1fb9a731d
|
||||
RNSVG: 2e097b92aaa6d4e0f354fd7c49cbf3b17f8b3920
|
||||
RSKImageCropper: a446db0e8444a036b34f3c43db01b2373baa4b2a
|
||||
SQLCipher: f9fcf29b2e59ced7defc2a2bdd0ebe79b40d4990
|
||||
SSZipArchive: 41455d4b8d2b6ab93990820b50dc697c2554a322
|
||||
SSZipArchive: fa16b8cc4cdeceb698e5e5d9f67e9558532fbf23
|
||||
TouchID: b0640fedb86fa2db2fe1df15b61594ad49e76288
|
||||
yoga: 128daf064cacaede0c3bb27424b6b4c71052e6cd
|
||||
yoga: 88c514f310aff89b94a14c5fbf44b95735af0cb7
|
||||
|
||||
PODFILE CHECKSUM: c4092792db2b9d33023311d0876998d7be256942
|
||||
PODFILE CHECKSUM: eada5ca1782f4a5407527b6bb8f04e5fe4ab1e49
|
||||
|
||||
COCOAPODS: 1.5.3
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "group:StatusIm.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:Pods/Pods.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
|
@ -3,10 +3,10 @@
|
|||
"version": "0.0.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "node node_modules/react-native/local-cli/cli.js start"
|
||||
"start": "react-native start"
|
||||
},
|
||||
"dependencies": {
|
||||
"@react-native-community/netinfo": "^3.2.1",
|
||||
"@react-native-community/netinfo": "^4.1.5",
|
||||
"bignumber.js": "git+https://github.com/status-im/bignumber.js.git#v4.0.2-status",
|
||||
"buffer": "^5.4.2",
|
||||
"chance": "^1.1.0",
|
||||
|
@ -17,30 +17,31 @@
|
|||
"i18n-js": "^3.3.0",
|
||||
"identicon.js": "git+https://github.com/status-im/identicon.js.git#v1.2.1-status",
|
||||
"qrcode": "^1.4.1",
|
||||
"react": "16.8.3",
|
||||
"react": "16.8.6",
|
||||
"react-dom": "16.4.2",
|
||||
"react-native": "git+https://github.com/status-im/react-native.git#v0.59.10",
|
||||
"react-native": "0.60.5",
|
||||
"react-native-background-timer": "^2.1.1",
|
||||
"react-native-camera": "git+https://github.com/status-im/react-native-camera.git#v1.1.5-1-status",
|
||||
"react-native-config": "git+https://github.com/status-im/react-native-config.git#0.11.2-1",
|
||||
"react-native-dialogs": "^1.0.5",
|
||||
"react-native-fetch-polyfill": "^1.1.3",
|
||||
"react-native-firebase": "5.1.1",
|
||||
"react-native-fs": "^2.14.1",
|
||||
"react-native-camera": "3.3.3",
|
||||
"react-native-config": "git+https://github.com/status-im/react-native-config.git#0.11.2-1-status",
|
||||
"react-native-dialogs": "1.0.4",
|
||||
"react-native-fetch-polyfill": "1.1.2",
|
||||
"react-native-firebase": "5.5.6",
|
||||
"react-native-fs": "2.14.1",
|
||||
"react-native-gesture-handler": "1.3.0",
|
||||
"react-native-image-crop-picker": "^0.18.2",
|
||||
"react-native-image-crop-picker": "0.25.0",
|
||||
"react-native-image-resizer": "git+https://github.com/status-im/react-native-image-resizer.git#1.0.0-1-status",
|
||||
"react-native-keychain": "git+https://github.com/status-im/react-native-keychain.git#v.3.0.0-status",
|
||||
"react-native-languages": "^3.0.2",
|
||||
"react-native-mail": "git+https://github.com/status-im/react-native-mail.git#v3.0.8_status",
|
||||
"react-native-mail": "git+https://github.com/status-im/react-native-mail.git#v4.0.0-status",
|
||||
"react-native-navigation-twopane": "git+https://github.com/status-im/react-native-navigation-twopane.git#v0.0.2-status",
|
||||
"react-native-screens": "1.0.0-alpha.22",
|
||||
"react-native-shake": "^3.3.1",
|
||||
"react-native-splash-screen": "^3.2.0",
|
||||
"react-native-status-keycard": "^2.5.7",
|
||||
"react-native-svg": "9.7.1",
|
||||
"react-native-svg": "9.8.4",
|
||||
"react-native-touch-id": "^4.4.1",
|
||||
"react-native-webview-bridge": "git+https://github.com/status-im/react-native-webview-bridge.git#fix/classnames-colision",
|
||||
"react-native-webview": "6.11.1",
|
||||
"react-native-webview-bridge": "git+https://github.com/status-im/react-native-webview-bridge.git#fix/community-webview",
|
||||
"react-navigation": "3.11.0",
|
||||
"web3-utils": "^1.2.1"
|
||||
},
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -6,12 +6,10 @@ import com.facebook.react.bridge.NativeModule;
|
|||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.uimanager.ViewManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import im.status.ethereum.function.Function;
|
||||
import statusgo.Statusgo;
|
||||
|
||||
public class StatusPackage implements ReactPackage {
|
||||
|
||||
private boolean rootedDevice;
|
||||
|
@ -22,21 +20,15 @@ public class StatusPackage implements ReactPackage {
|
|||
|
||||
@Override
|
||||
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
||||
NativeModule statusModule = new StatusModule(reactContext, this.rootedDevice);
|
||||
return Collections.singletonList(statusModule);
|
||||
List<NativeModule> modules = new ArrayList<>();
|
||||
|
||||
modules.add(new StatusModule(reactContext, this.rootedDevice));
|
||||
|
||||
return modules;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
public Function<String, String> getCallRPC() {
|
||||
return new Function<String, String>() {
|
||||
@Override
|
||||
public String apply(String payload) {
|
||||
return Statusgo.callRPC(payload);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -234,6 +234,7 @@
|
|||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../../../../node_modules/React/**",
|
||||
"$(SRCROOT)/../../../../ios/Pods/Headers/Public/React-Core",
|
||||
"$(SRCROOT)/../../../../node_modules/react-native/React/**",
|
||||
"$(SRCROOT)/../../../../node_modules/react-native-config/ios/ReactNativeConfig",
|
||||
);
|
||||
|
@ -262,6 +263,7 @@
|
|||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(SRCROOT)/../../../../node_modules/React/**",
|
||||
"$(SRCROOT)/../../../../ios/Pods/Headers/Public/React-Core",
|
||||
"$(SRCROOT)/../../../../node_modules/react-native/React/**",
|
||||
"$(SRCROOT)/../../../../node_modules/react-native-config/ios/ReactNativeConfig",
|
||||
);
|
||||
|
|
|
@ -29,7 +29,7 @@ function extractResults() {
|
|||
echo "Saving build result: ${nixResultPath}"
|
||||
mkdir -p "${resultPath}"
|
||||
cp -vfr ${nixResultPath}/* "${resultPath}"
|
||||
chmod u+w -R "${resultPath}"
|
||||
chmod -R u+w "${resultPath}"
|
||||
}
|
||||
|
||||
# Load Nix profile
|
||||
|
|
|
@ -9,11 +9,11 @@ let
|
|||
gradle = callPackage ./gradle.nix { };
|
||||
|
||||
# Import a local patched version of node_modules, together with a local version of the Maven repo
|
||||
mavenAndNpmDeps = callPackage ./maven-and-npm-deps { inherit stdenv stdenvNoCC gradle bash nodejs zlib localMavenRepoBuilder mkFilter projectNodePackage status-go; androidEnvShellHook = androidEnv.shellHook; };
|
||||
mavenAndNpmDeps = callPackage ./maven-and-npm-deps { inherit stdenv stdenvNoCC gradle bash nodejs zlib localMavenRepoBuilder mkFilter projectNodePackage; };
|
||||
|
||||
# TARGETS
|
||||
release = callPackage ./targets/release-android.nix { inherit target-os gradle mavenAndNpmDeps mkFilter nodejs jsbundle status-go zlib; androidEnvShellHook = androidEnv.shellHook; };
|
||||
generate-maven-and-npm-deps-shell = callPackage ./maven-and-npm-deps/maven/shell.nix { inherit mkShell gradle maven projectNodePackage status-go; androidEnvShellHook = androidEnv.shellHook; };
|
||||
generate-maven-and-npm-deps-shell = callPackage ./maven-and-npm-deps/maven/shell.nix { inherit mkShell gradle maven nodejs projectNodePackage status-go; androidEnvShellHook = androidEnv.shellHook; };
|
||||
adb-shell = mkShell {
|
||||
buildInputs = [ androidEnv.licensedAndroidEnv ];
|
||||
inherit (androidEnv) shellHook;
|
||||
|
|
|
@ -1,19 +1,17 @@
|
|||
#
|
||||
# This script prepares a finalized version of node_modules
|
||||
# (required because for Android we need to run `gradle react-native-android:installArchives`, which builds some additional native libraries
|
||||
# under node_modules/react-native), as well as a local version of the Maven repository required by Gradle scripts
|
||||
# This script prepares a finalized version of node_modules,
|
||||
# as well as a local version of the Maven repository required by Gradle scripts
|
||||
#
|
||||
|
||||
{ stdenv, stdenvNoCC, lib, callPackage,
|
||||
gradle, bash, file, nodejs, status-go, zlib,
|
||||
projectNodePackage, androidEnvShellHook, localMavenRepoBuilder, mkFilter }:
|
||||
gradle, bash, file, nodejs, zlib,
|
||||
projectNodePackage, localMavenRepoBuilder, mkFilter }:
|
||||
|
||||
let
|
||||
mavenLocalRepo = callPackage ./maven { inherit localMavenRepoBuilder; stdenv = if stdenv.isLinux then stdenv else stdenvNoCC; };
|
||||
|
||||
# Import the native dependencies for React Native Android builds
|
||||
jsc-filename = "jsc-android-236355.1.1";
|
||||
react-native-deps = callPackage ./maven/reactnative-android-native-deps.nix { inherit stdenvNoCC jsc-filename; };
|
||||
react-native-deps = callPackage ./maven/reactnative-android-native-deps.nix { inherit stdenvNoCC; };
|
||||
|
||||
createMobileFilesSymlinks = root: ''
|
||||
ln -sf ${root}/mobile_files/package.json.orig ${root}/package.json
|
||||
|
@ -27,11 +25,10 @@ let
|
|||
# Place build target directories in NIX_BUILD_TOP (normally represents /build)
|
||||
projectBuildDir = "$NIX_BUILD_TOP/project";
|
||||
mavenRepoDir = "$NIX_BUILD_TOP/.m2/repository";
|
||||
reactNativeMavenPackageDir = "${mavenRepoDir}/com/facebook/react/react-native"; # This is directory where the react-native Maven package will be generated in
|
||||
reactNativeDepsDir = "$NIX_BUILD_TOP/deps"; # Use local writable deps, otherwise (probably due to some interaction between Nix sandboxing and Java) gradle will fail copying directly from the nix store
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "android-gradle-and-npm-modules";
|
||||
name = "patched-android-gradle-and-npm-modules";
|
||||
src =
|
||||
let path = ./../../../..; # Import the root /android and /mobile_files folders clean of any build artifacts
|
||||
in builtins.path { # We use builtins.path so that we can name the resulting derivation, otherwise the name would be taken from the checkout directory, which is outside of our control
|
||||
|
@ -50,9 +47,10 @@ let
|
|||
root = path;
|
||||
};
|
||||
};
|
||||
phases = [ "unpackPhase" "patchPhase" "installPhase" "fixupPhase" ];
|
||||
nativeBuildInputs = [ projectNodePackage ];
|
||||
buildInputs = [ gradle nodejs bash file zlib mavenLocalRepo ];
|
||||
propagatedBuildInputs = [ react-native-deps ] ++ status-go.buildInputs;
|
||||
propagatedBuildInputs = [ react-native-deps ];
|
||||
unpackPhase = ''
|
||||
runHook preUnpack
|
||||
|
||||
|
@ -65,8 +63,6 @@ let
|
|||
# Copy RN maven dependencies and make them writable, otherwise Gradle copy fails (since the top-level directory is read-only, Java isn't smart enough to copy the child files/folders into that target directory)
|
||||
mkdir -p ${mavenRepoDir}
|
||||
cp -a ${mavenLocalRepo}/. ${mavenRepoDir}
|
||||
mkdir -p ${reactNativeMavenPackageDir}
|
||||
chmod u+w ${reactNativeMavenPackageDir}/
|
||||
cp -a ${react-native-deps}/deps ${reactNativeDepsDir}
|
||||
for d in `find ${reactNativeDepsDir} -mindepth 1 -maxdepth 1 -type d`; do
|
||||
chmod -R u+w $d
|
||||
|
@ -129,11 +125,6 @@ let
|
|||
patchMavenSources $f '${mavenLocalRepo}'
|
||||
done
|
||||
|
||||
# Patch prepareJSC so that it doesn't try to download from registry
|
||||
substituteInPlace ${projectBuildDir}/node_modules/react-native/ReactAndroid/build.gradle \
|
||||
--replace 'prepareJSC(dependsOn: downloadJSC)' 'prepareJSC(dependsOn: createNativeDepsDirectories)' \
|
||||
--replace 'def jscTar = tarTree(downloadJSC.dest)' "def jscTar = tarTree(new File(\"${react-native-deps}/deps/${jsc-filename}.tar.gz\"))"
|
||||
|
||||
# Do not add a BuildId to the generated libraries, for reproducibility
|
||||
substituteInPlace ${projectBuildDir}/node_modules/react-native/ReactAndroid/src/main/jni/Application.mk \
|
||||
--replace \
|
||||
|
@ -158,28 +149,6 @@ let
|
|||
|
||||
runHook postPatch
|
||||
'';
|
||||
buildPhase =
|
||||
androidEnvShellHook +
|
||||
status-go.shellHook + ''
|
||||
export HOME=$NIX_BUILD_TOP
|
||||
export REACT_NATIVE_DEPENDENCIES="${reactNativeDepsDir}"
|
||||
export STATUS_REACT_HOME="${projectBuildDir}"
|
||||
|
||||
pushd ${projectBuildDir}/android
|
||||
# NOTE: This generates the react-native-android binaries under node_modules/react-native/android
|
||||
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${lib.makeLibraryPath [ zlib ]} \
|
||||
gradle -Dmaven.repo.local=${mavenRepoDir} --offline -S react-native-android:installArchives || exit
|
||||
popd > /dev/null
|
||||
'';
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
test -d ${projectBuildDir}/node_modules/react-native/ReactAndroid/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes/com/facebook || \
|
||||
exit 1
|
||||
test -d ${projectBuildDir}/node_modules/react-native/ReactAndroid/build/react-ndk/exported || \
|
||||
exit 2
|
||||
runHook postCheck
|
||||
'';
|
||||
installPhase = ''
|
||||
rm -rf $out
|
||||
mkdir -p $out/{project,.m2/repository}
|
||||
|
|
|
@ -6,5 +6,5 @@ This folder contains the Nix expression (`maven-sources.nix`) that downloads all
|
|||
|
||||
- `generate-nix.sh`: This is the main entry point script, which will use Gradle to determine the dependencies (into `maven-inputs.txt`), and `nix/tools/maven/maven-inputs2nix.sh` to generate `default.nix` from those dependencies.
|
||||
- `fetch-maven-deps.sh`: This script does the heavy work of determining Gradle dependencies and outputting a `maven-inputs.txt` file listing the external URLs.
|
||||
- `reactnative-android-native-deps.nix`: Contains the Nix attribute set used to download the React Native dependencies used in `gradle react-native-android:installArchives`.
|
||||
- `reactnative-android-native-deps.nix`: Contains the Nix attribute set used to download the React Native dependencies used in React Native Gradle scripts.
|
||||
- `maven-inputs.txt`: A list of Maven dependenciy URLs that can be used by `nix/tools/maven/maven-inputs2nix.sh` to generate `maven-sources.nix`.
|
||||
|
|
|
@ -78,11 +78,6 @@ function determineArtifactUrl() {
|
|||
local path=$(getPath "${tokens[@]}")
|
||||
for mavenSourceUrl in ${mavenSources[@]}; do
|
||||
if tryGetPOMFromURL "$mavenSourceUrl/$path"; then
|
||||
if [ "$path" = "com/google/firebase/firebase-analytics/16.0.3/firebase-analytics-16.0.3" ]; then
|
||||
# For some reason maven doesn't detect the correct version of firebase-analytics so we have to hardcode it
|
||||
# TODO: See if we can get rid of this by upgrading to latest firebase
|
||||
echo "$mavenSourceUrl/com/google/firebase/firebase-analytics/15.0.2/firebase-analytics-15.0.2"
|
||||
fi
|
||||
echo "$mavenSourceUrl/$path"
|
||||
return
|
||||
fi
|
||||
|
@ -164,12 +159,14 @@ function retrieveAdditionalDependencies() {
|
|||
mvn_tmp_repo=$(mktemp -d)
|
||||
trap "rm -rf $mvn_tmp_repo $tmp_pom_filename $deps_file_path $tmp_mvn_dep_tree_filename" ERR EXIT HUP INT
|
||||
|
||||
rnModules=$(node ./node_modules/react-native/cli.js config | jq -r '.dependencies | keys | .[]')
|
||||
|
||||
pushd $GIT_ROOT/android > /dev/null
|
||||
|
||||
gradleProjects=$(gradle projects $gradle_opts 2>&1 \
|
||||
| grep "Project ':" \
|
||||
| sed -E "s;^.--- Project '\:([@_a-zA-Z0-9\-]+)';\1;")
|
||||
projects=( ${gradleProjects[@]} )
|
||||
projects=( ${gradleProjects[@]} ${rnModules[@]} )
|
||||
IFS=$'\n' sortedProjects=($(sort -u <<<"${projects[*]}"))
|
||||
unset IFS
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,4 +1,4 @@
|
|||
{ stdenvNoCC, fetchurl, jsc-filename }:
|
||||
{ stdenvNoCC, fetchurl }:
|
||||
|
||||
let
|
||||
# These versions should match node_modules/react-native/ReactAndroid/gradle.properties
|
||||
|
@ -32,10 +32,6 @@ let
|
|||
in stdenvNoCC.mkDerivation {
|
||||
name = "reactnative-android-native-deps";
|
||||
srcs = builtins.map (d: (fetchurl { inherit (d) url sha256; })) react-native-deps-sources;
|
||||
jsc = fetchurl {
|
||||
url = "https://registry.npmjs.org/jsc-android/-/${jsc-filename}.tgz";
|
||||
sha256 = "1s1fzmvpvdblzca7p2ifcysvd9na4jrsikaccqmfpgvkqjalfccp";
|
||||
};
|
||||
phases = [ "unpackPhase" ];
|
||||
unpackPhase = ''
|
||||
# Unpack all source archives.
|
||||
|
@ -44,7 +40,6 @@ in stdenvNoCC.mkDerivation {
|
|||
for i in $srcs; do
|
||||
unpackFile "$i"
|
||||
done
|
||||
cp $jsc $out/deps/${jsc-filename}.tar.gz # do the work of downloadJSC
|
||||
cd ..
|
||||
|
||||
export sourceRoot=$out/deps
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ mkShell, curl, git, gradle, maven,
|
||||
{ mkShell, curl, git, gradle, jq, maven, nodejs,
|
||||
projectNodePackage, androidEnvShellHook, status-go }:
|
||||
|
||||
mkShell {
|
||||
|
@ -6,7 +6,9 @@ mkShell {
|
|||
curl
|
||||
git
|
||||
gradle
|
||||
jq
|
||||
maven
|
||||
nodejs
|
||||
projectNodePackage
|
||||
];
|
||||
shellHook =
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ stdenv, stdenvNoCC, lib, target-os, callPackage,
|
||||
mkFilter, bash, file, gnumake, watchman, gradle,
|
||||
androidEnvShellHook, mavenAndNpmDeps,
|
||||
nodejs, openjdk, jsbundle, status-go, zlib }:
|
||||
nodejs, openjdk, jsbundle, status-go, unzip, zlib }:
|
||||
|
||||
{ build-number,
|
||||
build-type, # Build type (e.g. nightly, release, e2e). Default is to use .env.nightly file
|
||||
|
@ -21,7 +21,7 @@ let
|
|||
if (build-type == "release" || build-type == "nightly" || build-type == "e2e") then ".env.${build-type}" else
|
||||
if build-type != "" then ".env.jenkins" else ".env";
|
||||
buildType' = if (build-type == "pr" || build-type == "e2e") then "pr" else "release"; /* PR builds shouldn't replace normal releases */
|
||||
generatedApkPath = "android/app/build/outputs/apk/${buildType'}/app-${buildType'}.apk";
|
||||
generatedApkPath = "$sourceRoot/android/app/build/outputs/apk/${buildType'}/app-${buildType'}.apk";
|
||||
outApkName = "app.apk";
|
||||
|
||||
in stdenv.mkDerivation {
|
||||
|
@ -40,13 +40,23 @@ in stdenv.mkDerivation {
|
|||
"resources"
|
||||
];
|
||||
dirsToExclude = [ ".git" ".svn" "CVS" ".hg" ".gradle" "build" "intermediates" "libs" "obj" ];
|
||||
filesToInclude = [ envFileName "status-go-version.json" "VERSION" ];
|
||||
filesToInclude = [ envFileName "status-go-version.json" "VERSION" "react-native.config.js" ];
|
||||
root = path;
|
||||
};
|
||||
};
|
||||
nativeBuildInputs = [ bash gradle ] ++ lib.optionals stdenv.isDarwin [ file gnumake watchman ];
|
||||
nativeBuildInputs = [ bash gradle unzip ] ++ lib.optionals stdenv.isDarwin [ file gnumake watchman ];
|
||||
buildInputs = [ nodejs openjdk ];
|
||||
phases = [ "unpackPhase" "patchPhase" "buildPhase" "installPhase" ];
|
||||
phases = [ "unpackPhase" "patchPhase" "buildPhase" "checkPhase" "installPhase" ];
|
||||
unpackPhase = ''
|
||||
runHook preUnpack
|
||||
|
||||
cp -r $src ./project
|
||||
chmod u+w -R ./project
|
||||
|
||||
export sourceRoot=$PWD/project
|
||||
|
||||
runHook postUnpack
|
||||
'';
|
||||
postUnpack = ''
|
||||
mkdir -p ${gradleHome}
|
||||
|
||||
|
@ -62,7 +72,6 @@ in stdenv.mkDerivation {
|
|||
cp -a --no-preserve=ownership ${sourceProjectDir}/android/ $sourceRoot/
|
||||
chmod u+w $sourceRoot/android
|
||||
chmod u+w $sourceRoot/android/app
|
||||
chmod -R u+w $sourceRoot/android/.gradle
|
||||
mkdir $sourceRoot/android/build && chmod -R u+w $sourceRoot/android/build
|
||||
|
||||
# Copy node_modules/ directory
|
||||
|
@ -76,13 +85,11 @@ in stdenv.mkDerivation {
|
|||
prevSet=$-
|
||||
set -e
|
||||
|
||||
substituteInPlace android/gradlew \
|
||||
substituteInPlace $sourceRoot/android/gradlew \
|
||||
--replace \
|
||||
'exec gradle' \
|
||||
"exec gradle -Dmaven.repo.local='${localMavenRepo}' --offline ${gradle-opts}"
|
||||
|
||||
# OPTIONAL: There's no need to forward debug ports for a release build, just disable it
|
||||
|
||||
set $prevSet
|
||||
'';
|
||||
buildPhase =
|
||||
|
@ -96,7 +103,7 @@ in stdenv.mkDerivation {
|
|||
capitalizedBuildType = toUpper (substring 0 1 buildType') + substring 1 (-1) buildType';
|
||||
in ''
|
||||
export STATUS_REACT_HOME=$PWD
|
||||
export HOME=$NIX_BUILD_TOP
|
||||
export HOME=$sourceRoot
|
||||
|
||||
${exportEnvVars}
|
||||
${if secrets-file != "" then "source ${secrets-file}" else ""}
|
||||
|
@ -104,12 +111,16 @@ in stdenv.mkDerivation {
|
|||
${androidEnvShellHook}
|
||||
${concatStrings (catAttrs "shellHook" [ mavenAndNpmDeps status-go ])}
|
||||
|
||||
pushd android
|
||||
pushd $sourceRoot/android
|
||||
${adhocEnvVars} ./gradlew -PversionCode=${build-number} assemble${capitalizedBuildType} || exit
|
||||
popd > /dev/null
|
||||
|
||||
${unsetEnvVars}
|
||||
'';
|
||||
doCheck = true;
|
||||
checkPhase = ''
|
||||
unzip -l ${generatedApkPath} | grep 'assets/index.android.bundle'
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp ${generatedApkPath} $out/${outApkName}
|
||||
|
|
|
@ -29,19 +29,21 @@ if [ -d "$nodeModulesDir" ]; then
|
|||
if [ -f "$sentinelFilePath" ]; then
|
||||
existingPath="$(cat $sentinelFilePath)"
|
||||
if [ "${existingPath}" != "${deps}" ]; then
|
||||
echo "Yarn modules changed, copying over new version"
|
||||
echo "Yarn modules changed, copying new version over"
|
||||
else
|
||||
echo "Checking for modifications in node_modules..."
|
||||
modifiedFiles=( $(find $nodeModulesDir -writable -type f -newer $sentinelFilePath \
|
||||
-not \( -path "$nodeModulesDir/react-native/third-party/*" -prune \
|
||||
-o -path "$nodeModulesDir/react-native/ReactAndroid/build/*" -prune \
|
||||
-o -path "$nodeModulesDir/*/android/build/*" -prune \
|
||||
-o -path './resources/icons/*' -prune \) -print) )
|
||||
modifiedFiles=(
|
||||
$(find $nodeModulesDir -writable -type f -newer $sentinelFilePath \
|
||||
-not \( -path "$nodeModulesDir/react-native/ReactAndroid/build/*" -prune \
|
||||
-o -path "$nodeModulesDir/*/android/build/*" -prune \) -print) )
|
||||
if [ ${#modifiedFiles[@]} -eq 0 ]; then
|
||||
needCopyModules=0
|
||||
echo "No modifications detected."
|
||||
else
|
||||
echo "Modifications detected in ${#modifiedFiles[@]} files:\n${modifiedFiles[@]}"
|
||||
echo "Modifications detected in ${#modifiedFiles[@]} files:"
|
||||
for f in ${modifiedFiles[@]}; do
|
||||
echo "- $(realpath --relative-to=$STATUS_REACT_HOME $f)"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
module.exports = {
|
||||
dependencies: {
|
||||
'react-native-config': {
|
||||
platforms: {
|
||||
ios: null,
|
||||
},
|
||||
},
|
||||
'react-native-dialogs': {
|
||||
platforms: {
|
||||
android: null,
|
||||
ios: null,
|
||||
},
|
||||
},
|
||||
'react-native-image-resizer': {
|
||||
platforms: {
|
||||
ios: null,
|
||||
},
|
||||
},
|
||||
'react-native-status-keycard': {
|
||||
platforms: {
|
||||
android: null,
|
||||
ios: null,
|
||||
},
|
||||
},
|
||||
'react-native-webview-bridge': {
|
||||
platforms: {
|
||||
android: null,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
|
@ -4,21 +4,23 @@
|
|||
[clojure.walk :as walk]
|
||||
[status-im.react-native.js-dependencies :as js-dependencies]))
|
||||
|
||||
(def default-camera (.-default js-dependencies/camera))
|
||||
(def default-camera
|
||||
(-> js-dependencies/camera
|
||||
(object/get "RNCamera")))
|
||||
|
||||
(defn constants [t]
|
||||
(defn- constants [t]
|
||||
(-> default-camera
|
||||
(object/get "constants")
|
||||
(object/get "Constants")
|
||||
(object/get t)
|
||||
(js->clj)
|
||||
(walk/keywordize-keys)))
|
||||
|
||||
(def aspects (constants "Aspect"))
|
||||
(def aspects (constants "Orientation"))
|
||||
(def capture-targets (constants "CaptureTarget"))
|
||||
(def torch-modes (constants "TorchMode"))
|
||||
(def torch-modes (constants "FlashMode"))
|
||||
|
||||
(defn set-torch [state]
|
||||
(set! (.-torchMode default-camera) (get torch-modes state)))
|
||||
(set! (.-flashMode default-camera) (get torch-modes state)))
|
||||
|
||||
(defn request-access-ios [then else]
|
||||
(-> (.checkVideoAuthorizationStatus default-camera)
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
[status-im.ui.components.icons.vector-icons :as icons]))
|
||||
|
||||
(defn image-captured [data]
|
||||
(let [path (.-path data)
|
||||
(let [path (.-uri data)
|
||||
_ (log/debug "Captured image: " path)
|
||||
on-success (fn [base64]
|
||||
(log/debug "Captured success: " base64)
|
||||
|
@ -30,16 +30,16 @@
|
|||
toolbar/default-nav-back
|
||||
[toolbar/content-title (i18n/label :t/image-source-title)]]
|
||||
[camera/camera {:style {:flex 1}
|
||||
:aspect (:fill camera/aspects)
|
||||
;:aspect (:fill camera/aspects)
|
||||
:captureQuality "480p"
|
||||
:captureTarget (:disk camera/capture-targets)
|
||||
;:captureTarget (:disk camera/capture-targets)
|
||||
:type "front"
|
||||
:ref #(reset! camera-ref %)}]
|
||||
[react/view styles/button-container
|
||||
[react/view styles/button
|
||||
[react/touchable-highlight {:on-press (fn []
|
||||
(let [camera @camera-ref]
|
||||
(-> (.capture camera)
|
||||
(-> (.takePictureAsync camera)
|
||||
(.then image-captured)
|
||||
(.catch #(log/debug "Error capturing image: " %)))))}
|
||||
[react/view
|
||||
|
|
|
@ -40,7 +40,6 @@
|
|||
(do (reset! barcode-read? true)
|
||||
(on-barcode-read identifier %))))
|
||||
:ref #(reset! camera-initialized? true)
|
||||
:captureAudio false
|
||||
:style styles/barcode-scanner}])
|
||||
[react/view styles/rectangle-container
|
||||
[react/view styles/rectangle
|
||||
|
|
|
@ -58,9 +58,7 @@
|
|||
[react/with-activity-indicator
|
||||
{}
|
||||
[camera/camera {:style styles/preview
|
||||
:aspect :fill
|
||||
:captureAudio false
|
||||
:torchMode (camera/set-torch camera-flashlight)
|
||||
;:torchMode (camera/set-torch camera-flashlight)
|
||||
:onBarCodeRead #(when-not @read-once?
|
||||
(reset! read-once? true)
|
||||
(re-frame/dispatch [:wallet/fill-request-from-url (camera/get-qr-code-data %) :qr]))}]]
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
(def action-button #js {:default #js {:Item #js {}}})
|
||||
(def config #js {:default #js {}})
|
||||
(def camera #js {:default #js {:constants #js {}}})
|
||||
(def camera #js {:RNCamera #js {:Constants #js {}}})
|
||||
(def dialogs #js {})
|
||||
(def dismiss-keyboard #js {})
|
||||
(def emoji-picker #js {:default #js {}})
|
||||
|
|
Loading…
Reference in New Issue