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

推荐订阅源

S
Secure Thoughts
S
SegmentFault 最新的问题
云风的 BLOG
云风的 BLOG
T
Tailwind CSS Blog
博客园 - 聂微东
小众软件
小众软件
J
Java Code Geeks
MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
量子位
GbyAI
GbyAI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
M
MIT News - Artificial intelligence
Apple Machine Learning Research
Apple Machine Learning Research
有赞技术团队
有赞技术团队
月光博客
月光博客
B
Blog RSS Feed
D
DataBreaches.Net
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Cyberwarzone
Cyberwarzone
I
Intezer
The Register - Security
The Register - Security
博客园 - 【当耐特】
博客园 - 司徒正美
L
Lohrmann on Cybersecurity
U
Unit 42
N
News and Events Feed by Topic
S
Security Affairs
V
Visual Studio Blog
Y
Y Combinator Blog
Security Latest
Security Latest
Know Your Adversary
Know Your Adversary
Google DeepMind News
Google DeepMind News
大猫的无限游戏
大猫的无限游戏
S
Schneier on Security
P
Privacy International News Feed
TaoSecurity Blog
TaoSecurity Blog
Spread Privacy
Spread Privacy
G
Google Developers Blog
NISL@THU
NISL@THU
Project Zero
Project Zero
P
Palo Alto Networks Blog
Help Net Security
Help Net Security
宝玉的分享
宝玉的分享
Stack Overflow Blog
Stack Overflow Blog
S
Security @ Cisco Blogs
G
GRAHAM CLULEY
www.infosecurity-magazine.com
www.infosecurity-magazine.com

Xcode

Xcode 切换正式的开发者账号后,提示 Bundle Identifier 已被注册,如何解决? - V2EX xcode 登录 claude agent 时要关掉 surge 代理 Xcode 26.3 RC 终于支持 Agent 了,大家怎么看 - V2EX XCode 一致无法和 手机连接 - V2EX 苦于 Xcode 不支持国内大模型,所以我做了个 AIProxy for Xcode 来支持 - V2EX 求助关于 xcode 调试 - V2EX 把阿里百炼的 qwen3-code-plus 接入 xcode26 自定义模型,但是提问会报错 - V2EX Xcode 26 内置了免费 ChatGPT,还可以添加第三方模型,意思我可以加 Sonnet?本地 Ollama 应该没啥问题 - V2EX Xcode 26 在 macOS 26 才可用 AI 功能,国行设备也可添加第三方提供商使用 - V2EX 要升级 Xcode16 了,大佬们有遇到什么坑吗? - V2EX 来救救我的 Xcode 吧 - V2EX 2025 年了吐槽一下 Xcode 的优化真的是一坨! - V2EX 有人试过同时安装 Xcode 15 和 16 么?会有什么坑么? - V2EX 有 iOS 开发不?你们 Xcode 编译的时候会影响网速不? - V2EX Xcode 编译项目为什么一定要依赖模拟器? - V2EX xcode 里用 apple id 签名的 app 安装到自己手机只能使用 1 天多 - V2EX Xcode 能远程编译并调试吗?有一个大胆的想法... - V2EX Xcode15 build 开源项目 Mattermost 报'openssl/opensslv.h' file not found 错误,求解决方法,谢谢 - V2EX xcode15.2 在 macOS 13 的老电脑上运行 app 时,要我升级系统,可老系统无法升级到最新的,怎么办? - V2EX xcode 更新需要更新两次? - V2EX Xcode 没有运行程序只是没有杀死却疯狂吃 CPU (diagnosticd) - V2EX 升级 Xcode 15 后真机联调时启动和进入断点巨慢,大家有遇到吗? - V2EX xcode 为啥无法打开文件夹? - V2EX 请教一个 Sparkle 2 的 appcast.xml 问题 - V2EX xcode 无法连接到真机 - V2EX xcode 怎么快速将快捷键映射成 vs code 同款? - V2EX Xcode 14 / 15 Could not attach to pid: attach failed - V2EX 上传 App 到 App Store 出现 ITMS-90961 错误提示,求解决方法 - V2EX 程序员用的时间 tracking 工具 WakaTime 通过一种新的方式支持了 Xcode - V2EX 有没有什么 Xcode 的插件工具之类的可以改善 Xcode 的编程体验 - V2EX 请教一下, xcode 如何让 option+delete 表现的像 vscode 一样 - V2EX Xcode 14 中模拟器导致的异常发热和电池问题 - V2EX 求 xcode package 依赖正确下载姿势,拉取 aws-sdk- Swift 两个多小时了 - V2EX 🙋CRUD 入门: 是所有语言都这样还是 xcode 的 Vapor 不行? - V2EX 2022 年, Swift 开发用 Xcode 还是 AppCode - V2EX Xcode 个人账号配置文件 7 天有效期刷新问题? - V2EX xcode 分发 ios 应用,上传时报 Invalid Provisioning Profile Signature(90165) - V2EX 发现一个下载 Xcode 的工具--- xcodes - V2EX Xcode 就是毒瘤,是内存杀手,是硬盘杀手 - V2EX 请问,有没有云端 xcode 编译环境 - V2EX V2EX 为什么 Xcode 要自动连接 Apple Watch,好多次调试的时候都要把 watch 关机,然后重启 Xcode 。。。 - V2EX 分享一下怎么在 Monterey 上使用 Xcode 12.5 - V2EX 请问 iOS 的 DeviceToken 和 UUID 的变化时机一致么? - V2EX macOS Monterey12.0.1 xcode 13.1 Simulator 打不开,卡死, 有一样的吗? - V2EX M1 MacBook Pro, Xcode 启动时必须得卡一下,请问有解决方法么 - V2EX 如何在存储空间不足的情况下安装 Xcode - V2EX 试了下 Xcode 13 Beta 3 vim mode,终于加上了 r 和 V - V2EX Xcode 安装不上怎么办? - V2EX Xcode 13 adds Vim mode
让 Xcode 见鬼去 - V2EX
Jat001 · 2023-10-30 · via Xcode

这是一个创建于 959 天前的主题,其中的信息可能已经有所发展或是发生改变。

为什么?

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

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

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 。当然,入参只有一个字符串,毕竟类型转换很麻烦,复杂的调用不如直接用目标语言重写。

musi

1

musi      2023 年 10 月 30 日 via iPhone

如果用的是 swiftui 是不是就只能用 xcode 了

weeei

2

weeei      2023 年 10 月 30 日

为啥不改成 bazel ?

Jat001

3

Jat001      2023 年 10 月 30 日

@weeei #2 因为 flutter 不支持,macos 和 ios 的构建过程强依赖 xcode 那堆鬼东西

alexcding

4

alexcding      2023 年 10 月 30 日

好久没有追 flutter 了? 现在 iOS , macOS 支持如何了. 听说 Flutter 和 Fuchsia 组被谷歌裁员了. 前途不明

CodingIran

5

CodingIran      2023 年 10 月 30 日

为什么要抗拒 Xcode? Flutter 很多的功能都要依赖原生桥接,不可能完全抛开 Xcode

zongren

7

zongren      2023 年 10 月 30 日

啥意思,proj 改成 yaml ,然后修改 yaml ,然后生成新的 proj ?

weeei

8

weeei      2023 年 10 月 30 日

@alexcding 裁员不是 2 月份的新闻了吗,到现在都过去 8 个月了,现在又裁了?

Jat001

9

Jat001      2023 年 10 月 30 日

@zongren #7 是的,新项目可以直接手写 yaml ,然后通过 XcodeGen 生成 pbxproj 。但已有的项目只能用 Xcodeproj 解析,然后人工翻译。最终目标就是不用打开 xcode ,也能修改 macos 和 ios app 开发的构建过程,进而完全摆脱 xcode 的 gui ,但 command line tools 还是摆脱不了

alexcding

10

alexcding      2023 年 10 月 30 日

@weeei 好像 7/8 月份又裁员了一次. 主要是 Fuchsia 代替安卓没戏了. 只有谷歌内部用, 第三方厂商不想被谷歌套牢. 宁可安卓用到底.

alexcding

11

alexcding      2023 年 10 月 30 日

@Jat001 我之前写了 5,6 年安卓和 AOSP, 如果现在让我写安卓, 宁可写 Flutter.

LavaC

12

LavaC      2023 年 10 月 30 日

@musi swift playground (

debuggerx

13

debuggerx      2023 年 10 月 30 日

虽然不觉得 OP 这样做能解决多少问题,但是,只要你也想让 Xcode 去死,我们就是异父异母的亲兄弟🐶

@alexcding flutter 的前途已经和 Fuchsia 没什么关系了,我从一开始就不认为 Fuchsia 能有多大前景,而且是 Fuchsia 在沾 Flutter 的光而不是反过来 Flutter 要靠 Fuchsia 来起飞,很多人都没搞清楚两个东西各自的目的和思路就瞎扯。

@CodingIran 因为 Xcode 真的真的太恶心人了,能让我少碰哪怕一分钟都是谢天谢地,但凡能用三方库解决的问题我是绝不会自己去写原生桥接,而且其实很多需求和场景下,也确实可以通过使用三方库就可以解决问题,不会找库或者不愿用三方库非要自己写桥接的行为,我尊称之为自作孽不可活,往往接手和维护就变火葬场。

Jat001

14

Jat001      2023 年 10 月 30 日

@debuggerx #13 我觉得最搞笑的是,当我搜索 mac 开发相关的问题时,大部分答案都是在 xcode 里点点点,哪怕是 stack overflow 上的答案,满屏的截图是最恶心的,完全没心情看

debuggerx

15

debuggerx      2023 年 10 月 30 日

@Jat001 然后不同版本可能截图不同,搜的时候还得看提问回答时间和对应 Xcode 版本,老版本的截图的东西新版本可能换了位置或者压根不对,最后还是得手动编辑 pbxproj 文件然后重开 Xcode 跑编译期待不出错……
汤师爷:就是一句话,恶心!

lisongeee

16

lisongeee      2023 年 10 月 30 日

没有用过 ios 开发,好奇 xcode 是一个必须打开的 gui 软件吗?

ios 程序的编译不能直接通过 命令行 执行吗?

Jat001

17

Jat001      2023 年 10 月 30 日

@lisongeee #16 就 flutter 来说,官方的构建过程完全是基于 xcode 的,编译当然不用打开 xcode ,xcode 有自己 cli tools ,flutter 会直接调用。但 xcode 的配置文件不是人类可读的,要想修改编译配置,必须通过 xcode 的 gui ,在 gui 里点点点。
最大的问题是,这堆配置文件不仅不是人类可读的,还有一大堆冗余信息(大部分是 xcode 生成的用于编译的默认配置),但要想正常编译就必须有,所以要加到版本控制里,就很容易出现无法 merge 的冲突。

300

18

300      2023 年 10 月 30 日 via Android

我尝试 KMM 项目也是的,非要打开 Xcode 配置,完全复制粘贴按照文档里的截图设置完了,Xcode 编译还是报错。把报错的 gradle 命令手动执行又是正常运行的。最后还是直接 clone 了项目

luck66

19

luck66      2023 年 10 月 30 日

@debuggerx 你喜欢用第三方,也没必要贬低不用第三方的人,往往很多第三方库都是由这些人贡献和编写的

konnnnn

20

konnnnn      2023 年 10 月 30 日 via iPhone

反过来想,ios 原生开发的 bar 挺高的:你要掌握各种坑的 workaround...

chihiro2014

21

chihiro2014      2023 年 10 月 30 日 via iPhone

最近接了一单需要写 ios ,ios 的开发环境太逆天了…装了 macos12 黑苹果以及能支持的最高版本 xcode ,然后插上我的 13pro max 表示不兼容,插上我淘汰的 6s 和 5s 也不兼容。草,太逆天了妈的。

debuggerx

22

debuggerx      2023 年 10 月 30 日   ❤️ 1

@luck66 你没懂我的意思,我当然感激和佩服维护三方库的人,我说的是因为“认知问题”而不用成熟三方库,而自己写“脆弱且不可维护的”原生桥接代码把项目搞得难以维护,还以自己“同时精通”跨平台和原生而沾沾自喜的人。

我接手过包括 Flutter 在内的很多项目,很多明明有成熟的第三方库可以用,但是之前写的人可能就是从不知道哪里复制来一段 just work 的代码,或者自己造了一个当时在他环境下可用的轮子,结果上线后发现很多用户的设备没考虑到出现各种问题,如果用的是成熟的三方库就很可能已经覆盖了这些设备差异;有时我们接手后随着系统更新各种出错不可用,如果是活跃的三方库可以通过升级依赖的方式快速解决,或者可以通过 issue 和别的开发者讨论找到方案。

Leonard

23

Leonard      2023 年 10 月 30 日 via iPhone

@chihiro2014 iOS 版本和 Xcode 版本绑定,Xcode 版本又和 macOS 版本绑定

CareiOS

24

CareiOS      2023 年 10 月 30 日

了解一下 tuist

Jat001

25

Jat001      2023 年 10 月 30 日 via iPhone

@CareiOS
都说了 xcode 的配置文件不是人类可读的,也没有任何第三方工具可以解析

Can I generate the manifest files from my Xcode projects?

While we can generate Xcode projects from your manifest files, doing it the other way around is not possible. It's possible to implement such feature in Tuist, but since we wouldn't be able to do it reliably considering how Xcode projects can be, we opted for not doing it. Moreover, going through the process of defining the manifests helps you spot issues in your current projects that otherwise would go unnoticed.

Jat001

27

Jat001      2023 年 10 月 30 日 via iPhone

@shellcodecow 无脑果粉?要是 android studio 不用 gradle 而是自己搞个封闭的构建工具不知道会被喷成啥样。不过也不奇怪,apple 自己连个从 cli 里安装 ios app 的工具都不愿意提供

zongren

28

zongren      2023 年 10 月 30 日

那是不是把这两个项目 Xcodeproj 和 XcodeGen 修改一下,使用相同 yaml 格式,就可以摆脱人工修改 yaml 了

shellcodecow

29

shellcodecow      2023 年 10 月 30 日

@Jat001 #27 没经历过社会毒打才会傻 x 一件毫无意义的事情. 硬件不够的升级硬件, 有洁癖的洗手

dohaeris

30

dohaeris      2023 年 10 月 30 日

然后未来某次 Xcode 升级之后你的 YAML 就不能用了[doge]

Jat001

32

Jat001      2023 年 10 月 31 日 via iPhone

@zongren 不行,前面说了,没有任何一个工具可以在不丢失信息的情况下解析 xcode 的配置文件,这包括 Xcodeproj

Jat001

33

Jat001      2023 年 10 月 31 日 via iPhone

@shellcodecow 没经历过社会毒打才会傻 x 一样在网络上发些没有意义的风凉话,不喜欢就尝试去改变,只会抱怨解决不了问题

Jat001

34

Jat001      2023 年 10 月 31 日 via iPhone

@dohaeris 有这个可能,所以最好的办法还是摆脱 xcode 那套封闭的生态链

ostholz

35

ostholz      2023 年 10 月 31 日

为什么不用 Tuist

FurN1

38

FurN1      2023 年 10 月 31 日 via iPhone

@shellcodecow 你把人笑拥了我给你说。开发者要是都懒得做所有事,一切都遵从傻瓜配置,GitHub 不得倒闭了。

zeromake

39

zeromake      2023 年 10 月 31 日

实际上有很多工具可以跳过 xcode 直接编译应用了,但是到了 debug 还是得回到 xcode……

zongren

41

zongren      2023 年 10 月 31 日

@Jat001 可以接受丢失一些信息呢?或者说在解决了 Xcodeproj 和 XcodeGen 的 yaml 格式不匹配的问题后,是否能丢失一些(不影响构建)信息的情况下完成 1 、转 yaml ; 2 、编辑 yaml ; 3 、生成 proj ; 4 、命令行打包的工作流?