react-native-zendesk-messaging
react-native-zendesk-messaging copied to clipboard
Release build failing on XCode Version 16.0 (16A242d) Mac OS Sequoia (15.0 (24A335))
Describe the bug Release build failing on XCode Version 16.0 (16A242d) Mac OS Sequoia (15.0 (24A335))
To Reproduce Steps to reproduce the behavior: Generate a release build with Zendesk Logger packages
Expected behavior Should generate a normal build
Screenshots
Environment (please complete the following information):
- Platform: Mac OS Sequoia (15.0 (24A335))
- React Native Version 0.74
- Zendesk SDK Version : react-native-zendesk-messaging: ^0.2.1
Additional context I have a React native project and I'm using this package now after updating to Mac Sequoia the build is failing and showing the above error. It's super urgent, We have a launch of our app on Sep 19th, 2024, Could you please tell me the fix?
Thank you.
+1
+1
have someone solved it?
@Andriiklymiuk No it's still the same.
This is an issue with the Zendesk native SDKs that this library is depending on. Xcode 16 has stricter bitcode validation compared to earlier versions, that's why this is now popping up.
You should be able use a code snippet from this link to remove leftover bitcode from any frameworks. Just add any frameworks that cause bitcode issues to the framework_paths array. https://support.zendesk.com/hc/en-us/community/posts/8057481044378/comments/8115692442010
post_install do |installer|
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
framework_paths = [
"Pods/ZendeskSDKConfigurationsSDK/SDKConfigurations.xcframework/ios-arm64/SDKConfigurations.framework/SDKConfigurations"
]
framework_paths.each do |framework_relative_path|
strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
end
end
This is an issue with the Zendesk native SDKs that this library is depending on. Xcode 16 has stricter bitcode validation compared to earlier versions, that's why this is now popping up.
You should be able use a code snippet from this link to remove leftover bitcode from any frameworks. Just add any frameworks that cause bitcode issues to the framework_paths array. https://support.zendesk.com/hc/en-us/community/posts/8057481044378/comments/8115692442010
post_install do |installer| 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 framework_paths = [ "Pods/ZendeskSDKConfigurationsSDK/SDKConfigurations.xcframework/ios-arm64/SDKConfigurations.framework/SDKConfigurations" ] framework_paths.each do |framework_relative_path| strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path) end end
this didnt work for me
i've made a temporary fix by navigating to ios/Pods/ZendeskSDKLogger/ZendeskSDKLogger.xcframework/ios-arm64
and running
xcrun bitcode_strip -r ZendeskSDKLogger.framework/ZendeskSDKLogger -o ZendeskSDKLogger.framework/ZendeskSDKLogger
feel free to correct me if there is a better solution
i've made a temporary fix by navigating to
ios/Pods/ZendeskSDKLogger/ZendeskSDKLogger.xcframework/ios-arm64and runningxcrun bitcode_strip -r ZendeskSDKLogger.framework/ZendeskSDKLogger -o ZendeskSDKLogger.framework/ZendeskSDKLoggerfeel free to correct me if there is a better solution
do we need to run that command every time before generating the final release build?
i've made a temporary fix by navigating to
ios/Pods/ZendeskSDKLogger/ZendeskSDKLogger.xcframework/ios-arm64and runningxcrun bitcode_strip -r ZendeskSDKLogger.framework/ZendeskSDKLogger -o ZendeskSDKLogger.framework/ZendeskSDKLoggerfeel free to correct me if there is a better solution
do we need to run that command every time before generating the final release build?
i just run it after every pod-install
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Same problem here
The App Store is displaying the following iOS SDK warning:
ITMS-90725: SDK Version Issue
This app was built with the iOS 17.4 SDK. Starting April 24, 2025, all iOS and iPadOS apps must be built with the iOS 18 SDK or later, included in Xcode 16 or later, in order to be uploaded to App Store Connect or submitted for distribution.
Actions Taken:
- Upgraded Expo to version 52.
- Updated the iOS build image in
eas.json:- From:
Xcode 15.3 - To:
Xcode 16(macos-sequoia-15-xcode-16)
- From:
Current Issue:
- Encountering the same Bitcode-related error
same issue
This needs to be reopened, for peoiple using eas its not easily possible to remove the bitcode before release.
@leegeunhyeok Excuse the direct tag but any ideas...the only other alternative for us is to remove it completely.
I bandaged this issue with EAS by using a post-install build hook:
Create eas-build-post-install.sh:
#!/bin/bash
set -euo pipefail
# Temporary workaround for Zendesk bitcode issue
# See: https://github.com/leegeunhyeok/react-native-zendesk-messaging/issues/52#issuecomment-2461551783
ORIGINAL_DIR=$(pwd)
echo "🔎 Navigating to Zendesk binary directory..."
cd ios/Pods/ZendeskSDKLogger/ZendeskSDKLogger.xcframework/ios-arm64/
if [ -f "ZendeskSDKLogger.framework/ZendeskSDKLogger" ]; then
echo "⚡ Stripping bitcode..."
xcrun bitcode_strip -r ZendeskSDKLogger.framework/ZendeskSDKLogger -o ZendeskSDKLogger.framework/ZendeskSDKLogger
echo "✅ Bitcode strip complete!"
else
echo "❌ ZendeskSDKLogger binary not found. Skipping."
fi
# Return to the original working directory
cd "$ORIGINAL_DIR"
In package.json scripts:
"eas-build-post-install": "./eas-build-post-install.sh"