Skip to content

Commit c01b23a

Browse files
authored
fix(apple): ignore build warnings in third-party code (#2853)
1 parent 9049dea commit c01b23a

12 files changed

Lines changed: 37 additions & 20 deletions

File tree

packages/app/ReactTestApp-DevSupport.podspec

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,13 @@ Pod::Spec.new do |s|
3737

3838
s.pod_target_xcconfig = {
3939
'CLANG_CXX_LANGUAGE_STANDARD' => 'c++20',
40+
'CPP_PREPROCESSOR_DEFINITIONS' => preprocessor_definitions,
4041
'DEFINES_MODULE' => 'YES',
4142
'GCC_PREPROCESSOR_DEFINITIONS' => preprocessor_definitions,
42-
'CPP_PREPROCESSOR_DEFINITIONS' => preprocessor_definitions,
43+
'GCC_TREAT_WARNINGS_AS_ERRORS' => 'YES',
4344
'SWIFT_OBJC_BRIDGING_HEADER' =>
4445
'ios/ReactTestApp/Public/ReactTestApp-DevSupport-Bridging-Header.h',
46+
'SWIFT_TREAT_WARNINGS_AS_ERRORS' => 'YES',
4547
}
4648

4749
s.source_files = 'common/AppRegistry.{cpp,h}',

packages/app/example/ios/Podfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2190,7 +2190,7 @@ SPEC CHECKSUMS:
21902190
ReactCommon: 66763e5bd1b778828ff6cb82d771b7162a5215c2
21912191
ReactNativeDependencies: 8cbd0fbc0255c3949672a00a81fc8d60a29dcfd9
21922192
ReactNativeHost: c49183895850a534a9d58049bf02b3c80a3ebb0c
2193-
ReactTestApp-DevSupport: aeb3fe7bc1b2916413ac41309a70a0df7475f8a5
2193+
ReactTestApp-DevSupport: a661d0353c33448b3a5fe3a7719696bb07d20051
21942194
ReactTestApp-Resources: 1bd9ff10e4c24f2ad87101a32023721ae923bccf
21952195
RNWWebStorage: a3612eab23117c5bf9d18faa213565409a376ef1
21962196
Yoga: b1085f68c014785350a2afdc95eaef0d49f23ccb

packages/app/ios/ReactTestApp.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,7 @@
404404
CODE_SIGN_STYLE = Automatic;
405405
DEVELOPMENT_ASSET_PATHS = "";
406406
ENABLE_PREVIEWS = YES;
407+
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
407408
INFOPLIST_FILE = Info.plist;
408409
LD_RUNPATH_SEARCH_PATHS = (
409410
"$(inherited)",
@@ -413,6 +414,7 @@
413414
PRODUCT_NAME = "$(TARGET_NAME)";
414415
SWIFT_OBJC_BRIDGING_HEADER = "ReactTestApp/ReactTestApp-Bridging-Header.h";
415416
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
417+
SWIFT_TREAT_WARNINGS_AS_ERRORS = NO;
416418
SWIFT_VERSION = 5.0;
417419
TARGETED_DEVICE_FAMILY = "1,2";
418420
};
@@ -427,6 +429,7 @@
427429
CODE_SIGN_STYLE = Automatic;
428430
DEVELOPMENT_ASSET_PATHS = "";
429431
ENABLE_PREVIEWS = YES;
432+
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
430433
INFOPLIST_FILE = Info.plist;
431434
LD_RUNPATH_SEARCH_PATHS = (
432435
"$(inherited)",
@@ -435,6 +438,7 @@
435438
PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.ReactTestApp;
436439
PRODUCT_NAME = "$(TARGET_NAME)";
437440
SWIFT_OBJC_BRIDGING_HEADER = "ReactTestApp/ReactTestApp-Bridging-Header.h";
441+
SWIFT_TREAT_WARNINGS_AS_ERRORS = NO;
438442
SWIFT_VERSION = 5.0;
439443
TARGETED_DEVICE_FAMILY = "1,2";
440444
};

packages/app/ios/ReactTestApp/ReactTestApp.common.xcconfig

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,9 @@ ENABLE_STRICT_OBJC_MSGSEND = YES
1111
ENABLE_USER_SCRIPT_SANDBOXING = NO
1212
GCC_C_LANGUAGE_STANDARD = gnu11
1313
GCC_NO_COMMON_BLOCKS = YES
14-
GCC_TREAT_WARNINGS_AS_ERRORS = YES
1514
IPHONEOS_DEPLOYMENT_TARGET = 15.1
1615
MTL_FAST_MATH = YES
1716
OTHER_CFLAGS = $(inherited) -fstack-protector-strong
1817
OTHER_LDFLAGS = $(inherited) -fstack-protector-strong
1918
SDKROOT = iphoneos
20-
SWIFT_TREAT_WARNINGS_AS_ERRORS = YES
2119
WARNING_CFLAGS = -Wall

packages/app/ios/test_app.rb

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -205,11 +205,10 @@ def use_test_app_internal!(target_platform, options)
205205

206206
installer.pods_project.targets.each do |target|
207207
case target.name
208-
when /\AReact/, 'RCT-Folly', 'SocketRocket', 'Yoga', 'fmt', 'glog', 'libevent'
209-
target.build_configurations.each do |config|
210-
config.build_settings[WARNING_CFLAGS] ||= []
211-
config.build_settings[WARNING_CFLAGS] << '-w'
212-
end
208+
when /\AReactTestApp/
209+
# We had to remove `*_TREAT_WARNINGS_AS_ERRORS` from our `.xcconfig`
210+
# files because Xcode treats imported XCFrameworks as part of the main
211+
# target. We need to revisit this when we've migrated to SPM.
213212
when 'RNReanimated'
214213
# Reanimated tries to automatically install itself by swizzling a method
215214
# in `RCTAppDelegate`. We don't use it since it doesn't exist on older
@@ -221,6 +220,10 @@ def use_test_app_internal!(target_platform, options)
221220
config.build_settings[GCC_PREPROCESSOR_DEFINITIONS] << 'DONT_AUTOINSTALL_REANIMATED'
222221
end
223222
else
223+
target.build_configurations.each do |config|
224+
config.build_settings[WARNING_CFLAGS] ||= []
225+
config.build_settings[WARNING_CFLAGS] << '-w'
226+
end
224227
# Ensure `ENABLE_TESTING_SEARCH_PATHS` is always set otherwise Xcode may
225228
# fail to properly import XCTest
226229
unless test_dependencies.assoc(target.name).nil?

packages/app/macos/ReactTestApp.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,7 @@
381381
CODE_SIGN_IDENTITY = "-";
382382
CODE_SIGN_STYLE = Automatic;
383383
COMBINE_HIDPI_IMAGES = YES;
384+
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
384385
INFOPLIST_FILE = Info.plist;
385386
LD_RUNPATH_SEARCH_PATHS = (
386387
"$(inherited)",
@@ -389,6 +390,7 @@
389390
PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.ReactTestApp;
390391
PRODUCT_NAME = "$(TARGET_NAME)";
391392
SWIFT_OBJC_BRIDGING_HEADER = "Shared/ReactTestApp-Bridging-Header.h";
393+
SWIFT_TREAT_WARNINGS_AS_ERRORS = NO;
392394
SWIFT_VERSION = 5.0;
393395
};
394396
name = Debug;
@@ -402,6 +404,7 @@
402404
CODE_SIGN_IDENTITY = "-";
403405
CODE_SIGN_STYLE = Automatic;
404406
COMBINE_HIDPI_IMAGES = YES;
407+
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
405408
INFOPLIST_FILE = Info.plist;
406409
LD_RUNPATH_SEARCH_PATHS = (
407410
"$(inherited)",
@@ -410,6 +413,7 @@
410413
PRODUCT_BUNDLE_IDENTIFIER = com.microsoft.ReactTestApp;
411414
PRODUCT_NAME = "$(TARGET_NAME)";
412415
SWIFT_OBJC_BRIDGING_HEADER = "Shared/ReactTestApp-Bridging-Header.h";
416+
SWIFT_TREAT_WARNINGS_AS_ERRORS = NO;
413417
SWIFT_VERSION = 5.0;
414418
};
415419
name = Release;

packages/app/macos/ReactTestApp/ReactTestApp.common.xcconfig

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,9 @@ ENABLE_STRICT_OBJC_MSGSEND = YES
1111
ENABLE_USER_SCRIPT_SANDBOXING = NO
1212
GCC_C_LANGUAGE_STANDARD = gnu11
1313
GCC_NO_COMMON_BLOCKS = YES
14-
GCC_TREAT_WARNINGS_AS_ERRORS = YES
1514
MACOSX_DEPLOYMENT_TARGET = 14.0
1615
MTL_FAST_MATH = YES
1716
OTHER_CFLAGS = $(inherited) -fstack-protector-strong
1817
OTHER_LDFLAGS = $(inherited) -fstack-protector-strong
1918
SDKROOT = macosx
20-
SWIFT_TREAT_WARNINGS_AS_ERRORS = YES
2119
WARNING_CFLAGS = -Wall -Wno-error=undef-prefix

packages/app/scripts/internal/set-react-version.mts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,17 +85,23 @@ function fetchPackageInfo(pkg: string, version: string): Promise<Manifest> {
8585
/**
8686
* Fetches the template manifest for the specified React Native version.
8787
*/
88-
function fetchTemplateManifest(version: string): Promise<Manifest> {
88+
async function fetchTemplateManifest(version: string): Promise<Manifest> {
8989
const url = `https://raw.githubusercontent.com/react-native-community/template/refs/heads/${version}-stable/template/package.json`;
9090
console.log(`Fetching template manifest from ${url}`);
91-
return fetch(url, {
91+
const res = await fetch(url, {
9292
headers: {
9393
Accept:
9494
"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*",
9595
},
96-
})
97-
.then((res) => res.text())
98-
.then((text) => JSON.parse(text));
96+
});
97+
98+
const body = await res.text();
99+
if (res.status !== 200) {
100+
console.error(`Failed to fetch template: ${body}`);
101+
return { name: "", version: "" };
102+
}
103+
104+
return JSON.parse(body);
99105
}
100106

101107
/**

packages/app/visionos/ReactTestApp.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,7 @@
380380
CODE_SIGN_STYLE = Automatic;
381381
DEVELOPMENT_ASSET_PATHS = "";
382382
ENABLE_PREVIEWS = YES;
383+
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
383384
INFOPLIST_FILE = ReactTestApp/Info.plist;
384385
LD_RUNPATH_SEARCH_PATHS = (
385386
"$(inherited)",
@@ -393,6 +394,7 @@
393394
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
394395
SWIFT_OBJC_BRIDGING_HEADER = "Shared/ReactTestApp-Bridging-Header.h";
395396
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
397+
SWIFT_TREAT_WARNINGS_AS_ERRORS = NO;
396398
SWIFT_VERSION = 5.0;
397399
TARGETED_DEVICE_FAMILY = 7;
398400
};
@@ -407,6 +409,7 @@
407409
CODE_SIGN_STYLE = Automatic;
408410
DEVELOPMENT_ASSET_PATHS = "";
409411
ENABLE_PREVIEWS = YES;
412+
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
410413
INFOPLIST_FILE = ReactTestApp/Info.plist;
411414
LD_RUNPATH_SEARCH_PATHS = (
412415
"$(inherited)",
@@ -419,6 +422,7 @@
419422
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
420423
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
421424
SWIFT_OBJC_BRIDGING_HEADER = "Shared/ReactTestApp-Bridging-Header.h";
425+
SWIFT_TREAT_WARNINGS_AS_ERRORS = NO;
422426
SWIFT_VERSION = 5.0;
423427
TARGETED_DEVICE_FAMILY = 7;
424428
};

packages/app/visionos/ReactTestApp/ReactTestApp.common.xcconfig

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,9 @@ ENABLE_STRICT_OBJC_MSGSEND = YES
1111
ENABLE_USER_SCRIPT_SANDBOXING = NO
1212
GCC_C_LANGUAGE_STANDARD = gnu11
1313
GCC_NO_COMMON_BLOCKS = YES
14-
GCC_TREAT_WARNINGS_AS_ERRORS = YES
1514
XROS_DEPLOYMENT_TARGET = 1.0
1615
MTL_FAST_MATH = YES
1716
OTHER_CFLAGS = $(inherited) -fstack-protector-strong
1817
OTHER_LDFLAGS = $(inherited) -fstack-protector-strong
1918
SDKROOT = iphoneos
20-
SWIFT_TREAT_WARNINGS_AS_ERRORS = YES
2119
WARNING_CFLAGS = -Wall

0 commit comments

Comments
 (0)