jiti-meet/patches/react-native+0.66.4.patch

142 lines
5.9 KiB
Diff

diff --git a/node_modules/react-native/React/CoreModules/RCTTiming.mm b/node_modules/react-native/React/CoreModules/RCTTiming.mm
index 70f0543..d43a4be 100644
--- a/node_modules/react-native/React/CoreModules/RCTTiming.mm
+++ b/node_modules/react-native/React/CoreModules/RCTTiming.mm
@@ -146,6 +146,11 @@ - (void)setup
name:name
object:nil];
}
+
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(proximityChanged)
+ name:UIDeviceProximityStateDidChangeNotification
+ object:nil];
}
- (void)dealloc
@@ -182,6 +187,16 @@ - (void)appDidMoveToForeground
[self startTimers];
}
+- (void)proximityChanged
+{
+ BOOL isClose = [UIDevice currentDevice].proximityState;
+ if (isClose) {
+ [self appDidMoveToBackground];
+ } else {
+ [self appDidMoveToForeground];
+ }
+}
+
- (void)stopTimers
{
if (_inBackground) {
diff --git a/node_modules/react-native/scripts/react_native_pods.rb b/node_modules/react-native/scripts/react_native_pods.rb
index df31139..061ded9 100644
--- a/node_modules/react-native/scripts/react_native_pods.rb
+++ b/node_modules/react-native/scripts/react_native_pods.rb
@@ -125,20 +125,49 @@ def exclude_architectures(installer)
.uniq{ |p| p.path }
.push(installer.pods_project)
- arm_value = `/usr/sbin/sysctl -n hw.optional.arm64 2>&1`.to_i
-
# Hermes does not support `i386` architecture
excluded_archs_default = has_pod(installer, 'hermes-engine') ? "i386" : ""
projects.each do |project|
project.build_configurations.each do |config|
- if arm_value == 1 then
- config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = excluded_archs_default
- else
- config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64 " + excluded_archs_default
+ config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = excluded_archs_default
+ end
+
+ project.save()
+ end
+end
+
+def fix_library_search_paths(installer)
+ def fix_config(config)
+ lib_search_paths = config.build_settings["LIBRARY_SEARCH_PATHS"]
+ if lib_search_paths
+ if lib_search_paths.include?("$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)") || lib_search_paths.include?("\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"")
+ # $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME) causes problem with Xcode 12.5 + arm64 (Apple M1)
+ # since the libraries there are only built for x86_64 and i386.
+ lib_search_paths.delete("$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)")
+ lib_search_paths.delete("\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"")
+ if !(lib_search_paths.include?("$(SDKROOT)/usr/lib/swift") || lib_search_paths.include?("\"$(SDKROOT)/usr/lib/swift\""))
+ # however, $(SDKROOT)/usr/lib/swift is required, at least if user is not running CocoaPods 1.11
+ lib_search_paths.insert(0, "$(SDKROOT)/usr/lib/swift")
+ end
end
end
+ end
+
+ projects = installer.aggregate_targets
+ .map{ |t| t.user_project }
+ .uniq{ |p| p.path }
+ .push(installer.pods_project)
+ projects.each do |project|
+ project.build_configurations.each do |config|
+ fix_config(config)
+ end
+ project.native_targets.each do |target|
+ target.build_configurations.each do |config|
+ fix_config(config)
+ end
+ end
project.save()
end
end
@@ -149,6 +178,7 @@ def react_native_post_install(installer)
end
exclude_architectures(installer)
+ fix_library_search_paths(installer)
end
def use_react_native_codegen!(spec, options={})
@@ -218,36 +248,8 @@ end
# See https://github.com/facebook/react-native/issues/31480#issuecomment-902912841 for more context.
# Actual fix was authored by https://github.com/mikehardy.
# New app template will call this for now until the underlying issue is resolved.
+#
+# It's not needed anymore and will be removed later
def __apply_Xcode_12_5_M1_post_install_workaround(installer)
- # Apple Silicon builds require a library path tweak for Swift library discovery to resolve Swift-related "symbol not found".
- # Note: this was fixed via https://github.com/facebook/react-native/commit/eb938863063f5535735af2be4e706f70647e5b90
- # Keeping this logic here but commented out for future reference.
- #
- # installer.aggregate_targets.each do |aggregate_target|
- # aggregate_target.user_project.native_targets.each do |target|
- # target.build_configurations.each do |config|
- # config.build_settings['LIBRARY_SEARCH_PATHS'] = ['$(SDKROOT)/usr/lib/swift', '$(inherited)']
- # end
- # end
- # aggregate_target.user_project.save
- # end
-
- # Flipper podspecs are still targeting an older iOS deployment target, and may cause an error like:
- # "error: thread-local storage is not supported for the current target"
- # The most reliable known workaround is to bump iOS deployment target to match react-native (iOS 11 now).
- installer.pods_project.targets.each do |target|
- target.build_configurations.each do |config|
- # ensure IPHONEOS_DEPLOYMENT_TARGET is at least 11.0
- should_upgrade = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].split('.')[0].to_i < 11
- if should_upgrade
- config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
- end
- end
- end
-
- # But... doing so caused another issue in Flipper:
- # "Time.h:52:17: error: typedef redefinition with different types"
- # We need to make a patch to RCT-Folly - remove the `__IPHONE_OS_VERSION_MIN_REQUIRED` check.
- # See https://github.com/facebook/flipper/issues/834 for more details.
- `sed -i -e $'s/ && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_10_0)//' Pods/RCT-Folly/folly/portability/Time.h`
+ puts "__apply_Xcode_12_5_M1_post_install_workaround() is not needed anymore"
end