You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS构建在App Store Connect遭拒,关联tdLib与ITMS-90429错误

解决ITMS-90429错误:libswift_Concurrency.dylib位置异常(Flutter + TDLib场景)

一、针对ITMS-90429错误的修复方案

  • 锁定Xcode稳定版:必须使用Apple官方GM(Golden Master)版本的Xcode,beta版本会导致Swift依赖库的打包逻辑异常,建议升级到当前最新的正式版。
  • 修改TDLib编译参数:
    编译TDLib时强制禁用Swift Concurrency依赖,避免隐式引入的库路径问题。在cmake编译命令中添加-DTD_ENABLE_SWIFT_CONCURRENCY=OFF参数:
    cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=../cmake/ios.toolchain.cmake -DPLATFORM=OS64 -DTD_ENABLE_SWIFT_CONCURRENCY=OFF -DTD_ENABLE_DSYM=ON ..
    
    重新编译生成libtdjson.xcframework后替换原有文件。
  • 检查Embed Frameworks配置:
    打开Xcode的Runner target → Build Phases → Embed Frameworks:
    1. 如果libswift_Concurrency.dylib已在列表中,确认其Embed选项为Embed & Sign;
    2. 如果该库不在列表,从Xcode DerivedData目录(路径类似~/Library/Developer/Xcode/DerivedData/Runner-xxx/Build/Products/Release-iphoneos)找到libswift_Concurrency.dylib,拖入Embed Frameworks列表并设置为Embed & Sign。
  • 清理缓存重新构建:
    执行以下命令彻底清理项目缓存,避免旧依赖干扰:
    flutter clean
    rm -rf ios/Pods ios/Podfile.lock
    cd ios && pod install
    
    之后用Xcode重新归档并上传。

二、TDLib在Flutter iOS项目中的标准集成步骤

  1. 编译TDLib为XCFramework:
    git clone https://github.com/tdlib/td.git
    cd td
    mkdir build-ios && cd build-ios
    # 编译禁用Swift Concurrency的arm64版本,同时生成dSYM符号文件
    cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=../cmake/ios.toolchain.cmake -DPLATFORM=OS64 -DTD_ENABLE_SWIFT_CONCURRENCY=OFF -DTD_ENABLE_DSYM=ON ..
    xcodebuild -configuration Release -target tdjson
    # 手动打包为XCFramework(如果自动生成失败)
    xcodebuild -create-xcframework -library build-ios/Release-iphoneos/libtdjson.dylib -headers ../include -output libtdjson.xcframework
    
  2. 项目集成配置:
    • 将编译好的libtdjson.xcframework拖入iOS项目的Frameworks目录,勾选Copy items if needed;
    • 在Runner target的Frameworks, Libraries, and Embedded Content中,将libtdjson.xcframework的Embed状态设置为Embed & Sign;
    • 创建Swift-C++桥接文件(如TDLibBridge.h),添加TDLib头文件引用:
      #import <tdjson/tdjson.h>
      
    • 在AppDelegate.swift中实现Flutter方法通道逻辑时,避免使用未兼容的Swift Concurrency语法(如async/await),除非确认Xcode能正确处理依赖打包。
  3. 归档上传验证:
    • 完成归档后,右键归档包→Show in Finder→右键→Show Package Contents,进入Products/Applications/Runner.app/Frameworks,确认libtdjson.dylib和libswift_Concurrency.dylib(如果需要)都存在于该目录;
    • 使用Xcode的Distribute App功能上传时,确保在App Thinning步骤中未排除必要的框架文件。

内容的提问来源于stack exchange,提问作者Yash Vardhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 22:13:17