BLOG

ブログ

2025/02/24 技術系

【Xcode16】Bitcodeエラーについて

この記事を書いた人 M.H

こんにちは!M.Hです。
今回はXcode16で発生した、Bitcodeエラーの対処法についてご紹介します。

今回起きたエラー

Xcode16でビルドしたアプリをTestFlightにアップロードしようとした際に、以下のエラーが発生しました。

[12:25:27]: Application Loader output above ^
[12:25:27]: [ContentDelivery.Uploader.6000039F01C0] Asset validation failed (90482) Invalid Executable. The executable 'test.app/Frameworks/RawStructuredFieldValues.framework/RawStructuredFieldValues' contains bitcode. (ID: 100512ac-1eb0-4c9e-ab1c-4b8baf3903ca)
[12:25:27]: [ContentDelivery.Uploader.6000039F01C0] Asset validation failed (90482) Invalid Executable. The executable 'test.app/Frameworks/StructuredFieldValues.framework/StructuredFieldValues' contains bitcode. (ID: 37f9f90c-3e6d-48ff-a05d-da8a12434228)

使用しているフレームワークにBitcodeが含まれていることが原因のようです。

そもそもBitcodeとは?

Bitcodeは、AppleのLLVMコンパイラによって生成される中間表現の形式です。
アプリのビルド時に、実際の機械語(バイナリコード)ではなく、LLVM Bitcodeを含めることで、
後から最適化や再コンパイルを行える仕組みになっています。

解決方法

解決方法として、以下のコマンドで当該のフレームワークからBitcodeを削除します。

xcrun bitcode_strip -r hogeFramework.framework/hogeFramework -o hogeFramework.framework/hogeFramework

また、CocoaPodsを使用している場合は、Podfileに以下のコードを追加することによって、pod install時にBitcodeを自動で削除できるようになります。

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/hogeFramework/hogeFramework/dynamic/hogeFramework.xcframework/ios-arm64_armv7/hogeFramework.framework/hogeFramework" , 
  ] 

  framework_paths.each do | framework_relative_path | 
    strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path) 
  end 
end

Xcode14以降、Bitcodeは廃止の方向へ進んでおり、Xcode15まではフレームワークやライブラリにBitcodeが含まれていてもエラーにはなりませんでした。
しかし、Xcode16からはフレームワークやライブラリにBitcodeが含まれている場合もエラーとなるようになりました。

参考

まとめ

今回は、Xcode16のBitcodeエラーの解決方法についてご紹介しました!
いまだにBitcodeが含まれているフレームワークが存在するため、ご注意ください。
同様のエラーが発生した場合は、ご紹介した方法を参考になさってください。



株式会社ウイングドアは福岡のシステム開発会社です。
現在、私達と一緒に"楽しく仕事が出来る仲間"として、新卒・中途採用を絶賛募集しています!
ウイングドアの仲間達となら楽しく仕事できるかも?と興味をもった方、
お気軽にお問い合わせ下さい!

アーカイブ