惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
罗磊的独立博客
腾讯CDC
云风的 BLOG
云风的 BLOG
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
宝玉的分享
宝玉的分享
U
Unit 42
I
InfoQ
D
DataBreaches.Net
Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
美团技术团队
IT之家
IT之家
Stack Overflow Blog
Stack Overflow Blog
F
Fortinet All Blogs
GbyAI
GbyAI
S
SegmentFault 最新的问题

Xcode

Xcode 切换正式的开发者账号后,提示 Bundle Identifier 已被注册,如何解决? xcode 登录 claude agent 时要关掉 surge 代理 Xcode 26.3 RC 终于支持 Agent 了,大家怎么看 XCode 一致无法和 手机连接 苦于 Xcode 不支持国内大模型,所以我做了个 AIProxy for Xcode 来支持 求助关于 xcode 调试 把阿里百炼的 qwen3-code-plus 接入 xcode26 自定义模型,但是提问会报错 Xcode 26 内置了免费 ChatGPT,还可以添加第三方模型,意思我可以加 Sonnet?本地 Ollama 应该没啥问题 Xcode 26 在 macOS 26 才可用 AI 功能,国行设备也可添加第三方提供商使用 要升级 Xcode16 了,大佬们有遇到什么坑吗? 来救救我的 Xcode 吧 2025 年了吐槽一下 Xcode 的优化真的是一坨! 有人试过同时安装 Xcode 15 和 16 么?会有什么坑么? 有 iOS 开发不?你们 Xcode 编译的时候会影响网速不? Xcode 编译项目为什么一定要依赖模拟器? xcode 里用 apple id 签名的 app 安装到自己手机只能使用 1 天多 Xcode 能远程编译并调试吗?有一个大胆的想法... Xcode15 build 开源项目 Mattermost 报'openssl/opensslv.h' file not found 错误,求解决方法,谢谢 xcode15.2 在 macOS 13 的老电脑上运行 app 时,要我升级系统,可老系统无法升级到最新的,怎么办? xcode 更新需要更新两次? Xcode 没有运行程序只是没有杀死却疯狂吃 CPU (diagnosticd) 升级 Xcode 15 后真机联调时启动和进入断点巨慢,大家有遇到吗? xcode 为啥无法打开文件夹? 请教一个 Sparkle 2 的 appcast.xml 问题 xcode 无法连接到真机 xcode 怎么快速将快捷键映射成 vs code 同款? Xcode 14 / 15 Could not attach to pid: attach failed 上传 App 到 App Store 出现 ITMS-90961 错误提示,求解决方法 程序员用的时间 tracking 工具 WakaTime 通过一种新的方式支持了 Xcode 有没有什么 Xcode 的插件工具之类的可以改善 Xcode 的编程体验
让 Xcode 见鬼去
Jat001 · 2023-10-30 · via Xcode

为什么?

Xcode 的配置文件虽然是纯文本,但正常人基本看不懂。也没有一个工具可以在不丢失任何信息的情况下把 project.pbxproj 解析成人类可读的格式。

最近开发 Flutter ,发现官方提供的 macOS 和 iOS 模版都是基于 Xcode 的,也就是说如果想要查看或修改构建配置,必须打开 Xcode ,这显然是可以接受的 (unacceptable)。

如何拒绝打开 Xcode

Xcodeproj 可以把 project.pbxproj 解析成 YAML 格式,在 Flutter 的 macOS 模版上试了下,构建相关的信息基本没丢。

但 Flutter 自身仍要借助 Xcode 来构建,所以只能看是不行的,必须有工具重新生成 project.pbxproj

XcodeGen 虽然可以通过 YAML 生成 project.pbxproj,但它的 spec 跟 Xcodeproj 解析出来的 YAML 完全不同。

目前只能通过对照 Xcodeproj 解析出来的 YAML 和 XcodeGen 的 spec 人工完成。

示例

我花了两天时间把 Flutter macOS 模版里的 project.pbxproj 解析成了 YAML ,简单改改就能直接用了。

https://github.com/jat001/ddns4cdn-aio/blob/main/src/macos/project.yml

另外还有一份通过 Swift 调用 staic library (.a) 或 shared library (.so) 的示例,仍然无需打开 Xcode 就可编译。

https://github.com/jat001/ddns4cdn/tree/main/src/cgo/swift

这个项目其实是 Go 写的,通过 cgo 实现了用 C, C++, Objective-C 和 Swift 调用 Go 。当然,入参只有一个字符串,毕竟类型转换很麻烦,复杂的调用不如直接用目标语言重写。