if a build the app it is correct. archieve is also correct. but when i upload app to Test Flight i get this error o MacOS 15 , Xcode 16 .
<IDEDistributionContext: 0x7f9ef32a6d50; archive = "<IDEArchive: 0x6000171f4620>", distributionMethod="(null)", team="(null)">
<IDEDistributionContext: 0x7f9ef30a67d0; archive = "<IDEArchive: 0x6000171f4620>", distributionMethod="(null)", team="(null)">
<IDEDistributionContext: 0x7f9ef0aff8d0; archive = "<IDEArchive: 0x6000171f4620>", distributionMethod="(null)", team="(null)">
</IDEDistributionContext: 0x7f9ef0a1a0f0>
2024-09-25 10:05:15 +0000 [MT] Upload for archive TrueCaller had issues:
(
"<IDEDistributionIssue: severity(error), error(Error Domain=ContentDelivery Code=90482 \"Asset validation failed\" UserInfo={IDEDistributionIssueSeverity=3, NSLocalizedDescription=Asset validation failed, NSLocalizedRecoverySuggestion=Invalid Executable. The executable 'TrueCaller.app/Frameworks/hermes.framework/hermes' contains bitcode. (ID: 70394fde-4ed8-40ca-b6a8-2aabb46b397a)})>"
I was getting the same issue after upgraded to Xcode 16 and iOS 18.
You can solve this issue by following this.
Open Podfile
Search for word post_install
If post_install
not found then just directly paste the below code just before the last end
keyword
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/LogRocket/LogRocket.xcframework/ios-arm64/LogRocket.framework/LogRocket",
"Pods/hermes-engine/destroot/Library/Frameworks/macosx/hermes.framework/hermes",
"Pods/hermes-engine/destroot/Library/Frameworks/macosx/hermes.framework/Versions/Current/hermes",
"Pods/hermes-engine/destroot/Library/Frameworks/universal/hermes.xcframework/ios-arm64/hermes.framework/hermes",
"Pods/hermes-engine/destroot/Library/Frameworks/universal/hermes.xcframework/ios-arm64_x86_64-maccatalyst/hermes.framework/hermes"
]
framework_paths.each do |framework_relative_path|
strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
end
In case you have already post_install
has been used then copy and past the below script inside that.
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/LogRocket/LogRocket.xcframework/ios-arm64/LogRocket.framework/LogRocket",
"Pods/hermes-engine/destroot/Library/Frameworks/macosx/hermes.framework/hermes",
"Pods/hermes-engine/destroot/Library/Frameworks/macosx/hermes.framework/Versions/Current/hermes",
"Pods/hermes-engine/destroot/Library/Frameworks/universal/hermes.xcframework/ios-arm64/hermes.framework/hermes",
"Pods/hermes-engine/destroot/Library/Frameworks/universal/hermes.xcframework/ios-arm64_x86_64-maccatalyst/hermes.framework/hermes"
]
framework_paths.each do |framework_relative_path|
strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
end
Do pod install
Do archive again and try upload