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

集成OneSignal后Android Studio无法启动iOS模拟器应用但Xcode运行正常

问题原因

错误日志核心提示building for iOS Simulator, but linking in object file built for iOS,本质是两类问题:

  1. 如果你使用的是M1/M2系列苹果芯片的Mac,旧版本OneSignal iOS SDK的静态框架没有包含iOS模拟器对应的arm64架构切片,模拟器构建时链接失败
  2. 所有Pods依赖的最低iOS部署目标被设置为8.0,低于当前Xcode支持的最低9.0版本,触发批量警告
    Xcode可以正常运行是因为你在Xcode中选择了iOS真机作为运行目标,真机arm64架构是旧版OneSignal SDK原生支持的,因此不会触发链接错误;Android Studio默认调用模拟器构建,触发了兼容问题。
解决方案

方案1:手动配置架构排除与部署版本(适配旧版OneSignal SDK)

  • 打开项目ios目录下的Runner.xcworkspace文件,选中左侧的Runner项目,切换到「Build Settings」选项卡
  • 搜索Excluded Architectures配置,在Debug模式下的「Any iOS Simulator SDK」条目添加值arm64
  • 为了避免每次执行pod install后配置被重置,直接在ios/Podfile文件末尾添加如下配置:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      # 统一将所有Pod的最低部署版本设置为9.0,消除版本警告
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
      # Debug模式下排除模拟器arm64架构,解决OneSignal链接错误
      if config.name == 'Debug'
        config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
      end
    end
  end
end
  • 保存修改后,在项目根目录依次执行以下命令:
cd ios
rm -rf Pods Podfile.lock
pod install --repo-update
  • 回到Android Studio,执行清理后重新运行项目即可。

方案2:升级OneSignal Flutter SDK

如果不需要保留旧版SDK,直接将pubspec.yaml中的OneSignal依赖升级到3.0.0及以上版本,官方已在新版本中使用XCFramework格式适配了M系列芯片的iOS模拟器运行,无需手动修改架构配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 00:15:03