|
|
|
@ -31,3 +31,111 @@ index 70f0543..d43a4be 100644
|
|
|
|
|
- (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
|
|
|
|
|