diff --git a/ern-core/src/android.ts b/ern-core/src/android.ts index 437ec2579..fb849d020 100644 --- a/ern-core/src/android.ts +++ b/ern-core/src/android.ts @@ -62,7 +62,7 @@ export function resolveAndroidVersions({ supportLibraryVersion = DEFAULT_SUPPORT_LIBRARY_VERSION, targetCompatibility = DEFAULT_TARGET_COMPATIBILITY, targetSdkVersion = DEFAULT_TARGET_SDK_VERSION, - reactNativeGradlePlugin = DEFAULT_RN_GRADLE_PLUGIN_VERSION, + reactNativeGradlePlugin, reactNativeVersion, }: { androidGradlePlugin?: string; @@ -88,6 +88,10 @@ export function resolveAndroidVersions({ : DEFAULT_MIN_SDK_VERSION_PRE_RN64; reactNativeAarVersion = reactNativeAarVersion ?? reactNativeVersion!; + reactNativeGradlePlugin = + reactNativeGradlePlugin ?? semver.lt(reactNativeVersion!, '0.72.0') + ? reactNativeGradlePlugin! + : DEFAULT_RN_GRADLE_PLUGIN_VERSION; return { androidGradlePlugin, diff --git a/ern-core/test/android-test.ts b/ern-core/test/android-test.ts index d4b81375f..37c5eeb14 100644 --- a/ern-core/test/android-test.ts +++ b/ern-core/test/android-test.ts @@ -209,6 +209,29 @@ describe('android.js', () => { }); describe('resolveAndroidVersions', () => { + it('should return all default versions if no versions are provided [>= RN 0.72.0]', () => { + const versions = android.resolveAndroidVersions({ + reactNativeVersion: '0.72.0', + }); + expect(versions).deep.equal({ + androidGradlePlugin: android.DEFAULT_ANDROID_GRADLE_PLUGIN_VERSION, + androidxAppcompactVersion: android.DEFAULT_ANDROIDX_APPCOMPACT_VERSION, + androidxLifecycleExtrnsionsVersion: + android.DEFAULT_ANDROIDX_LIFECYCLE_EXTENSIONS_VERSION, + buildToolsVersion: android.DEFAULT_BUILD_TOOLS_VERSION, + compileSdkVersion: android.DEFAULT_COMPILE_SDK_VERSION, + gradleDistributionVersion: android.DEFAULT_GRADLE_DISTRIBUTION_VERSION, + kotlinVersion: android.DEFAULT_KOTLIN_VERSION, + minSdkVersion: android.DEFAULT_MIN_SDK_VERSION_POST_RN64, + reactNativeAarVersion: '0.72.0', + reactNativeGradlePlugin: '0.72.11', + sourceCompatibility: android.DEFAULT_SOURCE_COMPATIBILITY, + supportLibraryVersion: android.DEFAULT_SUPPORT_LIBRARY_VERSION, + targetCompatibility: android.DEFAULT_TARGET_COMPATIBILITY, + targetSdkVersion: android.DEFAULT_TARGET_SDK_VERSION, + }); + }); + it('should return all default versions if no versions are provided [>= RN 0.64.0]', () => { const versions = android.resolveAndroidVersions({ reactNativeVersion: '0.64.0', @@ -224,6 +247,7 @@ describe('android.js', () => { kotlinVersion: android.DEFAULT_KOTLIN_VERSION, minSdkVersion: android.DEFAULT_MIN_SDK_VERSION_POST_RN64, reactNativeAarVersion: '0.64.0', + reactNativeGradlePlugin: undefined, sourceCompatibility: android.DEFAULT_SOURCE_COMPATIBILITY, supportLibraryVersion: android.DEFAULT_SUPPORT_LIBRARY_VERSION, targetCompatibility: android.DEFAULT_TARGET_COMPATIBILITY, @@ -245,6 +269,7 @@ describe('android.js', () => { gradleDistributionVersion: android.DEFAULT_GRADLE_DISTRIBUTION_VERSION, kotlinVersion: android.DEFAULT_KOTLIN_VERSION, minSdkVersion: android.DEFAULT_MIN_SDK_VERSION_PRE_RN64, + reactNativeGradlePlugin: undefined, reactNativeAarVersion: '0.63.0', sourceCompatibility: android.DEFAULT_SOURCE_COMPATIBILITY, supportLibraryVersion: android.DEFAULT_SUPPORT_LIBRARY_VERSION, @@ -260,6 +285,7 @@ describe('android.js', () => { minSdkVersion: '15', sourceCompatibility: 'VERSION_1_9', targetCompatibility: 'VERSION_1_9', + reactNativeVersion: '0.72.0', }); expect(versions).deep.equal({ androidGradlePlugin: '3.0.0', @@ -271,7 +297,8 @@ describe('android.js', () => { gradleDistributionVersion: android.DEFAULT_GRADLE_DISTRIBUTION_VERSION, kotlinVersion: '1.4.0', minSdkVersion: '15', - reactNativeAarVersion: undefined, + reactNativeAarVersion: '0.72.0', + reactNativeGradlePlugin: '0.72.11', sourceCompatibility: 'VERSION_1_9', supportLibraryVersion: android.DEFAULT_SUPPORT_LIBRARY_VERSION, targetCompatibility: 'VERSION_1_9', @@ -293,6 +320,7 @@ describe('android.js', () => { supportLibraryVersion: '27.0.0', targetCompatibility: 'VERSION_1_9', targetSdkVersion: '27', + reactNativeVersion: '0.63.0', }); expect(versions).deep.equal({ androidGradlePlugin: '3.0.0', @@ -303,7 +331,8 @@ describe('android.js', () => { gradleDistributionVersion: '4.5', kotlinVersion: '1.4.0', minSdkVersion: '15', - reactNativeAarVersion: undefined, + reactNativeAarVersion: '0.63.0', + reactNativeGradlePlugin: undefined, sourceCompatibility: 'VERSION_1_9', supportLibraryVersion: '27.0.0', targetCompatibility: 'VERSION_1_9', diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/build.gradle b/ern-runner-gen-android/test/fixtures/simple-android-runner/app/build.gradle index cac8b8331..cfa0bf252 100644 --- a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/build.gradle +++ b/ern-runner-gen-android/test/fixtures/simple-android-runner/app/build.gradle @@ -1,12 +1,26 @@ apply plugin: 'com.android.application' +apply plugin: "com.facebook.react" + +/** + * The preferred build flavor of JavaScriptCore (JSC) + * + * For example, to use the international variant, you can use: + * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` + * + * The international variant includes ICU i18n library and necessary data + * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that + * give correct results when using with locales other than en-US. Note that + * this variant is about 6MiB larger per architecture than default. + */ +def jscFlavor = 'org.webkit:android-jsc:+' android { - compileSdkVersion 31 - buildToolsVersion "31.0.0" + compileSdkVersion 33 + buildToolsVersion "33.0.0" defaultConfig { applicationId "com.walmartlabs.ern.dummy" minSdkVersion 19 - targetSdkVersion 30 + targetSdkVersion 33 versionCode 1 versionName "1.0" } @@ -17,8 +31,8 @@ android { } } compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } // Need this to avoid build conflict with jsr version which comes with react-native configurations.all { @@ -28,15 +42,14 @@ android { lintOptions { disable 'InvalidPackage' } - packagingOptions { - pickFirst "lib/armeabi-v7a/libc++_shared.so" - pickFirst "lib/arm64-v8a/libc++_shared.so" - pickFirst "lib/x86/libc++_shared.so" - pickFirst "lib/x86_64/libc++_shared.so" - } } dependencies { // Recompile this dependency on every build as it can be updated at any time (snapshot) implementation('com.walmartlabs.ern:runner-ern-container-dummy:1.0.0') { changing = true } + if (hermesEnabled.toBoolean()) { + implementation("com.facebook.react:hermes-android") + } else { + implementation jscFlavor + } } diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/debug/AndroidManifest.xml b/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/debug/AndroidManifest.xml index fa26aa56e..885c4ee44 100644 --- a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/debug/AndroidManifest.xml +++ b/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/debug/AndroidManifest.xml @@ -4,5 +4,5 @@ - + diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/AndroidManifest.xml b/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/AndroidManifest.xml index f2a9f0eb6..28587b4ca 100644 --- a/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/AndroidManifest.xml +++ b/ern-runner-gen-android/test/fixtures/simple-android-runner/app/src/main/AndroidManifest.xml @@ -12,7 +12,8 @@ android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> - + diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/build.gradle b/ern-runner-gen-android/test/fixtures/simple-android-runner/build.gradle index 65003a88f..b4321d613 100644 --- a/ern-runner-gen-android/test/fixtures/simple-android-runner/build.gradle +++ b/ern-runner-gen-android/test/fixtures/simple-android-runner/build.gradle @@ -4,7 +4,8 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:7.0.4' + classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.facebook.react:react-native-gradle-plugin:' } } diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle.properties b/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle.properties index 0566c221d..a3b2fa124 100644 --- a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle.properties +++ b/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle.properties @@ -9,7 +9,8 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx1536m +# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m +org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit @@ -22,3 +23,22 @@ org.gradle.jvmargs=-Xmx1536m android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true + +# Version of flipper SDK to use with React Native +FLIPPER_VERSION=0.182.0 + +# Use this property to specify which architecture you want to build. +# You can also override it from the CLI using +# ./gradlew -PreactNativeArchitectures=x86_64 +reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 + +# Use this property to enable support to the new architecture. +# This will allow you to use TurboModules and the Fabric render in +# your application. You should enable this flag either if you want +# to write custom TurboModules/Fabric components OR use libraries that +# are providing them. +newArchEnabled=false + +# Use this property to enable or disable the Hermes JS engine. +# If set to false, you will be using JSC instead. +hermesEnabled=true diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle/wrapper/gradle-wrapper.jar b/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle/wrapper/gradle-wrapper.jar index 7454180f2..943f0cbfa 100644 Binary files a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle/wrapper/gradle-wrapper.jar and b/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle/wrapper/gradle-wrapper.jar differ diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle/wrapper/gradle-wrapper.properties b/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle/wrapper/gradle-wrapper.properties index 669386b87..608bd9430 100644 --- a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle/wrapper/gradle-wrapper.properties +++ b/ern-runner-gen-android/test/fixtures/simple-android-runner/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradlew b/ern-runner-gen-android/test/fixtures/simple-android-runner/gradlew index 1b6c78733..65dcd68d6 100755 --- a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradlew +++ b/ern-runner-gen-android/test/fixtures/simple-android-runner/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,10 +80,10 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' @@ -143,12 +143,16 @@ fi if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -205,6 +209,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradlew.bat b/ern-runner-gen-android/test/fixtures/simple-android-runner/gradlew.bat index ac1b06f93..6689b85be 100644 --- a/ern-runner-gen-android/test/fixtures/simple-android-runner/gradlew.bat +++ b/ern-runner-gen-android/test/fixtures/simple-android-runner/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/ern-runner-gen-android/test/fixtures/simple-android-runner/settings.gradle b/ern-runner-gen-android/test/fixtures/simple-android-runner/settings.gradle index e7b4def49..3ff0b112a 100644 --- a/ern-runner-gen-android/test/fixtures/simple-android-runner/settings.gradle +++ b/ern-runner-gen-android/test/fixtures/simple-android-runner/settings.gradle @@ -1 +1,2 @@ include ':app' +includeBuild('../node_modules/@react-native/gradle-plugin') diff --git a/ern-runner-gen-ios/test/fixtures/simple-ios-runner/ErnRunner.xcodeproj/project.pbxproj b/ern-runner-gen-ios/test/fixtures/simple-ios-runner/ErnRunner.xcodeproj/project.pbxproj index 8b3f69557..d42ce6513 100644 --- a/ern-runner-gen-ios/test/fixtures/simple-ios-runner/ErnRunner.xcodeproj/project.pbxproj +++ b/ern-runner-gen-ios/test/fixtures/simple-ios-runner/ErnRunner.xcodeproj/project.pbxproj @@ -14,6 +14,7 @@ 6E6BEDD6262F9F10003F9D7B /* MainNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BEDD3262F9F10003F9D7B /* MainNavigationController.swift */; }; 6E6BEDD7262F9F10003F9D7B /* RunnerConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BEDD4262F9F10003F9D7B /* RunnerConfig.swift */; }; 6E6BEDD8262F9F10003F9D7B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BEDD5262F9F10003F9D7B /* AppDelegate.swift */; }; + 7EEF60E22C1977D3008291B7 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 7EEF60E02C1977D3008291B7 /* PrivacyInfo.xcprivacy */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -63,6 +64,7 @@ 6E6BEDD3262F9F10003F9D7B /* MainNavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainNavigationController.swift; sourceTree = ""; }; 6E6BEDD4262F9F10003F9D7B /* RunnerConfig.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RunnerConfig.swift; sourceTree = ""; }; 6E6BEDD5262F9F10003F9D7B /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7EEF60E02C1977D3008291B7 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -106,6 +108,7 @@ 304F3E971EEF455C00F1E36B /* ErnRunner */ = { isa = PBXGroup; children = ( + 7EEF60E02C1977D3008291B7 /* PrivacyInfo.xcprivacy */, 6E6BEDD5262F9F10003F9D7B /* AppDelegate.swift */, 6E6BEDD3262F9F10003F9D7B /* MainNavigationController.swift */, 6E6BEDD4262F9F10003F9D7B /* RunnerConfig.swift */, @@ -134,6 +137,7 @@ 304F3E911EEF455C00F1E36B /* Sources */, 304F3E921EEF455C00F1E36B /* Frameworks */, 304F3E931EEF455C00F1E36B /* Resources */, + 7EEF60E72C1979DC008291B7 /* Bundle React Native code and images */, 304F3ECB1EEF597600F1E36B /* Embed Frameworks */, ); buildRules = ( @@ -208,6 +212,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 7EEF60E22C1977D3008291B7 /* PrivacyInfo.xcprivacy in Resources */, 304F3EA81EEF455C00F1E36B /* LaunchScreen.storyboard in Resources */, 304F3EA51EEF455C00F1E36B /* Assets.xcassets in Resources */, ); @@ -215,6 +220,29 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 7EEF60E72C1979DC008291B7 /* Bundle React Native code and images */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "$(SRCROOT)/.xcode.env.local", + "$(SRCROOT)/.xcode.env", + ); + name = "Bundle React Native code and images"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 304F3E911EEF455C00F1E36B /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -289,7 +317,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.3; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -332,7 +360,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.3; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -346,7 +374,10 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = ErnRunner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.ernrunner; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -359,7 +390,10 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = ErnRunner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.yourcompany.ernrunner; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; diff --git a/ern-runner-gen-ios/test/fixtures/simple-ios-runner/ErnRunner/PrivacyInfo.xcprivacy b/ern-runner-gen-ios/test/fixtures/simple-ios-runner/ErnRunner/PrivacyInfo.xcprivacy new file mode 100644 index 000000000..ef1896e70 --- /dev/null +++ b/ern-runner-gen-ios/test/fixtures/simple-ios-runner/ErnRunner/PrivacyInfo.xcprivacy @@ -0,0 +1,38 @@ + + + + + NSPrivacyCollectedDataTypes + + + NSPrivacyAccessedAPITypes + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryFileTimestamp + NSPrivacyAccessedAPITypeReasons + + C617.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategoryUserDefaults + NSPrivacyAccessedAPITypeReasons + + CA92.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 + + + + NSPrivacyTracking + + + diff --git a/package.json b/package.json index 7db6432af..7f2f10710 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "tslint": "^6.1.3", "tslint-config-prettier": "^1.18.0", "tslint-no-unused-expression-chai": "^0.1.4", - "typescript": "^4.2.4" + "typescript": "4.6.4" }, "workspaces": [ "ern-*" diff --git a/yarn.lock b/yarn.lock index 6e1a6d0af..6d0d14109 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7253,10 +7253,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.2.4: - version "4.9.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" - integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== +typescript@4.6.4: + version "4.6.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9" + integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== uglify-js@^3.1.4: version "3.10.3"