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

Flutter集成square_in_app_payments后无法在iOS模拟器运行求助

解决Flutter集成Square SDK在iOS模拟器启动崩溃问题

问题核心

启动时崩溃提示Library not loaded: @rpath/ThreeDS_SDK.framework/ThreeDS_SDK,本质是Square的SquareBuyerVerificationSDK依赖的ThreeDS_SDK未适配iOS模拟器架构,再加上M1 Mac的Rosetta环境和Podfile里的全局架构设置冲突导致的。

解决步骤

1. 修改Podfile架构配置

把Podfile里的post_install段替换成下面的代码,只针对Square相关SDK设置x86_64架构,避免全局强制引发冲突:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |config|
      config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
      
      # 仅对Square系列SDK和ThreeDS_SDK设置模拟器架构
      if target.name.start_with?('Square') || target.name == 'ThreeDS_SDK'
        config.build_settings['ARCHS[sdk=iphonesimulator*]'] = 'x86_64'
      end
    end
  end
end

2. 彻底清理并重装依赖

依次执行以下命令,清空旧缓存和依赖后重新安装:

flutter clean
cd ios && rm -rf Podfile.lock Pods
pod install --repo-update
cd ..

3. 用Rosetta启动开发工具(可选)

如果上面的步骤没解决问题,右键点击VSCode图标→显示简介→勾选「使用Rosetta打开」,重启后再运行项目。

4. 检查SDK版本

确认你用的Flutter Square SDK是最新版,旧版本可能存在M1模拟器的兼容bug。

补充说明

M1 Mac的iOS模拟器默认用arm64架构,但ThreeDS_SDK目前只提供x86_64的模拟器版本。之前全局强制所有SDK用x86_64会和Flutter自身的arm64组件冲突,改成仅针对Square相关SDK设置架构,既能满足依赖要求,又不会影响Flutter的正常运行。

内容的提问来源于stack exchange,提问作者Julia Pak

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:01:01