老的ios项目在新的mac M1上编译运行遇到的问题及整理

今天我在 Xcode 里踩过的 10 个坑,以及如何 30 秒爬出来

适用场景:刚从 Android 转 iOS、第一次用 M 系列 Mac、或者一年没碰 Xcode 的你。

阅读收益:下次再遇到同款红色报错,直接 ⌘F 搜关键字,复制答案即可。


0. 前置彩蛋:把"编译"和"运行"分开想,能省一半时间

  • 只想验证代码能不能过?⌘B 足够,不需要选设备。
  • 想跑起来看效果?再选目的地 + ⌘R。
    把这两件事分开,很多"设备不可用"的报错瞬间失去存在感。

1. "Downloading Xcode support for iOS xx.x"

关键字 :Downloading / must complete before you can run
场景 :第一次打开新项目,或昨晚苹果刚更新系统。
30 秒方案:

  1. 点 Show Downloads → 等进度条完事;
  2. 嫌慢?Xcode ▸ Settings ▸ Platforms 手动取消再重下;
  3. 急用?把 Deployment Target 先降到本地已装版本(如 17.5),秒编。

2. "A build only device cannot be used to run this target"

关键字 :build only / No supported iOS devices
场景 :目的地错选 Any iOS Device 或 Mac (Build only)。
30 秒方案 :顶部工具栏选任意模拟器 或真机 ,再 ⌘R。


3. Bundle ID 被占用 → "The app identifier is not available"

关键字 :not available / cannot be registered
场景 :免费账号或新团队,第一次创建 Bundle ID。
30 秒方案 :

把 com.example.xxx 换成全球唯一 字符串,例如
com.yourname.project2025

(提示:加年份几乎不会撞车)


4. "Your team has no devices ..."

关键字 :no devices / provisioning profile
场景 :免费开发账号,且从未登记过真机。
30 秒方案:

  1. 插 iPhone → 解锁 → 信任电脑 → 顶部目的地选它 → 弹窗点 Register;
  2. 不想插?先换模拟器一样能 ⌘B 编译。

5. 嵌件 Bundle ID 前缀冲突

关键字 :Embedded binary's bundle identifier is not prefixed
场景 :项目里包含 Extension、Widget、WatchApp 等。
30 秒方案:

  1. 导航栏顶部 🔍 搜 Extension / Widget / Watch → 找到黄色靶标;
  2. 把它的 ID 改成 主AppID.xxx,例如
    com.yourname.project2025.NotificationService;
  3. 有几个改几个,统一前缀即可。

6. 清缓存依旧报错 5.

30 秒方案 :
⇧⌘K(Clean Build Folder)→ 退出 Xcode → 重新打开 → 再跑。


7. 再次注册失败 ------ 换 ID 依旧冲突

30 秒方案 :

把前缀再换一层,例如
com.yourname.project2025 → com.yourname.project2025a
嵌件同步改;字母/数字/年份随便加,确保唯一。


8. 在 Apple 芯片 Mac 上原生跑 iOS 项目

关键字 :Designed for iPhone/iPad
场景 :不想开模拟器,也不想插真机。
30 秒方案:

  1. 顶部目的地选 My Mac (Designed for iPhone);
  2. 列表里没有?TARGET ▸ General ▸ Supported Destinations ▸ + ▸ Mac ▸ Designed for iPhone;
  3. ⌘R 直接弹出 Mac 窗口,鼠标键盘都能用。

9. 仅编译不运行

30 秒方案 :

选 Any iOS Device 或 Any iOS Device (arm64) → ⌘B。


10. 找不到嵌件 Target?

30 秒方案 :

导航器顶部 🔍 输入 Extension / Widget / Watch / Notification / Service → 双击黄色靶标直达。


收尾 checklist(建议截图当桌面)

步骤 快速验证
主 App ID 全局唯一 在 developer.apple.com 搜索一下,能搜到就继续加后缀
所有嵌件 ID = 主AppID.xxx 批量搜 Extension 确认
目的地 模拟器 / 真机 / My Mac (Designed for iPhone) 三选一
签名失败 先换 ID → 再 Clean → 再跑
真机调试 插线 → 信任 → Register → Done

把这篇丢进收藏夹,下次 Xcode 飘红,直接 ⌘F 搜关键字 ,30 秒自救。

祝你编译一路绿色,生活愉快!

相关推荐
传奇开心果编程1 天前
【SwiftUI提高练中学】第13课 实时活动与灵动岛:ActivityKit 实战
学习·ui·ios·swiftui·swift
可乐鸡翅yeah_1 天前
M3U8 防盗链 URL‑Token 签名,新手开发实操避坑
开发语言·javascript·ios·音视频·safari
传奇开心果编程1 天前
【SwiftUI入门练中学】第17课 通知与后台任务
学习·ui·ios·swiftui·swift
yqj2342 天前
ESP32-S3中小智项目优化内容
ide·macos·xcode
ii_best2 天前
按键精灵手机端开发安卓版实战:手写一个可最小化、可拖动的「运行日志悬浮窗」(附完整 源码 + 踩坑记录)
android·ios·智能手机·自动化·ai编程·按键精灵
美狐美颜SDK开放平台2 天前
Android与iOS直播APP美颜有什么区别?视频美颜SDK开发详解
android·ios·音视频·视频美颜sdk
Mininglamp_27182 天前
Cider量化配置与性能调优:在M系列Mac上压榨Mano-P的每一点推理性能
macos
xuefuhe2 天前
MacOS EAGAIN无法打开terminal
macos
传奇开心果编程3 天前
【SwiftUI入门练中学】第7课 动画与手势:让界面更灵动
学习·macos·ui·ios·swiftui·swift
知潮网3 天前
发售刚十天,9999 元的 iPhone 18 Pro 解锁就重启
ios·iphone