Merge pull request #308 from realm/sk-react-native-21
Update projects to use React Native 0.21
This commit is contained in:
commit
f3c15ff339
|
@ -14,17 +14,19 @@
|
||||||
|
|
||||||
# Ignore react and fbjs where there are overlaps, but don't ignore
|
# Ignore react and fbjs where there are overlaps, but don't ignore
|
||||||
# anything that react-native relies on
|
# anything that react-native relies on
|
||||||
.*/node_modules/fbjs-haste/.*/__tests__/.*
|
.*/node_modules/fbjs/lib/Map.js
|
||||||
.*/node_modules/fbjs-haste/__forks__/Map.js
|
.*/node_modules/fbjs/lib/Promise.js
|
||||||
.*/node_modules/fbjs-haste/__forks__/Promise.js
|
.*/node_modules/fbjs/lib/fetch.js
|
||||||
.*/node_modules/fbjs-haste/__forks__/fetch.js
|
.*/node_modules/fbjs/lib/ExecutionEnvironment.js
|
||||||
.*/node_modules/fbjs-haste/core/ExecutionEnvironment.js
|
.*/node_modules/fbjs/lib/isEmpty.js
|
||||||
.*/node_modules/fbjs-haste/core/isEmpty.js
|
.*/node_modules/fbjs/lib/crc32.js
|
||||||
.*/node_modules/fbjs-haste/crypto/crc32.js
|
.*/node_modules/fbjs/lib/ErrorUtils.js
|
||||||
.*/node_modules/fbjs-haste/stubs/ErrorUtils.js
|
|
||||||
.*/node_modules/react-haste/React.js
|
# Flow has a built-in definition for the 'react' module which we prefer to use
|
||||||
.*/node_modules/react-haste/renderers/dom/ReactDOM.js
|
# over the currently-untyped source
|
||||||
.*/node_modules/react-haste/renderers/shared/event/eventPlugins/ResponderEventPlugin.js
|
.*/node_modules/react/react.js
|
||||||
|
.*/node_modules/react/lib/React.js
|
||||||
|
.*/node_modules/react/lib/ReactDOM.js
|
||||||
|
|
||||||
# Ignore commoner tests
|
# Ignore commoner tests
|
||||||
.*/node_modules/commoner/test/.*
|
.*/node_modules/commoner/test/.*
|
||||||
|
@ -49,15 +51,15 @@ module.system=haste
|
||||||
munge_underscores=true
|
munge_underscores=true
|
||||||
|
|
||||||
module.name_mapper='^image![a-zA-Z0-9$_-]+$' -> 'GlobalImageStub'
|
module.name_mapper='^image![a-zA-Z0-9$_-]+$' -> 'GlobalImageStub'
|
||||||
module.name_mapper='^[./a-zA-Z0-9$_-]+\.png$' -> 'RelativeImageStub'
|
module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\)$' -> 'RelativeImageStub'
|
||||||
|
|
||||||
suppress_type=$FlowIssue
|
suppress_type=$FlowIssue
|
||||||
suppress_type=$FlowFixMe
|
suppress_type=$FlowFixMe
|
||||||
suppress_type=$FixMe
|
suppress_type=$FixMe
|
||||||
|
|
||||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(1[0-8]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
|
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-1]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
|
||||||
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(1[0-8]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)? #[0-9]+
|
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(2[0-1]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
|
||||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
|
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
|
||||||
|
|
||||||
[version]
|
[version]
|
||||||
0.18.1
|
0.21.0
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
apply plugin: "com.android.application"
|
apply plugin: "com.android.application"
|
||||||
|
|
||||||
|
import com.android.build.OutputFile
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The react.gradle file registers two tasks: bundleDebugJsAndAssets and bundleReleaseJsAndAssets.
|
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
|
||||||
|
* and bundleReleaseJsAndAssets).
|
||||||
* These basically call `react-native bundle` with the correct arguments during the Android build
|
* These basically call `react-native bundle` with the correct arguments during the Android build
|
||||||
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
|
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
|
||||||
* bundle directly from the development server. Below you can see all the possible configurations
|
* bundle directly from the development server. Below you can see all the possible configurations
|
||||||
|
@ -21,6 +24,15 @@ apply plugin: "com.android.application"
|
||||||
* // whether to bundle JS and assets in release mode
|
* // whether to bundle JS and assets in release mode
|
||||||
* bundleInRelease: true,
|
* bundleInRelease: true,
|
||||||
*
|
*
|
||||||
|
* // whether to bundle JS and assets in another build variant (if configured).
|
||||||
|
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
|
||||||
|
* // The configuration property can be in the following formats
|
||||||
|
* // 'bundleIn${productFlavor}${buildType}'
|
||||||
|
* // 'bundleIn${buildType}'
|
||||||
|
* // bundleInFreeDebug: true,
|
||||||
|
* // bundleInPaidRelease: true,
|
||||||
|
* // bundleInBeta: true,
|
||||||
|
*
|
||||||
* // the root of your project, i.e. where "package.json" lives
|
* // the root of your project, i.e. where "package.json" lives
|
||||||
* root: "../../",
|
* root: "../../",
|
||||||
*
|
*
|
||||||
|
@ -49,6 +61,21 @@ apply plugin: "com.android.application"
|
||||||
|
|
||||||
apply from: "react.gradle"
|
apply from: "react.gradle"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set this to true to create two separate APKs instead of one:
|
||||||
|
* - An APK that only works on ARM devices
|
||||||
|
* - An APK that only works on x86 devices
|
||||||
|
* The advantage is the size of the APK is reduced by about 4MB.
|
||||||
|
* Upload all the APKs to the Play Store and people will download
|
||||||
|
* the correct one based on the CPU architecture of their device.
|
||||||
|
*/
|
||||||
|
def enableSeparateBuildPerCPUArchitecture = false
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run Proguard to shrink the Java bytecode in release builds.
|
||||||
|
*/
|
||||||
|
def enableProguardInReleaseBuilds = false
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 23
|
compileSdkVersion 23
|
||||||
buildToolsVersion "23.0.1"
|
buildToolsVersion "23.0.1"
|
||||||
|
@ -63,16 +90,38 @@ android {
|
||||||
abiFilters "armeabi-v7a", "x86"
|
abiFilters "armeabi-v7a", "x86"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
splits {
|
||||||
|
abi {
|
||||||
|
reset()
|
||||||
|
enable enableSeparateBuildPerCPUArchitecture
|
||||||
|
universalApk false // If true, also generate a universal APK
|
||||||
|
include "armeabi-v7a", "x86"
|
||||||
|
}
|
||||||
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
minifyEnabled false // Set this to true to enable Proguard
|
minifyEnabled enableProguardInReleaseBuilds
|
||||||
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// applicationVariants are e.g. debug, release
|
||||||
|
applicationVariants.all { variant ->
|
||||||
|
variant.outputs.each { output ->
|
||||||
|
// For each separate APK per architecture, set a unique version code as described here:
|
||||||
|
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
|
||||||
|
def versionCodes = ["armeabi-v7a":1, "x86":2]
|
||||||
|
def abi = output.getFilter(OutputFile.ABI)
|
||||||
|
if (abi != null) { // null for the universal-debug, universal-release variants
|
||||||
|
output.versionCodeOverride =
|
||||||
|
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile 'com.android.support:appcompat-v7:23.0.1'
|
compile fileTree(dir: "libs", include: ["*.jar"])
|
||||||
compile 'com.facebook.react:react-native:0.20.+'
|
compile "com.android.support:appcompat-v7:23.0.1"
|
||||||
compile project(':realm')
|
compile "com.facebook.react:react-native:+" // From node_modules
|
||||||
|
compile project(":realm")
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,9 +40,12 @@
|
||||||
|
|
||||||
-keep class * extends com.facebook.react.bridge.JavaScriptModule { *; }
|
-keep class * extends com.facebook.react.bridge.JavaScriptModule { *; }
|
||||||
-keep class * extends com.facebook.react.bridge.NativeModule { *; }
|
-keep class * extends com.facebook.react.bridge.NativeModule { *; }
|
||||||
|
-keepclassmembers,includedescriptorclasses class * { native <methods>; }
|
||||||
-keepclassmembers class * { @com.facebook.react.uimanager.UIProp <fields>; }
|
-keepclassmembers class * { @com.facebook.react.uimanager.UIProp <fields>; }
|
||||||
-keepclassmembers class * { @com.facebook.react.uimanager.ReactProp <methods>; }
|
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp <methods>; }
|
||||||
-keepclassmembers class * { @com.facebook.react.uimanager.ReactPropGroup <methods>; }
|
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup <methods>; }
|
||||||
|
|
||||||
|
-dontwarn com.facebook.react.**
|
||||||
|
|
||||||
# okhttp
|
# okhttp
|
||||||
|
|
||||||
|
@ -58,3 +61,7 @@
|
||||||
-dontwarn java.nio.file.*
|
-dontwarn java.nio.file.*
|
||||||
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
|
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
|
||||||
-dontwarn okio.**
|
-dontwarn okio.**
|
||||||
|
|
||||||
|
# stetho
|
||||||
|
|
||||||
|
-dontwarn com.facebook.stetho.**
|
||||||
|
|
|
@ -11,77 +11,87 @@ def elvisFile(thing) {
|
||||||
}
|
}
|
||||||
|
|
||||||
def reactRoot = elvisFile(config.root) ?: file("../../")
|
def reactRoot = elvisFile(config.root) ?: file("../../")
|
||||||
def jsBundleDirDebug = elvisFile(config.jsBundleDirDebug) ?:
|
|
||||||
file("$buildDir/intermediates/assets/debug")
|
|
||||||
def jsBundleDirRelease = elvisFile(config.jsBundleDirRelease) ?:
|
|
||||||
file("$buildDir/intermediates/assets/release")
|
|
||||||
def resourcesDirDebug = elvisFile(config.resourcesDirDebug) ?:
|
|
||||||
file("$buildDir/intermediates/res/merged/debug")
|
|
||||||
def resourcesDirRelease = elvisFile(config.resourcesDirRelease) ?:
|
|
||||||
file("$buildDir/intermediates/res/merged/release")
|
|
||||||
def inputExcludes = config.inputExcludes ?: ["android/**", "ios/**"]
|
def inputExcludes = config.inputExcludes ?: ["android/**", "ios/**"]
|
||||||
|
|
||||||
def jsBundleFileDebug = file("$jsBundleDirDebug/$bundleAssetName")
|
void runBefore(String dependentTaskName, Task task) {
|
||||||
def jsBundleFileRelease = file("$jsBundleDirRelease/$bundleAssetName")
|
Task dependentTask = tasks.findByPath(dependentTaskName);
|
||||||
|
if (dependentTask != null) {
|
||||||
task bundleDebugJsAndAssets(type: Exec) {
|
dependentTask.dependsOn task
|
||||||
// create dirs if they are not there (e.g. the "clean" task just ran)
|
|
||||||
doFirst {
|
|
||||||
jsBundleDirDebug.mkdirs()
|
|
||||||
resourcesDirDebug.mkdirs()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// set up inputs and outputs so gradle can cache the result
|
|
||||||
inputs.files fileTree(dir: reactRoot, excludes: inputExcludes)
|
|
||||||
outputs.dir jsBundleDirDebug
|
|
||||||
outputs.dir resourcesDirDebug
|
|
||||||
|
|
||||||
// set up the call to the react-native cli
|
|
||||||
workingDir reactRoot
|
|
||||||
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
||||||
commandLine "cmd", "/c", "react-native", "bundle", "--platform", "android", "--dev", "true", "--entry-file",
|
|
||||||
entryFile, "--bundle-output", jsBundleFileDebug, "--assets-dest", resourcesDirDebug
|
|
||||||
} else {
|
|
||||||
commandLine "react-native", "bundle", "--platform", "android", "--dev", "true", "--entry-file",
|
|
||||||
entryFile, "--bundle-output", jsBundleFileDebug, "--assets-dest", resourcesDirDebug
|
|
||||||
}
|
|
||||||
|
|
||||||
enabled config.bundleInDebug ?: false
|
|
||||||
}
|
|
||||||
|
|
||||||
task bundleReleaseJsAndAssets(type: Exec) {
|
|
||||||
// create dirs if they are not there (e.g. the "clean" task just ran)
|
|
||||||
doFirst {
|
|
||||||
jsBundleDirRelease.mkdirs()
|
|
||||||
resourcesDirRelease.mkdirs()
|
|
||||||
}
|
|
||||||
|
|
||||||
// set up inputs and outputs so gradle can cache the result
|
|
||||||
inputs.files fileTree(dir: reactRoot, excludes: inputExcludes)
|
|
||||||
outputs.dir jsBundleDirRelease
|
|
||||||
outputs.dir resourcesDirRelease
|
|
||||||
|
|
||||||
// set up the call to the react-native cli
|
|
||||||
workingDir reactRoot
|
|
||||||
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
||||||
commandLine "cmd","/c", "react-native", "bundle", "--platform", "android", "--dev", "false", "--entry-file",
|
|
||||||
entryFile, "--bundle-output", jsBundleFileRelease, "--assets-dest", resourcesDirRelease
|
|
||||||
} else {
|
|
||||||
commandLine "react-native", "bundle", "--platform", "android", "--dev", "false", "--entry-file",
|
|
||||||
entryFile, "--bundle-output", jsBundleFileRelease, "--assets-dest", resourcesDirRelease
|
|
||||||
}
|
|
||||||
|
|
||||||
enabled config.bundleInRelease ?: true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gradle.projectsEvaluated {
|
gradle.projectsEvaluated {
|
||||||
// hook bundleDebugJsAndAssets into the android build process
|
// Grab all build types and product flavors
|
||||||
bundleDebugJsAndAssets.dependsOn mergeDebugResources
|
def buildTypes = android.buildTypes.collect { type -> type.name }
|
||||||
bundleDebugJsAndAssets.dependsOn mergeDebugAssets
|
def productFlavors = android.productFlavors.collect { flavor -> flavor.name }
|
||||||
processDebugResources.dependsOn bundleDebugJsAndAssets
|
|
||||||
|
|
||||||
// hook bundleReleaseJsAndAssets into the android build process
|
// When no product flavors defined, use empty
|
||||||
bundleReleaseJsAndAssets.dependsOn mergeReleaseResources
|
if (!productFlavors) productFlavors.add('')
|
||||||
bundleReleaseJsAndAssets.dependsOn mergeReleaseAssets
|
|
||||||
processReleaseResources.dependsOn bundleReleaseJsAndAssets
|
productFlavors.each { productFlavorName ->
|
||||||
|
buildTypes.each { buildTypeName ->
|
||||||
|
// Create variant and target names
|
||||||
|
def targetName = "${productFlavorName.capitalize()}${buildTypeName.capitalize()}"
|
||||||
|
def targetPath = productFlavorName ?
|
||||||
|
"${productFlavorName}/${buildTypeName}" :
|
||||||
|
"${buildTypeName}"
|
||||||
|
|
||||||
|
// React js bundle directories
|
||||||
|
def jsBundleDirConfigName = "jsBundleDir${targetName}"
|
||||||
|
def jsBundleDir = elvisFile(config."$jsBundleDirConfigName") ?:
|
||||||
|
file("$buildDir/intermediates/assets/${targetPath}")
|
||||||
|
|
||||||
|
def resourcesDirConfigName = "jsBundleDir${targetName}"
|
||||||
|
def resourcesDir = elvisFile(config."${resourcesDirConfigName}") ?:
|
||||||
|
file("$buildDir/intermediates/res/merged/${targetPath}")
|
||||||
|
def jsBundleFile = file("$jsBundleDir/$bundleAssetName")
|
||||||
|
|
||||||
|
// Bundle task name for variant
|
||||||
|
def bundleJsAndAssetsTaskName = "bundle${targetName}JsAndAssets"
|
||||||
|
|
||||||
|
def currentBundleTask = tasks.create(
|
||||||
|
name: bundleJsAndAssetsTaskName,
|
||||||
|
type: Exec) {
|
||||||
|
group = "react"
|
||||||
|
description = "bundle JS and assets for ${targetName}."
|
||||||
|
|
||||||
|
// Create dirs if they are not there (e.g. the "clean" task just ran)
|
||||||
|
doFirst {
|
||||||
|
jsBundleDir.mkdirs()
|
||||||
|
resourcesDir.mkdirs()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set up inputs and outputs so gradle can cache the result
|
||||||
|
inputs.files fileTree(dir: reactRoot, excludes: inputExcludes)
|
||||||
|
outputs.dir jsBundleDir
|
||||||
|
outputs.dir resourcesDir
|
||||||
|
|
||||||
|
// Set up the call to the react-native cli
|
||||||
|
workingDir reactRoot
|
||||||
|
|
||||||
|
// Set up dev mode
|
||||||
|
def devEnabled = !targetName.toLowerCase().contains("release")
|
||||||
|
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||||
|
commandLine "cmd", "/c", "react-native", "bundle", "--platform", "android", "--dev", "${devEnabled}",
|
||||||
|
"--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir
|
||||||
|
} else {
|
||||||
|
commandLine "react-native", "bundle", "--platform", "android", "--dev", "${devEnabled}",
|
||||||
|
"--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir
|
||||||
|
}
|
||||||
|
|
||||||
|
enabled config."bundleIn${targetName}" ||
|
||||||
|
config."bundleIn${buildTypeName.capitalize()}" ?:
|
||||||
|
targetName.toLowerCase().contains("release")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hook bundle${productFlavor}${buildType}JsAndAssets into the android build process
|
||||||
|
currentBundleTask.dependsOn("merge${targetName}Resources")
|
||||||
|
currentBundleTask.dependsOn("merge${targetName}Assets")
|
||||||
|
|
||||||
|
runBefore("processArmeabi-v7a${targetName}Resources", currentBundleTask)
|
||||||
|
runBefore("processX86${targetName}Resources", currentBundleTask)
|
||||||
|
runBefore("processUniversal${targetName}Resources", currentBundleTask)
|
||||||
|
runBefore("process${targetName}Resources", currentBundleTask)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,9 +16,9 @@ allprojects {
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
jcenter()
|
jcenter()
|
||||||
jcenter {
|
maven {
|
||||||
url "http://dl.bintray.com/mkonicek/maven"
|
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
||||||
}
|
url "$projectDir/../../node_modules/react-native/android"
|
||||||
maven { url "https://jitpack.io" }
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,7 @@ export default StyleSheet.create({
|
||||||
},
|
},
|
||||||
listItem: {
|
listItem: {
|
||||||
borderColor: '#c8c7cc',
|
borderColor: '#c8c7cc',
|
||||||
borderBottomWidth: 0.5,
|
borderBottomWidth: StyleSheet.hairlineWidth,
|
||||||
alignItems: 'stretch',
|
alignItems: 'stretch',
|
||||||
alignSelf: 'stretch',
|
alignSelf: 'stretch',
|
||||||
justifyContent: 'center',
|
justifyContent: 'center',
|
||||||
|
|
|
@ -649,7 +649,7 @@
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "[ \"$PLATFORM_NAME\" = \"iphonesimulator\" ] && exit\n../node_modules/react-native/packager/react-native-xcode.sh";
|
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/packager/react-native-xcode.sh";
|
||||||
};
|
};
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
|
@ -738,12 +738,13 @@
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
|
DEAD_CODE_STRIPPING = NO;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||||
"$(SRCROOT)/../node_modules/react-native/React/**",
|
"$(SRCROOT)/../node_modules/react-native/React/**",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = "$(SRCROOT)/ReactExample/Info.plist";
|
INFOPLIST_FILE = ReactExample/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||||
OTHER_LDFLAGS = "-ObjC";
|
OTHER_LDFLAGS = "-ObjC";
|
||||||
PRODUCT_NAME = ReactExample;
|
PRODUCT_NAME = ReactExample;
|
||||||
|
@ -759,7 +760,7 @@
|
||||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||||
"$(SRCROOT)/../node_modules/react-native/React/**",
|
"$(SRCROOT)/../node_modules/react-native/React/**",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = "$(SRCROOT)/ReactExample/Info.plist";
|
INFOPLIST_FILE = ReactExample/Info.plist;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||||
OTHER_LDFLAGS = "-ObjC";
|
OTHER_LDFLAGS = "-ObjC";
|
||||||
PRODUCT_NAME = ReactExample;
|
PRODUCT_NAME = ReactExample;
|
||||||
|
@ -786,7 +787,6 @@
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
ENABLE_TESTABILITY = YES;
|
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
"start": "react-native start"
|
"start": "react-native start"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"react-native": "^0.20.0",
|
"react-native": "^0.21.0",
|
||||||
"realm": "file:../.."
|
"realm": "file:../.."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,15 +51,15 @@ module.system=haste
|
||||||
munge_underscores=true
|
munge_underscores=true
|
||||||
|
|
||||||
module.name_mapper='^image![a-zA-Z0-9$_-]+$' -> 'GlobalImageStub'
|
module.name_mapper='^image![a-zA-Z0-9$_-]+$' -> 'GlobalImageStub'
|
||||||
module.name_mapper='^[./a-zA-Z0-9$_-]+\.png$' -> 'RelativeImageStub'
|
module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\)$' -> 'RelativeImageStub'
|
||||||
|
|
||||||
suppress_type=$FlowIssue
|
suppress_type=$FlowIssue
|
||||||
suppress_type=$FlowFixMe
|
suppress_type=$FlowFixMe
|
||||||
suppress_type=$FixMe
|
suppress_type=$FixMe
|
||||||
|
|
||||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-0]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
|
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-1]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
|
||||||
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(2[0-0]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
|
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(2[0-1]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
|
||||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
|
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
|
||||||
|
|
||||||
[version]
|
[version]
|
||||||
0.20.1
|
0.21.0
|
||||||
|
|
|
@ -26,7 +26,9 @@ import com.android.build.OutputFile
|
||||||
*
|
*
|
||||||
* // whether to bundle JS and assets in another build variant (if configured).
|
* // whether to bundle JS and assets in another build variant (if configured).
|
||||||
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
|
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
|
||||||
* // The configuration property is in the format 'bundleIn${productFlavor}${buildType}'
|
* // The configuration property can be in the following formats
|
||||||
|
* // 'bundleIn${productFlavor}${buildType}'
|
||||||
|
* // 'bundleIn${buildType}'
|
||||||
* // bundleInFreeDebug: true,
|
* // bundleInFreeDebug: true,
|
||||||
* // bundleInPaidRelease: true,
|
* // bundleInPaidRelease: true,
|
||||||
* // bundleInBeta: true,
|
* // bundleInBeta: true,
|
||||||
|
@ -72,14 +74,14 @@ def enableSeparateBuildPerCPUArchitecture = false
|
||||||
/**
|
/**
|
||||||
* Run Proguard to shrink the Java bytecode in release builds.
|
* Run Proguard to shrink the Java bytecode in release builds.
|
||||||
*/
|
*/
|
||||||
def enableProguardInReleaseBuilds = true
|
def enableProguardInReleaseBuilds = false
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 23
|
compileSdkVersion 23
|
||||||
buildToolsVersion "23.0.1"
|
buildToolsVersion "23.0.1"
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "com.reactnativebenchmarks"
|
applicationId "io.realm.react.benchmarks"
|
||||||
minSdkVersion 16
|
minSdkVersion 16
|
||||||
targetSdkVersion 22
|
targetSdkVersion 22
|
||||||
versionCode 1
|
versionCode 1
|
||||||
|
@ -90,9 +92,9 @@ android {
|
||||||
}
|
}
|
||||||
splits {
|
splits {
|
||||||
abi {
|
abi {
|
||||||
enable enableSeparateBuildPerCPUArchitecture
|
|
||||||
universalApk false // Also generate an universal APK
|
|
||||||
reset()
|
reset()
|
||||||
|
enable enableSeparateBuildPerCPUArchitecture
|
||||||
|
universalApk false // If true, also generate a universal APK
|
||||||
include "armeabi-v7a", "x86"
|
include "armeabi-v7a", "x86"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -120,10 +122,7 @@ android {
|
||||||
dependencies {
|
dependencies {
|
||||||
compile fileTree(dir: "libs", include: ["*.jar"])
|
compile fileTree(dir: "libs", include: ["*.jar"])
|
||||||
compile "com.android.support:appcompat-v7:23.0.1"
|
compile "com.android.support:appcompat-v7:23.0.1"
|
||||||
compile "com.facebook.react:react-native:0.20.+"
|
compile "com.facebook.react:react-native:+" // From node_modules
|
||||||
|
|
||||||
compile project(":realm")
|
compile project(":realm")
|
||||||
compile project(':react-native-sqlite-storage')
|
compile project(":react-native-sqlite-storage")
|
||||||
|
|
||||||
compile fileTree(dir: "node_modules/realm/android/libs", include: ["*.jar"])
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,8 +42,8 @@
|
||||||
-keep class * extends com.facebook.react.bridge.NativeModule { *; }
|
-keep class * extends com.facebook.react.bridge.NativeModule { *; }
|
||||||
-keepclassmembers,includedescriptorclasses class * { native <methods>; }
|
-keepclassmembers,includedescriptorclasses class * { native <methods>; }
|
||||||
-keepclassmembers class * { @com.facebook.react.uimanager.UIProp <fields>; }
|
-keepclassmembers class * { @com.facebook.react.uimanager.UIProp <fields>; }
|
||||||
-keepclassmembers class * { @com.facebook.react.uimanager.ReactProp <methods>; }
|
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp <methods>; }
|
||||||
-keepclassmembers class * { @com.facebook.react.uimanager.ReactPropGroup <methods>; }
|
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup <methods>; }
|
||||||
|
|
||||||
-dontwarn com.facebook.react.**
|
-dontwarn com.facebook.react.**
|
||||||
|
|
||||||
|
|
|
@ -30,21 +30,20 @@ gradle.projectsEvaluated {
|
||||||
|
|
||||||
productFlavors.each { productFlavorName ->
|
productFlavors.each { productFlavorName ->
|
||||||
buildTypes.each { buildTypeName ->
|
buildTypes.each { buildTypeName ->
|
||||||
// Create variant and source names
|
// Create variant and target names
|
||||||
def sourceName = "${buildTypeName}"
|
def targetName = "${productFlavorName.capitalize()}${buildTypeName.capitalize()}"
|
||||||
def targetName = "${sourceName.capitalize()}"
|
def targetPath = productFlavorName ?
|
||||||
if (productFlavorName) {
|
"${productFlavorName}/${buildTypeName}" :
|
||||||
sourceName = "${productFlavorName}${targetName}"
|
"${buildTypeName}"
|
||||||
}
|
|
||||||
|
|
||||||
// React js bundle directories
|
// React js bundle directories
|
||||||
def jsBundleDirConfigName = "jsBundleDir${targetName}"
|
def jsBundleDirConfigName = "jsBundleDir${targetName}"
|
||||||
def jsBundleDir = elvisFile(config."$jsBundleDirConfigName") ?:
|
def jsBundleDir = elvisFile(config."$jsBundleDirConfigName") ?:
|
||||||
file("$buildDir/intermediates/assets/${sourceName}")
|
file("$buildDir/intermediates/assets/${targetPath}")
|
||||||
|
|
||||||
def resourcesDirConfigName = "jsBundleDir${targetName}"
|
def resourcesDirConfigName = "jsBundleDir${targetName}"
|
||||||
def resourcesDir = elvisFile(config."${resourcesDirConfigName}") ?:
|
def resourcesDir = elvisFile(config."${resourcesDirConfigName}") ?:
|
||||||
file("$buildDir/intermediates/res/merged/${sourceName}")
|
file("$buildDir/intermediates/res/merged/${targetPath}")
|
||||||
def jsBundleFile = file("$jsBundleDir/$bundleAssetName")
|
def jsBundleFile = file("$jsBundleDir/$bundleAssetName")
|
||||||
|
|
||||||
// Bundle task name for variant
|
// Bundle task name for variant
|
||||||
|
@ -80,7 +79,9 @@ gradle.projectsEvaluated {
|
||||||
"--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir
|
"--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir
|
||||||
}
|
}
|
||||||
|
|
||||||
enabled config."bundleIn${targetName}" ?: targetName.toLowerCase().contains("release")
|
enabled config."bundleIn${targetName}" ||
|
||||||
|
config."bundleIn${buildTypeName.capitalize()}" ?:
|
||||||
|
targetName.toLowerCase().contains("release")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hook bundle${productFlavor}${buildType}JsAndAssets into the android build process
|
// Hook bundle${productFlavor}${buildType}JsAndAssets into the android build process
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.reactnativebenchmarks">
|
package="io.realm.react.benchmarks">
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.reactnativebenchmarks;
|
package io.realm.react.benchmarks;
|
||||||
|
|
||||||
import com.facebook.react.ReactActivity;
|
import com.facebook.react.ReactActivity;
|
||||||
import com.facebook.react.ReactPackage;
|
import com.facebook.react.ReactPackage;
|
|
@ -16,5 +16,9 @@ allprojects {
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
jcenter()
|
jcenter()
|
||||||
|
maven {
|
||||||
|
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
||||||
|
url "$projectDir/../../node_modules/react-native/android"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -164,7 +164,6 @@
|
||||||
/* End PBXCopyFilesBuildPhase section */
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; };
|
|
||||||
00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = "<group>"; };
|
00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = "<group>"; };
|
||||||
00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = "<group>"; };
|
00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = "<group>"; };
|
||||||
00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = "<group>"; };
|
00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = "<group>"; };
|
||||||
|
@ -290,7 +289,6 @@
|
||||||
13B07FAE1A68108700A75B9A /* ReactNativeBenchmarks */ = {
|
13B07FAE1A68108700A75B9A /* ReactNativeBenchmarks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
008F07F21AC5B25A0029DE68 /* main.jsbundle */,
|
|
||||||
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
|
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
|
||||||
13B07FB01A68108700A75B9A /* AppDelegate.m */,
|
13B07FB01A68108700A75B9A /* AppDelegate.m */,
|
||||||
13B07FB51A68108700A75B9A /* Images.xcassets */,
|
13B07FB51A68108700A75B9A /* Images.xcassets */,
|
||||||
|
@ -651,10 +649,8 @@
|
||||||
"$(SRCROOT)/../node_modules/react-native/React/**",
|
"$(SRCROOT)/../node_modules/react-native/React/**",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = ReactNativeBenchmarks/Info.plist;
|
INFOPLIST_FILE = ReactNativeBenchmarks/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||||
OTHER_LDFLAGS = "-ObjC";
|
OTHER_LDFLAGS = "-ObjC";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.realm.ReactNativeBenchmarks;
|
|
||||||
PRODUCT_NAME = ReactNativeBenchmarks;
|
PRODUCT_NAME = ReactNativeBenchmarks;
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
|
@ -669,10 +665,8 @@
|
||||||
"$(SRCROOT)/../node_modules/react-native/React/**",
|
"$(SRCROOT)/../node_modules/react-native/React/**",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = ReactNativeBenchmarks/Info.plist;
|
INFOPLIST_FILE = ReactNativeBenchmarks/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||||
OTHER_LDFLAGS = "-ObjC";
|
OTHER_LDFLAGS = "-ObjC";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = io.realm.ReactNativeBenchmarks;
|
|
||||||
PRODUCT_NAME = ReactNativeBenchmarks;
|
PRODUCT_NAME = ReactNativeBenchmarks;
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
|
@ -716,9 +710,10 @@
|
||||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||||
"$(SRCROOT)/../node_modules/react-native/React/**",
|
"$(SRCROOT)/../node_modules/react-native/React/**",
|
||||||
);
|
);
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = "io.realm.$(PRODUCT_NAME:rfc1034identifier)";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
|
@ -756,8 +751,9 @@
|
||||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||||
"$(SRCROOT)/../node_modules/react-native/React/**",
|
"$(SRCROOT)/../node_modules/react-native/React/**",
|
||||||
);
|
);
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = "io.realm.$(PRODUCT_NAME:rfc1034identifier)";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
"start": "react-native start"
|
"start": "react-native start"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"react-native": "^0.20.0",
|
"react-native": "^0.21.0",
|
||||||
"react-native-sqlite-storage": "^2.1.3",
|
"react-native-sqlite-storage": "^2.1.3",
|
||||||
"react-native-store": "^0.4.1",
|
"react-native-store": "^0.4.1",
|
||||||
"realm": "file:../.."
|
"realm": "file:../.."
|
||||||
|
|
|
@ -7,12 +7,26 @@
|
||||||
# Some modules have their own node_modules with overlap
|
# Some modules have their own node_modules with overlap
|
||||||
.*/node_modules/node-haste/.*
|
.*/node_modules/node-haste/.*
|
||||||
|
|
||||||
# Ignore react-tools where there are overlaps, but don't ignore anything that
|
# Ugh
|
||||||
# react-native relies on
|
.*/node_modules/babel.*
|
||||||
.*/node_modules/react-tools/src/React.js
|
.*/node_modules/babylon.*
|
||||||
.*/node_modules/react-tools/src/renderers/shared/event/EventPropagators.js
|
.*/node_modules/invariant.*
|
||||||
.*/node_modules/react-tools/src/renderers/shared/event/eventPlugins/ResponderEventPlugin.js
|
|
||||||
.*/node_modules/react-tools/src/shared/vendor/core/ExecutionEnvironment.js
|
# Ignore react and fbjs where there are overlaps, but don't ignore
|
||||||
|
# anything that react-native relies on
|
||||||
|
.*/node_modules/fbjs/lib/Map.js
|
||||||
|
.*/node_modules/fbjs/lib/Promise.js
|
||||||
|
.*/node_modules/fbjs/lib/fetch.js
|
||||||
|
.*/node_modules/fbjs/lib/ExecutionEnvironment.js
|
||||||
|
.*/node_modules/fbjs/lib/isEmpty.js
|
||||||
|
.*/node_modules/fbjs/lib/crc32.js
|
||||||
|
.*/node_modules/fbjs/lib/ErrorUtils.js
|
||||||
|
|
||||||
|
# Flow has a built-in definition for the 'react' module which we prefer to use
|
||||||
|
# over the currently-untyped source
|
||||||
|
.*/node_modules/react/react.js
|
||||||
|
.*/node_modules/react/lib/React.js
|
||||||
|
.*/node_modules/react/lib/ReactDOM.js
|
||||||
|
|
||||||
# Ignore commoner tests
|
# Ignore commoner tests
|
||||||
.*/node_modules/commoner/test/.*
|
.*/node_modules/commoner/test/.*
|
||||||
|
@ -37,15 +51,15 @@ module.system=haste
|
||||||
munge_underscores=true
|
munge_underscores=true
|
||||||
|
|
||||||
module.name_mapper='^image![a-zA-Z0-9$_-]+$' -> 'GlobalImageStub'
|
module.name_mapper='^image![a-zA-Z0-9$_-]+$' -> 'GlobalImageStub'
|
||||||
module.name_mapper='^[./a-zA-Z0-9$_-]+\.png$' -> 'RelativeImageStub'
|
module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\)$' -> 'RelativeImageStub'
|
||||||
|
|
||||||
suppress_type=$FlowIssue
|
suppress_type=$FlowIssue
|
||||||
suppress_type=$FlowFixMe
|
suppress_type=$FlowFixMe
|
||||||
suppress_type=$FixMe
|
suppress_type=$FixMe
|
||||||
|
|
||||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(1[0-7]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
|
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-1]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
|
||||||
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(1[0-7]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)? #[0-9]+
|
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(2[0-1]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
|
||||||
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
|
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
|
||||||
|
|
||||||
[version]
|
[version]
|
||||||
0.17.0
|
0.21.0
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
apply plugin: 'android-sdk-manager'
|
|
||||||
apply plugin: "com.android.application"
|
apply plugin: "com.android.application"
|
||||||
|
|
||||||
|
import com.android.build.OutputFile
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The react.gradle file registers two tasks: bundleDebugJsAndAssets and bundleReleaseJsAndAssets.
|
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
|
||||||
|
* and bundleReleaseJsAndAssets).
|
||||||
* These basically call `react-native bundle` with the correct arguments during the Android build
|
* These basically call `react-native bundle` with the correct arguments during the Android build
|
||||||
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
|
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
|
||||||
* bundle directly from the development server. Below you can see all the possible configurations
|
* bundle directly from the development server. Below you can see all the possible configurations
|
||||||
|
@ -22,6 +24,15 @@ apply plugin: "com.android.application"
|
||||||
* // whether to bundle JS and assets in release mode
|
* // whether to bundle JS and assets in release mode
|
||||||
* bundleInRelease: true,
|
* bundleInRelease: true,
|
||||||
*
|
*
|
||||||
|
* // whether to bundle JS and assets in another build variant (if configured).
|
||||||
|
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
|
||||||
|
* // The configuration property can be in the following formats
|
||||||
|
* // 'bundleIn${productFlavor}${buildType}'
|
||||||
|
* // 'bundleIn${buildType}'
|
||||||
|
* // bundleInFreeDebug: true,
|
||||||
|
* // bundleInPaidRelease: true,
|
||||||
|
* // bundleInBeta: true,
|
||||||
|
*
|
||||||
* // the root of your project, i.e. where "package.json" lives
|
* // the root of your project, i.e. where "package.json" lives
|
||||||
* root: "../../",
|
* root: "../../",
|
||||||
*
|
*
|
||||||
|
@ -50,6 +61,21 @@ apply plugin: "com.android.application"
|
||||||
|
|
||||||
apply from: "react.gradle"
|
apply from: "react.gradle"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set this to true to create two separate APKs instead of one:
|
||||||
|
* - An APK that only works on ARM devices
|
||||||
|
* - An APK that only works on x86 devices
|
||||||
|
* The advantage is the size of the APK is reduced by about 4MB.
|
||||||
|
* Upload all the APKs to the Play Store and people will download
|
||||||
|
* the correct one based on the CPU architecture of their device.
|
||||||
|
*/
|
||||||
|
def enableSeparateBuildPerCPUArchitecture = false
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run Proguard to shrink the Java bytecode in release builds.
|
||||||
|
*/
|
||||||
|
def enableProguardInReleaseBuilds = false
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 23
|
compileSdkVersion 23
|
||||||
buildToolsVersion "23.0.1"
|
buildToolsVersion "23.0.1"
|
||||||
|
@ -64,17 +90,39 @@ android {
|
||||||
abiFilters "armeabi-v7a", "x86"
|
abiFilters "armeabi-v7a", "x86"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
splits {
|
||||||
|
abi {
|
||||||
|
reset()
|
||||||
|
enable enableSeparateBuildPerCPUArchitecture
|
||||||
|
universalApk false // If true, also generate a universal APK
|
||||||
|
include "armeabi-v7a", "x86"
|
||||||
|
}
|
||||||
|
}
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
minifyEnabled false // Set this to true to enable Proguard
|
minifyEnabled enableProguardInReleaseBuilds
|
||||||
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// applicationVariants are e.g. debug, release
|
||||||
|
applicationVariants.all { variant ->
|
||||||
|
variant.outputs.each { output ->
|
||||||
|
// For each separate APK per architecture, set a unique version code as described here:
|
||||||
|
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
|
||||||
|
def versionCodes = ["armeabi-v7a":1, "x86":2]
|
||||||
|
def abi = output.getFilter(OutputFile.ABI)
|
||||||
|
if (abi != null) { // null for the universal-debug, universal-release variants
|
||||||
|
output.versionCodeOverride =
|
||||||
|
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile 'com.android.support:appcompat-v7:23.0.1'
|
compile fileTree(dir: "libs", include: ["*.jar"])
|
||||||
compile 'com.facebook.react:react-native:0.20.+'
|
compile "com.android.support:appcompat-v7:23.0.1"
|
||||||
compile project(':realm')
|
compile "com.facebook.react:react-native:+" // From node_modules
|
||||||
compile project(':react-native-fs')
|
compile project(":realm")
|
||||||
|
compile project(":react-native-fs")
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,9 +40,12 @@
|
||||||
|
|
||||||
-keep class * extends com.facebook.react.bridge.JavaScriptModule { *; }
|
-keep class * extends com.facebook.react.bridge.JavaScriptModule { *; }
|
||||||
-keep class * extends com.facebook.react.bridge.NativeModule { *; }
|
-keep class * extends com.facebook.react.bridge.NativeModule { *; }
|
||||||
|
-keepclassmembers,includedescriptorclasses class * { native <methods>; }
|
||||||
-keepclassmembers class * { @com.facebook.react.uimanager.UIProp <fields>; }
|
-keepclassmembers class * { @com.facebook.react.uimanager.UIProp <fields>; }
|
||||||
-keepclassmembers class * { @com.facebook.react.uimanager.ReactProp <methods>; }
|
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp <methods>; }
|
||||||
-keepclassmembers class * { @com.facebook.react.uimanager.ReactPropGroup <methods>; }
|
-keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup <methods>; }
|
||||||
|
|
||||||
|
-dontwarn com.facebook.react.**
|
||||||
|
|
||||||
# okhttp
|
# okhttp
|
||||||
|
|
||||||
|
@ -58,3 +61,7 @@
|
||||||
-dontwarn java.nio.file.*
|
-dontwarn java.nio.file.*
|
||||||
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
|
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
|
||||||
-dontwarn okio.**
|
-dontwarn okio.**
|
||||||
|
|
||||||
|
# stetho
|
||||||
|
|
||||||
|
-dontwarn com.facebook.stetho.**
|
||||||
|
|
|
@ -11,77 +11,87 @@ def elvisFile(thing) {
|
||||||
}
|
}
|
||||||
|
|
||||||
def reactRoot = elvisFile(config.root) ?: file("../../")
|
def reactRoot = elvisFile(config.root) ?: file("../../")
|
||||||
def jsBundleDirDebug = elvisFile(config.jsBundleDirDebug) ?:
|
|
||||||
file("$buildDir/intermediates/assets/debug")
|
|
||||||
def jsBundleDirRelease = elvisFile(config.jsBundleDirRelease) ?:
|
|
||||||
file("$buildDir/intermediates/assets/release")
|
|
||||||
def resourcesDirDebug = elvisFile(config.resourcesDirDebug) ?:
|
|
||||||
file("$buildDir/intermediates/res/merged/debug")
|
|
||||||
def resourcesDirRelease = elvisFile(config.resourcesDirRelease) ?:
|
|
||||||
file("$buildDir/intermediates/res/merged/release")
|
|
||||||
def inputExcludes = config.inputExcludes ?: ["android/**", "ios/**"]
|
def inputExcludes = config.inputExcludes ?: ["android/**", "ios/**"]
|
||||||
|
|
||||||
def jsBundleFileDebug = file("$jsBundleDirDebug/$bundleAssetName")
|
void runBefore(String dependentTaskName, Task task) {
|
||||||
def jsBundleFileRelease = file("$jsBundleDirRelease/$bundleAssetName")
|
Task dependentTask = tasks.findByPath(dependentTaskName);
|
||||||
|
if (dependentTask != null) {
|
||||||
task bundleDebugJsAndAssets(type: Exec) {
|
dependentTask.dependsOn task
|
||||||
// create dirs if they are not there (e.g. the "clean" task just ran)
|
|
||||||
doFirst {
|
|
||||||
jsBundleDirDebug.mkdirs()
|
|
||||||
resourcesDirDebug.mkdirs()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// set up inputs and outputs so gradle can cache the result
|
|
||||||
inputs.files fileTree(dir: reactRoot, excludes: inputExcludes)
|
|
||||||
outputs.dir jsBundleDirDebug
|
|
||||||
outputs.dir resourcesDirDebug
|
|
||||||
|
|
||||||
// set up the call to the react-native cli
|
|
||||||
workingDir reactRoot
|
|
||||||
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
||||||
commandLine "cmd", "/c", "react-native", "bundle", "--platform", "android", "--dev", "true", "--entry-file",
|
|
||||||
entryFile, "--bundle-output", jsBundleFileDebug, "--assets-dest", resourcesDirDebug
|
|
||||||
} else {
|
|
||||||
commandLine "react-native", "bundle", "--platform", "android", "--dev", "true", "--entry-file",
|
|
||||||
entryFile, "--bundle-output", jsBundleFileDebug, "--assets-dest", resourcesDirDebug
|
|
||||||
}
|
|
||||||
|
|
||||||
enabled config.bundleInDebug ?: false
|
|
||||||
}
|
|
||||||
|
|
||||||
task bundleReleaseJsAndAssets(type: Exec) {
|
|
||||||
// create dirs if they are not there (e.g. the "clean" task just ran)
|
|
||||||
doFirst {
|
|
||||||
jsBundleDirRelease.mkdirs()
|
|
||||||
resourcesDirRelease.mkdirs()
|
|
||||||
}
|
|
||||||
|
|
||||||
// set up inputs and outputs so gradle can cache the result
|
|
||||||
inputs.files fileTree(dir: reactRoot, excludes: inputExcludes)
|
|
||||||
outputs.dir jsBundleDirRelease
|
|
||||||
outputs.dir resourcesDirRelease
|
|
||||||
|
|
||||||
// set up the call to the react-native cli
|
|
||||||
workingDir reactRoot
|
|
||||||
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
||||||
commandLine "cmd","/c", "react-native", "bundle", "--platform", "android", "--dev", "false", "--entry-file",
|
|
||||||
entryFile, "--bundle-output", jsBundleFileRelease, "--assets-dest", resourcesDirRelease
|
|
||||||
} else {
|
|
||||||
commandLine "react-native", "bundle", "--platform", "android", "--dev", "false", "--entry-file",
|
|
||||||
entryFile, "--bundle-output", jsBundleFileRelease, "--assets-dest", resourcesDirRelease
|
|
||||||
}
|
|
||||||
|
|
||||||
enabled config.bundleInRelease ?: true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gradle.projectsEvaluated {
|
gradle.projectsEvaluated {
|
||||||
// hook bundleDebugJsAndAssets into the android build process
|
// Grab all build types and product flavors
|
||||||
bundleDebugJsAndAssets.dependsOn mergeDebugResources
|
def buildTypes = android.buildTypes.collect { type -> type.name }
|
||||||
bundleDebugJsAndAssets.dependsOn mergeDebugAssets
|
def productFlavors = android.productFlavors.collect { flavor -> flavor.name }
|
||||||
processDebugResources.dependsOn bundleDebugJsAndAssets
|
|
||||||
|
|
||||||
// hook bundleReleaseJsAndAssets into the android build process
|
// When no product flavors defined, use empty
|
||||||
bundleReleaseJsAndAssets.dependsOn mergeReleaseResources
|
if (!productFlavors) productFlavors.add('')
|
||||||
bundleReleaseJsAndAssets.dependsOn mergeReleaseAssets
|
|
||||||
processReleaseResources.dependsOn bundleReleaseJsAndAssets
|
productFlavors.each { productFlavorName ->
|
||||||
|
buildTypes.each { buildTypeName ->
|
||||||
|
// Create variant and target names
|
||||||
|
def targetName = "${productFlavorName.capitalize()}${buildTypeName.capitalize()}"
|
||||||
|
def targetPath = productFlavorName ?
|
||||||
|
"${productFlavorName}/${buildTypeName}" :
|
||||||
|
"${buildTypeName}"
|
||||||
|
|
||||||
|
// React js bundle directories
|
||||||
|
def jsBundleDirConfigName = "jsBundleDir${targetName}"
|
||||||
|
def jsBundleDir = elvisFile(config."$jsBundleDirConfigName") ?:
|
||||||
|
file("$buildDir/intermediates/assets/${targetPath}")
|
||||||
|
|
||||||
|
def resourcesDirConfigName = "jsBundleDir${targetName}"
|
||||||
|
def resourcesDir = elvisFile(config."${resourcesDirConfigName}") ?:
|
||||||
|
file("$buildDir/intermediates/res/merged/${targetPath}")
|
||||||
|
def jsBundleFile = file("$jsBundleDir/$bundleAssetName")
|
||||||
|
|
||||||
|
// Bundle task name for variant
|
||||||
|
def bundleJsAndAssetsTaskName = "bundle${targetName}JsAndAssets"
|
||||||
|
|
||||||
|
def currentBundleTask = tasks.create(
|
||||||
|
name: bundleJsAndAssetsTaskName,
|
||||||
|
type: Exec) {
|
||||||
|
group = "react"
|
||||||
|
description = "bundle JS and assets for ${targetName}."
|
||||||
|
|
||||||
|
// Create dirs if they are not there (e.g. the "clean" task just ran)
|
||||||
|
doFirst {
|
||||||
|
jsBundleDir.mkdirs()
|
||||||
|
resourcesDir.mkdirs()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set up inputs and outputs so gradle can cache the result
|
||||||
|
inputs.files fileTree(dir: reactRoot, excludes: inputExcludes)
|
||||||
|
outputs.dir jsBundleDir
|
||||||
|
outputs.dir resourcesDir
|
||||||
|
|
||||||
|
// Set up the call to the react-native cli
|
||||||
|
workingDir reactRoot
|
||||||
|
|
||||||
|
// Set up dev mode
|
||||||
|
def devEnabled = !targetName.toLowerCase().contains("release")
|
||||||
|
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
||||||
|
commandLine "cmd", "/c", "react-native", "bundle", "--platform", "android", "--dev", "${devEnabled}",
|
||||||
|
"--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir
|
||||||
|
} else {
|
||||||
|
commandLine "react-native", "bundle", "--platform", "android", "--dev", "${devEnabled}",
|
||||||
|
"--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir
|
||||||
|
}
|
||||||
|
|
||||||
|
enabled config."bundleIn${targetName}" ||
|
||||||
|
config."bundleIn${buildTypeName.capitalize()}" ?:
|
||||||
|
targetName.toLowerCase().contains("release")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hook bundle${productFlavor}${buildType}JsAndAssets into the android build process
|
||||||
|
currentBundleTask.dependsOn("merge${targetName}Resources")
|
||||||
|
currentBundleTask.dependsOn("merge${targetName}Assets")
|
||||||
|
|
||||||
|
runBefore("processArmeabi-v7a${targetName}Resources", currentBundleTask)
|
||||||
|
runBefore("processX86${targetName}Resources", currentBundleTask)
|
||||||
|
runBefore("processUniversal${targetName}Resources", currentBundleTask)
|
||||||
|
runBefore("process${targetName}Resources", currentBundleTask)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
"start": "react-native start"
|
"start": "react-native start"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"react-native": "^0.20.0",
|
"react-native": "^0.21.0",
|
||||||
"react-native-fs": "^1.1.0",
|
"react-native-fs": "^1.1.0",
|
||||||
"xmlbuilder": "^4.2.1",
|
"xmlbuilder": "^4.2.1",
|
||||||
"realm": "file:../..",
|
"realm": "file:../..",
|
||||||
|
|
Loading…
Reference in New Issue