diff --git a/.flowconfig b/.flowconfig index db174bd4c1..7b792820a8 100644 --- a/.flowconfig +++ b/.flowconfig @@ -38,7 +38,23 @@ node_modules/react-native/flow-github/ [options] emoji=true +esproposal.optional_chaining=enable +esproposal.nullish_coalescing=enable + module.system=haste +module.system.haste.use_name_reducers=true +# get basename +module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1' +# strip .js or .js.flow suffix +module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1' +# strip .ios suffix +module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1' +module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1' +module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1' +module.system.haste.paths.blacklist=.*/__tests__/.* +module.system.haste.paths.blacklist=.*/__mocks__/.* +module.system.haste.paths.blacklist=/node_modules/react-native/Libraries/Animated/src/polyfills/.* +module.system.haste.paths.whitelist=/node_modules/react-native/Libraries/.* munge_underscores=true @@ -67,4 +83,4 @@ module.file_ext=.jsx module.file_ext=.json [version] -^0.67.0 +^0.78.0 diff --git a/android/app/build.gradle b/android/app/build.gradle index 0e57acb795..bd3b6037a7 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -2,6 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion rootProject.ext.compileSdkVersion + buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId 'org.jitsi.meet' @@ -44,9 +45,10 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:22.2.0' - compile 'com.google.android.gms:play-services-auth:15.0.0' + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation "com.android.support:support-v4:${rootProject.ext.supportLibVersion}" + implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" + implementation 'com.google.android.gms:play-services-auth:15.0.0' implementation project(':sdk') diff --git a/android/build.gradle b/android/build.gradle index e10548390e..73d3d21dcb 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -7,7 +7,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' + classpath 'com.android.tools.build:gradle:3.1.4' classpath 'com.google.gms:google-services:3.2.1' // NOTE: Do not place your application dependencies here; they belong @@ -153,10 +153,11 @@ allprojects { } ext { - buildToolsVersion = "26.0.2" - compileSdkVersion = 26 + buildToolsVersion = "27.0.3" + compileSdkVersion = 27 minSdkVersion = 21 targetSdkVersion = 26 + supportLibVersion = "27.1.1" // The Maven artifact groupdId of the third-party react-native modules which // Jitsi Meet SDK for Android depends on and which are not available in @@ -179,3 +180,8 @@ subprojects { subproject -> } } } + +task wrapper(type: Wrapper) { + gradleVersion = '4.4' + distributionUrl = distributionUrl.replace("bin", "all") +} diff --git a/android/gradle.properties b/android/gradle.properties index 0d5caf9040..55b0f2852d 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -17,5 +17,4 @@ # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true -android.useDeprecatedNdk=true -version=1 +version=1 \ No newline at end of file diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar index b5166dad4d..01b8bf6b1f 100644 Binary files a/android/gradle/wrapper/gradle-wrapper.jar and b/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 5458150aa1..00f216dc24 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip diff --git a/android/gradlew b/android/gradlew index 91a7e269e1..cccdd3d517 100755 --- a/android/gradlew +++ b/android/gradlew @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh ############################################################################## ## @@ -6,47 +6,6 @@ ## ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" -} - -die ( ) { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; -esac - -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - # Attempt to set APP_HOME # Resolve links: $0 may be a link PRG="$0" @@ -61,9 +20,49 @@ while [ -h "$PRG" ] ; do fi done SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- +cd "`dirname \"$PRG\"`/" >/dev/null APP_HOME="`pwd -P`" -cd "$SAVED" >&- +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar @@ -90,7 +89,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then @@ -114,6 +113,7 @@ fi if $cygwin ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` @@ -154,11 +154,19 @@ if $cygwin ; then esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " } -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +APP_ARGS=$(save "$@") -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat index aec99730b4..e95643d6a2 100644 --- a/android/gradlew.bat +++ b/android/gradlew.bat @@ -8,14 +8,14 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -46,10 +46,9 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windowz variants +@rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. @@ -60,11 +59,6 @@ set _SKIP=2 if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ :execute @rem Setup the command line diff --git a/android/sdk/build.gradle b/android/sdk/build.gradle index 9ed7e8487c..dfefe933f5 100644 --- a/android/sdk/build.gradle +++ b/android/sdk/build.gradle @@ -19,136 +19,145 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) + implementation fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:27.0.2' - compile 'com.dropbox.core:dropbox-core-sdk:3.0.8' - compile 'com.facebook.react:react-native:+' + implementation "com.android.support:support-v4:${rootProject.ext.supportLibVersion}" + implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" - compile project(':react-native-background-timer') - compile project(':react-native-fast-image') - compile(project(":react-native-google-signin")) { + implementation 'com.dropbox.core:dropbox-core-sdk:3.0.8' + api 'com.facebook.react:react-native:+' + + implementation project(':react-native-background-timer') + implementation project(':react-native-calendar-events') + implementation(project(':react-native-fast-image')) { + exclude group: 'com.android.support' + } + implementation(project(":react-native-google-signin")) { exclude group: 'com.google.android.gms' + exclude group: 'com.android.support' } - compile project(':react-native-immersive') - compile project(':react-native-keep-awake') - compile project(':react-native-linear-gradient') - compile project(':react-native-locale-detector') - compile project(':react-native-sound') - compile project(':react-native-vector-icons') - compile project(':react-native-webrtc') - compile project(':react-native-calendar-events') + implementation project(':react-native-immersive') + implementation project(':react-native-keep-awake') + implementation project(':react-native-linear-gradient') + implementation project(':react-native-locale-detector') + implementation project(':react-native-sound') + implementation project(':react-native-vector-icons') + implementation project(':react-native-webrtc') - testCompile 'junit:junit:4.12' + testImplementation 'junit:junit:4.12' } -// Build process helpers -// -void runBefore(String dependentTaskName, Task task) { - Task dependentTask = tasks.findByPath(dependentTaskName); - if (dependentTask != null) { - dependentTask.dependsOn task +// Here we bundle all assets, resources and React files. We cannot use the +// react.gradle file provided by react-native because it's designed to be used +// in an application (it taps into applicationVariants, but the SDK is a library +// so we need libraryVariants instead). +android.libraryVariants.all { def variant -> + // Create variant and target names + def targetName = variant.name.capitalize() + def targetPath = variant.dirName + + // React js bundle directories + def jsBundleDir = file("$buildDir/generated/assets/react/${targetPath}") + def resourcesDir = file("$buildDir/generated/res/react/${targetPath}") + + def jsBundleFile = file("$jsBundleDir/index.android.bundle") + + def currentBundleTask = tasks.create( + name: "bundle${targetName}JsAndAssets", + 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.deleteDir() + jsBundleDir.mkdirs() + resourcesDir.deleteDir() + resourcesDir.mkdirs() + } + + // Set up inputs and outputs so gradle can cache the result + def reactRoot = file("${projectDir}/../../") + inputs.files fileTree(dir: reactRoot, excludes: ["android/**", "ios/**"]) + 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") + + // Run the bundler + commandLine( + "node", + "node_modules/react-native/local-cli/cli.js", + "bundle", + "--platform", "android", + "--dev", "${devEnabled}", + "--reset-cache", + "--entry-file", "index.android.js", + "--bundle-output", jsBundleFile, + "--assets-dest", resourcesDir) + + // Disable bundling on dev builds + enabled !devEnabled } -} -gradle.projectsEvaluated { - android.buildTypes.all { buildType -> - def buildNameCapitalized = "${buildType.name.capitalize()}" - def bundlePath = "${buildDir}/intermediates/bundles/${buildType.name}" + currentBundleTask.ext.generatedResFolders = files(resourcesDir).builtBy(currentBundleTask) + currentBundleTask.ext.generatedAssetsFolders = files(jsBundleDir).builtBy(currentBundleTask) - // Bundle fonts in react-native-vector-icons. + variant.registerGeneratedResFolders(currentBundleTask.generatedResFolders) + variant.mergeResources.dependsOn(currentBundleTask) + + def assetsDir = variant.mergeAssets.outputDir + + variant.mergeAssets.doLast { + // Bundle fonts in react-native-vector-icons // - - def currentFontTask = tasks.create( - name: "copy${buildNameCapitalized}Fonts", - type: Copy) { + copy { from("${projectDir}/../../fonts/jitsi.ttf") from("${projectDir}/../../node_modules/react-native-vector-icons/Fonts/") - into("${bundlePath}/assets/fonts") + into("${assetsDir}/fonts") } - currentFontTask.dependsOn("merge${buildNameCapitalized}Resources") - currentFontTask.dependsOn("merge${buildNameCapitalized}Assets") - - runBefore("processArmeabi-v7a${buildNameCapitalized}Resources", currentFontTask) - runBefore("processX86${buildNameCapitalized}Resources", currentFontTask) - runBefore("processUniversal${buildNameCapitalized}Resources", currentFontTask) - runBefore("process${buildNameCapitalized}Resources", currentFontTask) - - def currentSoundsTask = tasks.create( - name: "copy${buildNameCapitalized}Sounds", - type: Copy) { - from("${projectDir}/../../sounds/joined.wav") - from("${projectDir}/../../sounds/left.wav") - from("${projectDir}/../../sounds/outgoingRinging.wav") - from("${projectDir}/../../sounds/outgoingStart.wav") - from("${projectDir}/../../sounds/recordingOn.mp3") - from("${projectDir}/../../sounds/recordingOff.mp3") - from("${projectDir}/../../sounds/rejected.wav") - into("${bundlePath}/assets/sounds") - } - - currentSoundsTask.dependsOn("merge${buildNameCapitalized}Resources") - currentSoundsTask.dependsOn("merge${buildNameCapitalized}Assets") - - runBefore("processArmeabi-v7a${buildNameCapitalized}Resources", currentSoundsTask) - runBefore("processX86${buildNameCapitalized}Resources", currentSoundsTask) - runBefore("processUniversal${buildNameCapitalized}Resources", currentSoundsTask) - runBefore("process${buildNameCapitalized}Resources", currentSoundsTask) - - // Bundle JavaScript and React resources. - // (adapted from react-native/react.gradle) + // Bundle sounds // - - // React JS bundle directories - def jsBundleDir = file("${bundlePath}/assets") - def resourcesDir = file("${bundlePath}/res/merged") - def jsBundleFile = file("${jsBundleDir}/index.android.bundle") - - // Bundle task name for variant. - def bundleJsAndAssetsTaskName = "bundle${buildNameCapitalized}JsAndAssets" - - def currentBundleTask = tasks.create( - name: bundleJsAndAssetsTaskName, - type: Exec) { - // Set up inputs and outputs so gradle can cache the result. - def reactRoot = file("${projectDir}/../../") - inputs.files fileTree(dir: reactRoot, excludes: ['android/**', 'ios/**']) - outputs.dir jsBundleDir - outputs.dir resourcesDir - - // Set up the call to the react-native cli. - workingDir reactRoot - - // Create JS bundle - def devEnabled = !buildNameCapitalized.toLowerCase().contains('release') - commandLine( - 'node', - 'node_modules/react-native/local-cli/cli.js', - 'bundle', - '--assets-dest', resourcesDir, - '--bundle-output', jsBundleFile, - '--dev', "${devEnabled}", - '--entry-file', 'index.android.js', - '--platform', 'android', - '--reset-cache') - - // Disable bundling on dev builds - enabled !devEnabled + copy { + from("${projectDir}/../../sounds/joined.wav") + from("${projectDir}/../../sounds/left.wav") + from("${projectDir}/../../sounds/outgoingRinging.wav") + from("${projectDir}/../../sounds/outgoingStart.wav") + from("${projectDir}/../../sounds/recordingOn.mp3") + from("${projectDir}/../../sounds/recordingOff.mp3") + from("${projectDir}/../../sounds/rejected.wav") + into("${assetsDir}/sounds") } - // Hook bundle${productFlavor}${buildType}JsAndAssets into the android build process - currentBundleTask.dependsOn("merge${buildNameCapitalized}Resources") - currentBundleTask.dependsOn("merge${buildNameCapitalized}Assets") + // Copy React assets + // + if (currentBundleTask.enabled) { + copy { + from(jsBundleDir) + into(assetsDir) + } + } + } - runBefore("processArmeabi-v7a${buildNameCapitalized}Resources", currentBundleTask) - runBefore("processX86${buildNameCapitalized}Resources", currentBundleTask) - runBefore("processUniversal${buildNameCapitalized}Resources", currentBundleTask) - runBefore("process${buildNameCapitalized}Resources", currentBundleTask) + variant.mergeResources.doLast { + // Copy React resources + // + if (currentBundleTask.enabled) { + copy { + from(resourcesDir) + into(variant.mergeResources.outputDir) + } + } } } + publishing { publications { aarArchive(MavenPublication) { diff --git a/ios/Podfile.lock b/ios/Podfile.lock index e9d1dd9644..d772c95ea5 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,12 +1,12 @@ PODS: - boost-for-react-native (1.63.0) - - DoubleConversion (1.1.5) + - DoubleConversion (1.1.6) - FLAnimatedImage (1.0.12) - - Folly (2016.09.26.00): + - Folly (2016.10.31.00): - boost-for-react-native - DoubleConversion - glog - - glog (0.3.4) + - glog (0.3.5) - GoogleSignIn (4.2.0): - "GoogleToolboxForMac/NSDictionary+URLArguments (~> 2.1)" - "GoogleToolboxForMac/NSString+URLArguments (~> 2.1)" @@ -28,8 +28,8 @@ PODS: - GTMSessionFetcher/Full (1.2.0): - GTMSessionFetcher/Core (= 1.2.0) - ObjectiveDropboxOfficial (3.9.1) - - React (0.55.4): - - React/Core (= 0.55.4) + - React (0.57.1): + - React/Core (= 0.57.1) - react-native-background-timer (2.0.0): - React - react-native-calendar-events (1.6.2): @@ -45,42 +45,42 @@ PODS: - React - react-native-webrtc (1.63.0): - React - - React/Core (0.55.4): - - yoga (= 0.55.4.React) - - React/CxxBridge (0.55.4): - - Folly (= 2016.09.26.00) + - React/Core (0.57.1): + - yoga (= 0.57.1.React) + - React/CxxBridge (0.57.1): + - Folly (= 2016.10.31.00) - React/Core - React/cxxreact - - React/cxxreact (0.55.4): + - React/cxxreact (0.57.1): - boost-for-react-native (= 1.63.0) - - Folly (= 2016.09.26.00) + - Folly (= 2016.10.31.00) - React/jschelpers - React/jsinspector - - React/DevSupport (0.55.4): + - React/DevSupport (0.57.1): - React/Core - React/RCTWebSocket - - React/fishhook (0.55.4) - - React/jschelpers (0.55.4): - - Folly (= 2016.09.26.00) + - React/fishhook (0.57.1) + - React/jschelpers (0.57.1): + - Folly (= 2016.10.31.00) - React/PrivateDatabase - - React/jsinspector (0.55.4) - - React/PrivateDatabase (0.55.4) - - React/RCTActionSheet (0.55.4): + - React/jsinspector (0.57.1) + - React/PrivateDatabase (0.57.1) + - React/RCTActionSheet (0.57.1): - React/Core - - React/RCTAnimation (0.55.4): + - React/RCTAnimation (0.57.1): - React/Core - - React/RCTBlob (0.55.4): + - React/RCTBlob (0.57.1): - React/Core - - React/RCTImage (0.55.4): + - React/RCTImage (0.57.1): - React/Core - React/RCTNetwork - - React/RCTLinkingIOS (0.55.4): + - React/RCTLinkingIOS (0.57.1): - React/Core - - React/RCTNetwork (0.55.4): + - React/RCTNetwork (0.57.1): - React/Core - - React/RCTText (0.55.4): + - React/RCTText (0.57.1): - React/Core - - React/RCTWebSocket (0.55.4): + - React/RCTWebSocket (0.57.1): - React/Core - React/fishhook - React/RCTBlob @@ -98,7 +98,7 @@ PODS: - SDWebImage/GIF (4.4.2): - FLAnimatedImage (~> 1.0) - SDWebImage/Core - - yoga (0.55.4.React) + - yoga (0.57.1.React) DEPENDENCIES: - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) @@ -169,16 +169,16 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c - DoubleConversion: e22e0762848812a87afd67ffda3998d9ef29170c + DoubleConversion: bb338842f62ab1d708ceb63ec3d999f0f3d98ecd FLAnimatedImage: 4a0b56255d9b05f18b6dd7ee06871be5d3b89e31 - Folly: 211775e49d8da0ca658aebc8eab89d642935755c - glog: 1de0bb937dccdc981596d3b5825ebfb765017ded + Folly: c89ac2d5c6ab169cd7397ef27485c44f35f742c7 + glog: e8acf0ebbf99759d3ff18c86c292a5898282dcde GoogleSignIn: 591e46382014e591269f862ba6e7bc0fbd793532 GoogleToolboxForMac: 91c824d21e85b31c2aae9bb011c5027c9b4e738f GTMOAuth2: c77fe325e4acd453837e72d91e3b5f13116857b2 GTMSessionFetcher: 0c4baf0a73acd0041bf9f71ea018deedab5ea84e ObjectiveDropboxOfficial: 274ce69d66286c94416daf1da5237c55e105e8c0 - React: aa2040dbb6f317b95314968021bd2888816e03d5 + React: 1fe0eb13d90b625d94c3b117c274dcfd2e760e11 react-native-background-timer: 63dcbf37dbcf294b5c6c071afcdc661fa06a7594 react-native-calendar-events: fe6fbc8ed337a7423c98f2c9012b25f20444de09 react-native-fast-image: cba3d9bf9c2cf8ddb643d887a686c53a5dd90a2c @@ -189,7 +189,7 @@ SPEC CHECKSUMS: RNSound: b360b3862d3118ed1c74bb9825696b5957686ac4 RNVectorIcons: c0dbfbf6068fefa240c37b0f71bd03b45dddac44 SDWebImage: 624d6e296c69b244bcede364c72ae0430ac14681 - yoga: a23273df0088bf7f2bb7e5d7b00044ea57a2a54a + yoga: b1ce48b6cf950b98deae82838f5173ea7cf89e85 PODFILE CHECKSUM: cf8276ba4b0933b24c6082a25a5f4eabe0ba4ea6 diff --git a/ios/app/app.xcodeproj/project.pbxproj b/ios/app/app.xcodeproj/project.pbxproj index 580ae95122..77e39e5e27 100644 --- a/ios/app/app.xcodeproj/project.pbxproj +++ b/ios/app/app.xcodeproj/project.pbxproj @@ -138,7 +138,7 @@ 83CBB9F71A601CBA00E9B192 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0920; + LastUpgradeCheck = 1000; ORGANIZATIONNAME = Facebook; TargetAttributes = { 13B07F861A680F5B00A75B9A = { @@ -327,12 +327,14 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -383,12 +385,14 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; diff --git a/ios/app/app.xcodeproj/xcshareddata/xcschemes/jitsi-meet.xcscheme b/ios/app/app.xcodeproj/xcshareddata/xcschemes/jitsi-meet.xcscheme index b6a8ae73e9..72868db78b 100644 --- a/ios/app/app.xcodeproj/xcshareddata/xcschemes/jitsi-meet.xcscheme +++ b/ios/app/app.xcodeproj/xcshareddata/xcschemes/jitsi-meet.xcscheme @@ -1,6 +1,6 @@ @@ -60,7 +59,6 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" diff --git a/ios/scripts/run-packager.sh b/ios/scripts/run-packager.sh index cc4718e719..cb9b8b2eb2 100755 --- a/ios/scripts/run-packager.sh +++ b/ios/scripts/run-packager.sh @@ -3,14 +3,17 @@ # This script is executed from Xcode to start the React packager for Debug # targets. +export RCT_METRO_PORT="${RCT_METRO_PORT:=8081}" +echo "export RCT_METRO_PORT=${RCT_METRO_PORT}" > "${SRCROOT}/../../node_modules/react-native/scripts/.packager.env" if [[ "$CONFIGURATION" = "Debug" ]]; then - if nc -w 5 -z localhost 8081 ; then - if ! curl -s "http://localhost:8081/status" | grep -q "packager-status:running" ; then - echo "Port 8081 already in use, packager is either not running or not running correctly" + if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then + if ! curl -s "http://localhost:${RCT_METRO_PORT}/status" | grep -q "packager-status:running" ; then + echo "Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly" exit 2 fi else open -g "$SRCROOT/../../node_modules/react-native/scripts/launchPackager.command" || echo "Can't start packager automatically" fi fi + diff --git a/ios/sdk/sdk.xcodeproj/project.pbxproj b/ios/sdk/sdk.xcodeproj/project.pbxproj index 8cb31a0de8..8398f979d0 100644 --- a/ios/sdk/sdk.xcodeproj/project.pbxproj +++ b/ios/sdk/sdk.xcodeproj/project.pbxproj @@ -301,7 +301,7 @@ 0BD906DC1EC0C00300C8C18E /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0920; + LastUpgradeCheck = 1000; ORGANIZATIONNAME = Jitsi; TargetAttributes = { 0BD906E41EC0C00300C8C18E = { @@ -470,6 +470,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -477,6 +478,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -529,6 +531,7 @@ CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; @@ -536,6 +539,7 @@ CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; @@ -561,6 +565,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 10.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; diff --git a/ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeet.xcscheme b/ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeet.xcscheme index 9319797a30..e117403c20 100644 --- a/ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeet.xcscheme +++ b/ios/sdk/sdk.xcodeproj/xcshareddata/xcschemes/JitsiMeet.xcscheme @@ -1,6 +1,6 @@ @@ -37,7 +36,6 @@ buildConfiguration = "Debug" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - language = "" launchStyle = "0" useCustomWorkingDirectory = "NO" ignoresPersistentStateOnLaunch = "NO" diff --git a/package.json b/package.json index d478ab7341..e60059c578 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "react": "16.5.0", "react-dom": "16.5.0", "react-i18next": "4.8.0", - "react-native": "0.55.4", + "react-native": "0.57.1", "react-native-background-timer": "2.0.0", "react-native-calendar-events": "github:wmcmahan/react-native-calendar-events#cb2731db6684a49b4343e09de7f9c2fcc68bcd9b", "react-native-callstats": "3.53.4", @@ -74,7 +74,7 @@ "react-native-prompt": "1.0.0", "react-native-sound": "0.10.9", "react-native-swipeout": "2.3.6", - "react-native-vector-icons": "4.4.2", + "react-native-vector-icons": "5.0.0", "react-native-webrtc": "github:jitsi/react-native-webrtc#be3de15bb988cfabbb62cd4b3b06f4c920ee5ba0", "react-redux": "5.0.7", "react-transition-group": "2.4.0", @@ -106,8 +106,9 @@ "eslint-plugin-react-native": "3.3.0", "expose-loader": "0.7.4", "file-loader": "1.1.5", - "flow-bin": "0.67.1", + "flow-bin": "0.78.0", "imports-loader": "0.7.1", + "metro-react-native-babel-preset": "0.47.0", "node-sass": "4.8.3", "precommit-hook": "3.0.0", "string-replace-loader": "1.3.0",