i am facing issue when uploading archive file from xcode to apple app store in react native project
The archive did not include a dSYM for the hermes.framework with the UUIDs [B7ABE37E-553E-3465-82BA-50EFAA0CB16C]. Ensure that the archive's dSYM folder includes a DWARF file for hermes.framework with the expected UUIDs.
i check on internet but no solution found
below is my podfile
# Transform this into a `node_require` generic function:
def node_require(script)
# Resolve script with node to allow for hoisting
require Pod::Executable.execute_command('node', ['-p',
"require.resolve(
'#{script}',
{paths: [process.argv[1]]},
)", __dir__]).strip
end
# Use it to require both react-native's and this package's scripts:
node_require('react-native/scripts/react_native_pods.rb')
node_require('react-native-permissions/scripts/setup.rb')
platform :ios, '13.4'
prepare_react_native_project!
flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled
linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
use_frameworks! :linkage => linkage.to_sym
end
target 'UNFApp' do
config = use_native_modules!
flags = get_default_flags()
flags[:hermes_enabled] = true
use_react_native!(
:path => config[:reactNativePath],
:fabric_enabled => flags[:fabric_enabled],
:flipper_configuration => flipper_config,
:app_path => "#{Pod::Config.instance.installation_root}/.."
)
# ⬇️ Add the permissions you need
setup_permissions([
'LocationWhenInUse', # Location access when the app is in use
'LocationAlways',
])
pod 'RNVectorIcons', :path => '../node_modules/react-native-vector-icons'
pod 'RNReanimated', :path => '../node_modules/react-native-reanimated'
pod 'GoogleUtilities', :modular_headers => true
pod 'react-native-maps', :path => '../node_modules/react-native-maps'
pod 'react-native-google-maps', :path => '../node_modules/react-native-maps'
target 'UNFAppTests' do
inherit! :complete
end
bitcode_strip_path = `xcrun --find bitcode_strip`.chop!
def strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
framework_path = File.join(Dir.pwd, framework_relative_path)
command = "#{bitcode_strip_path} #{framework_path} -r -o #{framework_path}"
puts "Stripping bitcode: #{command}"
system(command)
end
hermes_framework_path = "#{Pod::Config.instance.installation_root}/Pods/hermes-engine/destroot/Library/Frameworks"
framework_paths = [
"#{hermes_framework_path}/universal/hermes.xcframework/ios-arm64/hermes.framework/hermes",
"#{hermes_framework_path}/universal/hermes.xcframework/ios-arm64_x86_64-maccatalyst/hermes.framework/hermes"
]
bitcode_strip_path = `xcrun --find bitcode_strip`.chop!
framework_paths.each do |framework_relative_path|
strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
end
# framework_paths.each do |framework_relative_path|
# strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
# end
post_install do |installer|
react_native_post_install(
installer,
config[:reactNativePath],
:mac_catalyst_enabled => false
)
installer.pods_project.targets.each do |target|
if target.name == 'hermes-engine'
target.build_configurations.each do |config|
config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
end
end
end
__apply_Xcode_12_5_M1_post_install_workaround(installer)
end
end
below are my react native version
"react": "18.2.0",
"react-native": "0.72.0",
I think you see this appears after upgrade to XCode 16.1+ (that really matters)
tldr: no need to panic, this is just a warning
detailed explanation:
XCode 16 changed the way on missing dSYM (thing like JS source map but for the native obj-C/C++ code, which is auto-generated by XCode during build process regardless of profile type) when you submit your app to Apple (TestFlight/App Store) - a scary "WARNING" with cryptic error message so you know you are expecting this or not (as closed source library may not included that) (reference)
In most cases this is harmless and will NOT get your app rejected. RN team fixing that for many times, however there are some bugs stopping hermes to generate dSYM during build process. If you really want to fix that you may check how Firebase handle that (link), or the related github issues like this
hope it helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With