Skip to content

[bug] MetalToolchain causing build error on iOS target #14864

@setoelkahfi

Description

@setoelkahfi

Describe the bug

I observed this when tying to run a Metal library for machine learning models. I tested by removing my Metal Toolchain and it fixed the build.

Ld /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Products/debug-iphonesimulator/KaroKowe.app/__preview.dylib normal (in target 'app_iOS' from project 'app')
    cd /Users/setoelkahfi/Repositories/splitfire/frontend/karokowe/src-tauri/gen/apple
    /Applications/Xcode-26.2.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Xlinker -reproducible -target arm64-apple-ios13.0-simulator -dynamiclib -isysroot /Applications/Xcode-26.2.0.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator26.2.sdk -O0 -L/Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Products/debug-iphonesimulator -L/Users/setoelkahfi/Repositories/splitfire/frontend/karokowe/src-tauri/gen/apple/Externals/arm64/debug -L/Applications/Xcode-26.2.0.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator26.2.sdk/usr/lib/swift -L/var/run/com.apple.security.cryptexd/mnt/com.apple.MobileAsset.MetalToolchain-v17.3.48.0.T5h9NI/Metal.xctoolchain/usr/lib/swift/iphonesimulator -L/var/run/com.apple.security.cryptexd/mnt/com.apple.MobileAsset.MetalToolchain-v17.3.48.0.T5h9NI/Metal.xctoolchain/usr/lib/swift-5.0/iphonesimulator -F/Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Products/debug-iphonesimulator -F. -install_name @rpath/KaroKowe.debug.dylib -dead_strip -rdynamic -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -Xlinker -dependency_info -Xlinker /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/Objects-normal/arm64/KaroKowe_dependency_info.dat -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/KaroKowe.app-Simulated.xcent -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __ents_der -Xlinker /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/KaroKowe.app-Simulated.xcent.der -Xlinker -no_adhoc_codesign -o /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Products/debug-iphonesimulator/KaroKowe.app/__preview.dylib
ld: warning: search path '/var/run/com.apple.security.cryptexd/mnt/com.apple.MobileAsset.MetalToolchain-v17.3.48.0.T5h9NI/Metal.xctoolchain/usr/lib/swift/iphonesimulator' not found
ld: warning: search path '/var/run/com.apple.security.cryptexd/mnt/com.apple.MobileAsset.MetalToolchain-v17.3.48.0.T5h9NI/Metal.xctoolchain/usr/lib/swift-5.0/iphonesimulator' not found

CompileC /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/Objects-normal/arm64/main.o /Users/setoelkahfi/Repositories/splitfire/frontend/karokowe/src-tauri/gen/apple/Sources/app/main.mm normal arm64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'app_iOS' from project 'app')
    cd /Users/setoelkahfi/Repositories/splitfire/frontend/karokowe/src-tauri/gen/apple

    Using response file: /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/Objects-normal/arm64/af3fcb34312c57c0f52879cdce924b91-common-args.resp

    /Applications/Xcode-26.2.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c++ -ivfsstatcache /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/SDKStatCaches.noindex/iphonesimulator26.2-23C53-3885c01c3e6b6a337905948deab2002e396ea2e52eee30dc3ef691f54c5a881e.sdkstatcache -fmessage-length\=214 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit\=0 -fcolor-diagnostics -fmodules-prune-interval\=86400 -fmodules-prune-after\=345600 -fbuild-session-file\=/Users/setoelkahfi/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror\=non-modular-include-in-framework-module -Wno-trigraphs -Wno-missing-field-initializers -Wno-missing-prototypes -Werror\=return-type -Wdocumentation -Wunreachable-code -Wquoted-include-in-framework-header -Wno-implicit-atomic-properties -Werror\=deprecated-objc-isa-usage -Wno-objc-interface-ivars -Werror\=objc-root-class -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wconditional-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -Wno-c++11-extensions -Wno-implicit-fallthrough -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -Winvalid-offsetof -Wno-sign-conversion -Winfinite-recursion -Wmove -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wrange-loop-analysis -Wno-semicolon-before-method-body -Wunguarded-availability -index-store-path /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Index.noindex/DataStore @/Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/Objects-normal/arm64/af3fcb34312c57c0f52879cdce924b91-common-args.resp -MMD -MT dependencies -MF /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/Objects-normal/arm64/main.d --serialize-diagnostics /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/Objects-normal/arm64/main.dia -c /Users/setoelkahfi/Repositories/splitfire/frontend/karokowe/src-tauri/gen/apple/Sources/app/main.mm -o /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/Objects-normal/arm64/main.o -index-unit-output-path /app.build/debug-iphonesimulator/app_iOS.build/Objects-normal/arm64/main.o

CompileAssetCatalogVariant thinned /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Products/debug-iphonesimulator/KaroKowe.app /Users/setoelkahfi/Repositories/splitfire/frontend/karokowe/src-tauri/gen/apple/Assets.xcassets (in target 'app_iOS' from project 'app')
    cd /Users/setoelkahfi/Repositories/splitfire/frontend/karokowe/src-tauri/gen/apple
    /Applications/Xcode-26.2.0.app/Contents/Developer/usr/bin/actool /Users/setoelkahfi/Repositories/splitfire/frontend/karokowe/src-tauri/gen/apple/Assets.xcassets --compile /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/assetcatalog_output/thinned --output-format human-readable-text --notices --warnings --export-dependency-info /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/assetcatalog_dependencies_thinned --output-partial-info-plist /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/assetcatalog_generated_info.plist_thinned --app-icon AppIcon --compress-pngs --enable-on-demand-resources YES --filter-for-thinning-device-configuration iPhone18,1 --filter-for-device-os-version 26.2 --development-region en --target-device iphone --target-device ipad --minimum-deployment-target 13.0 --platform iphonesimulator

Ld /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Products/debug-iphonesimulator/KaroKowe.app/KaroKowe.debug.dylib normal (in target 'app_iOS' from project 'app')
    cd /Users/setoelkahfi/Repositories/splitfire/frontend/karokowe/src-tauri/gen/apple
    /Applications/Xcode-26.2.0.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -Xlinker -reproducible -target arm64-apple-ios13.0-simulator -dynamiclib -isysroot /Applications/Xcode-26.2.0.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator26.2.sdk -O0 -L/Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/EagerLinkingTBDs/debug-iphonesimulator -L/Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Products/debug-iphonesimulator -L/Users/setoelkahfi/Repositories/splitfire/frontend/karokowe/src-tauri/gen/apple/Externals/arm64/debug -L/Applications/Xcode-26.2.0.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator26.2.sdk/usr/lib/swift -L/var/run/com.apple.security.cryptexd/mnt/com.apple.MobileAsset.MetalToolchain-v17.3.48.0.T5h9NI/Metal.xctoolchain/usr/lib/swift/iphonesimulator -L/var/run/com.apple.security.cryptexd/mnt/com.apple.MobileAsset.MetalToolchain-v17.3.48.0.T5h9NI/Metal.xctoolchain/usr/lib/swift-5.0/iphonesimulator -F/Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/EagerLinkingTBDs/debug-iphonesimulator -F/Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Products/debug-iphonesimulator -F. -filelist /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/Objects-normal/arm64/KaroKowe.LinkFileList -install_name @rpath/KaroKowe.debug.dylib -Xlinker -rpath -Xlinker @executable_path/Frameworks -dead_strip -Xlinker -object_path_lto -Xlinker /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/Objects-normal/arm64/KaroKowe_lto.o -rdynamic -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -Xlinker -dependency_info -Xlinker /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Intermediates.noindex/app.build/debug-iphonesimulator/app_iOS.build/Objects-normal/arm64/KaroKowe_dependency_info.dat -stdlib\=libc++ -fobjc-arc -fobjc-link-runtime -Xlinker -alias -Xlinker _main -Xlinker ___debug_main_executable_dylib_entry_point -lapp -framework CoreGraphics -framework Metal -framework MetalKit -framework QuartzCore -framework Security -framework UIKit -framework AudioToolbox -framework AVFoundation -framework AVFAudio -framework CoreAudio -framework OpenAL -framework WebKit -Xlinker -no_adhoc_codesign -o /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Products/debug-iphonesimulator/KaroKowe.app/KaroKowe.debug.dylib
ld: warning: search path '/var/run/com.apple.security.cryptexd/mnt/com.apple.MobileAsset.MetalToolchain-v17.3.48.0.T5h9NI/Metal.xctoolchain/usr/lib/swift/iphonesimulator' not found
ld: warning: search path '/var/run/com.apple.security.cryptexd/mnt/com.apple.MobileAsset.MetalToolchain-v17.3.48.0.T5h9NI/Metal.xctoolchain/usr/lib/swift-5.0/iphonesimulator' not found
ld: warning: Could not find or use auto-linked library 'swiftCompatibility56': library 'swiftCompatibility56' not found
ld: warning: Could not find or use auto-linked library 'swiftCompatibilityConcurrency': library 'swiftCompatibilityConcurrency' not found
ld: warning: Could not find or use auto-linked library 'swiftCompatibilityPacks': library 'swiftCompatibilityPacks' not found
ld: warning: Could not find or use auto-linked framework 'CoreAudioTypes': framework 'CoreAudioTypes' not found
ld: warning: Could not find or use auto-linked framework 'UIUtilities': framework 'UIUtilities' not found
ld: warning: Could not parse or use implicit file '/Applications/Xcode-26.2.0.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/SwiftUICore.framework/SwiftUICore.tbd': cannot link directly with 'SwiftUICore' because product being built is not an allowed client of it
Undefined symbols for architecture arm64:
  "__swift_FORCE_LOAD_$_swiftCompatibility56", referenced from:
      __swift_FORCE_LOAD_$_swiftCompatibility56_$_SwiftRs in libapp.a[260](lib.swift.o)
      __swift_FORCE_LOAD_$_swiftCompatibility56_$_Tauri in libapp.a[261](Channel.swift.o)
      __swift_FORCE_LOAD_$_swiftCompatibility56_$_tauri_plugin_haptics in libapp.a[269](HapticsPlugin.swift.o)
      __swift_FORCE_LOAD_$_swiftCompatibility56_$_tauri_plugin_clipboard_manager in libapp.a[281](ClipboardPlugin.swift.o)
      __swift_FORCE_LOAD_$_swiftCompatibility56_$_tauri_plugin_opener in libapp.a[292](OpenerPlugin.swift.o)
      __swift_FORCE_LOAD_$_swiftCompatibility56_$_tauri_plugin_log in libapp.a[1192](LogPlugin.swift.o)
  "__swift_FORCE_LOAD_$_swiftCompatibilityConcurrency", referenced from:
      __swift_FORCE_LOAD_$_swiftCompatibilityConcurrency_$_SwiftRs in libapp.a[260](lib.swift.o)
      __swift_FORCE_LOAD_$_swiftCompatibilityConcurrency_$_Tauri in libapp.a[261](Channel.swift.o)
      __swift_FORCE_LOAD_$_swiftCompatibilityConcurrency_$_tauri_plugin_haptics in libapp.a[269](HapticsPlugin.swift.o)
      __swift_FORCE_LOAD_$_swiftCompatibilityConcurrency_$_tauri_plugin_clipboard_manager in libapp.a[281](ClipboardPlugin.swift.o)
      __swift_FORCE_LOAD_$_swiftCompatibilityConcurrency_$_tauri_plugin_opener in libapp.a[292](OpenerPlugin.swift.o)
      __swift_FORCE_LOAD_$_swiftCompatibilityConcurrency_$_tauri_plugin_log in libapp.a[1192](LogPlugin.swift.o)
ld: symbol(s) not found for architecture arm64
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

note: Run script build phase 'Build Rust Code' will be run during every build because the option to run the script phase "Based on dependency analysis" is unchecked. (in target 'app_iOS' from project 'app')
** BUILD FAILED **


The following build commands failed:
	Ld /Users/setoelkahfi/Library/Developer/Xcode/DerivedData/app-ahswwcdiberlnuagoaidlgufkpbt/Build/Products/debug-iphonesimulator/KaroKowe.app/KaroKowe.debug.dylib normal (in target 'app_iOS' from project 'app')
	Building workspace app with scheme app_iOS and configuration debug
(2 failures)
       Error failed to run iOS app: failed to build with xcodebuild: command ["xcodebuild"] exited with code 65

Reproduction

  1. Install metal toolchain: xcodebuild -downloadComponent MetalToolchain
  2. Build a Tauri app for iOS.
  3. Build fail.

Expected behavior

Build should succeed with the existence of Metal Toolchain.

Full tauri info output

[✔] Environment
    - OS: Mac OS 26.2.0 arm64 (X64)
    ✔ Xcode Command Line Tools: installed
    ✔ Xcode: 26.2
    ✔ rustc: 1.92.0 (ded5c06cf 2025-12-08)
    ✔ cargo: 1.92.0 (344c4567c 2025-10-21)
    ✔ rustup: 1.28.2 (e4f3ad6f8 2025-04-28)
    ✔ Rust toolchain: 1.92-aarch64-apple-darwin (overridden by environment variable RUSTUP_TOOLCHAIN)
    - node: 24.9.0
    - pnpm: 10.25.0
    - yarn: 1.22.22
    - npm: 11.6.0
    - bun: 1.3.3
    - deno: deno 2.5.6

[-] Packages
    - tauri 🦀: 2.9.5
    - tauri-build 🦀: 2.5.3
    - wry 🦀: 0.53.5, (outdated, latest: 0.54.1)
    - tao 🦀: 0.34.5
    - tauri-cli 🦀: 2.9.6
    - @tauri-apps/api  ⱼₛ: 2.9.1
    - @tauri-apps/cli  ⱼₛ: 2.9.6

[-] Plugins
    - tauri-plugin-opener 🦀: 2.5.3
    - @tauri-apps/plugin-opener  ⱼₛ: 2.5.3
    - tauri-plugin-fs 🦀: 2.4.5
    - @tauri-apps/plugin-fs  ⱼₛ: 2.4.5
    - tauri-plugin-haptics 🦀: 2.3.2
    - @tauri-apps/plugin-haptics  ⱼₛ: 2.3.2
    - tauri-plugin-deep-link 🦀: 2.4.6
    - @tauri-apps/plugin-deep-link  ⱼₛ: 2.4.6
    - tauri-plugin-store 🦀: 2.4.2
    - @tauri-apps/plugin-store  ⱼₛ: 2.4.2
    - tauri-plugin-clipboard-manager 🦀: 2.3.2
    - @tauri-apps/plugin-clipboard-manager  ⱼₛ: 2.3.2
    - tauri-plugin-single-instance 🦀: 2.3.7
    - @tauri-apps/plugin-single-instance  ⱼₛ: not installed!
    - tauri-plugin-os 🦀: 2.3.2
    - @tauri-apps/plugin-os  ⱼₛ: 2.3.2
    - tauri-plugin-log 🦀: 2.8.0
    - @tauri-apps/plugin-log  ⱼₛ: 2.8.0

[-] App
    - build-type: bundle
    - CSP: unset
    - frontendDist: ../dist
    - devUrl: http://localhost:1420/
    - framework: React
    - bundler: Vite

Stack trace


Additional context

Xcode 26.2

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions