-
-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mobile: Upgrade to React Native 0.74.1 #10401
Conversation
`@react-native-clipboard/clipboard`
There's an error on CI:
Maybe we can use this to setup Java on the action? https://github.com/actions/setup-java |
By the way is this pull request related to the Dropbox issue? |
This pull request should allow publishing new iOS releases. Aside from that, this is unrelated to the sync issue. |
Attempting to fix Android build errors.
def reactNativeArchitectures() { | ||
def value = project.getProperties().get("reactNativeArchitectures") | ||
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This code was removed upstream. See android/app/build.gradle in the upgrade diff.
// We need the intl variant to support natural sorting of notes. | ||
// https://github.com/laurent22/joplin/pull/4272 | ||
def jscFlavor = 'org.webkit:android-jsc-intl:+' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We no longer use JSC. Hermes should support Intl natively.
// some Gradle build hooks ref: | ||
// https://www.oreilly.com/library/view/gradle-beyond-the/9781449373801/ch03.html | ||
task androidJavadoc(type: Javadoc) { | ||
source = android.sourceSets.main.java.srcDirs | ||
classpath += files(android.bootClasspath) | ||
// Must be removed due to error "Configuration with name 'compile' not found." | ||
// classpath += files(project.getConfigurations().getByName('compile').asList()) | ||
include '**/*.java' | ||
} | ||
|
||
task androidJavadocJar(type: Jar, dependsOn: androidJavadoc) { | ||
classifier = 'javadoc' | ||
from androidJavadoc.destinationDir | ||
} | ||
|
||
task androidSourcesJar(type: Jar) { | ||
classifier = 'sources' | ||
from android.sourceSets.main.java.srcDirs | ||
include '**/*.java' | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This applies an upstream change from the original react-native-alarm-notification
. See 0491cae.
<key>NSPrivacyAccessedAPIType</key> | ||
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The NSPrivacyAccessedAPICategoryFileTimestamp
API was present twice in this file. XCode automatically removed the second occurrence.
<!-- Do not change NSAllowsArbitraryLoads to true, or you will risk app rejection! --> | ||
<key>NSAllowsArbitraryLoads</key> | ||
<false/> | ||
<key>NSAllowsLocalNetworking</key> | ||
<true/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change is from the upgrade diff. However, it may address #10420 (untested).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure there's anything we can do here since we can only whitelist specific hosts? Or maybe we could whitelist a generic host like sync.server
and document this somewhere? Then the user can do their own setup and use this hostname to get it working
IPHONEOS_DEPLOYMENT_TARGET = 11.0; | ||
IPHONEOS_DEPLOYMENT_TARGET = 13.4; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This upgrade increases the minimum supported iOS version to 13.4.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Locally,
$ sha256sum gradle-wrapper.jar
0336f591bc0ec9aa0c9988929b93ecc916b3c1d52aed202c7381db144aa0ef15 gradle-wrapper.jar
This matches the checksum for "Wrapper JAR Checksum" in v8.4 on https://gradle.org/release-checksums/ .
buildToolsVersion = "33.0.0" | ||
minSdkVersion = 21 | ||
buildToolsVersion = "34.0.0" | ||
minSdkVersion = 23 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This increases the minimum supported Android version. minSdkVersion = 23
corresponds to Android 6.
Note for future upgrades: Some React Native bugs exist only in release mode (e.g. a |
Summary
This pull request:
@react-native-community/clipboard
to@react-native-clipboard/clipboard
.@react-native-community/clipboard
doesn't build with RN 0.73 and seems to have been renamed to@react-native-clipboard/clipboard
.react-native-alarm-notification
for compatibility with newer React Native versions.Note
React Native 0.74 removes default support for Flipper.
To-do
react-native
v0.71 to work with v0.74.Testing plan
Note
Manual testing in-progress. New issues may include:
dev
branch.Note: The encrypted share tests were re-done after a fix was merged separately.