登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> SoftHub关联区 >> 主题: [xcode/archs] xcode 打包时如何只选择特定的 x86 或者是 arm64 -- macos 可以用和 ios 一样的解决办法     [回主站]     [分站链接]
[xcode/archs] xcode 打包时如何只选择特定的 x86 或者是 arm64 -- macos 可以用和 ios 一样的解决办法
clq
浏览(293) - 2023-10-07 21:38:10 发表 编辑

关键字:

[2023-12-07 15:14:21 最后更新]
[xcode/archs] xcode 打包时如何只选择特定的 x86 或者是 arm64 -- macos 可以用和 ios 一样的解决办法

xcode 的编译本来就已经很复杂了,在 ios 就有 arm64 arm32 的头痛问题。如今的 mac 也同时支持 x86 和 arm64 问题更进一步复杂。

以前 xcode 下似乎没这么严格,现在也是必须要指定具体的库指定集才行,比如视频库只有 x86 版本时,目前只能指定这个 arch 。

方法有两种,一时指定一个新的 archs ,让其只包含 x86_64 。

而默认的 archs 参数是 $(ARCHS_STANDARD)

"
例如在 M1 芯片的 Mac 上利用 Xcode 13.1 创建的 macOS 项目,$(ARCHS_STANDARD) 实际值是arm64,在 Intel 芯片的 Mac 上创建的 macOS 项目,其值是x86_64 arm64。
"


而在 Intel 芯片的 Mac 上利用低版本的 Xcode 创建的 macOS 项目,其值是x86_64。

参考 https://zhuanlan.zhihu.com/p/440986066

--------------------------------------------------------
要修改这个参数,要在 xcode 的 "PROJECT" 页面的 "Build Setting" 的子页面的 "All" 中找到 "Architectures" 的那个列表下的一个子项目 “Architectures”(名称和上一级一样...)中修改。
不过感觉这个比较危险,改默认的总是不太好,所以可以用另外一个参数。

同在 "Architectures" 页面下,修改 "Excluded Architecture" 加上 "arm64" 就可以了。

参考 https://blog.csdn.net/linzhiji/article/details/128406881

Excluded Architecture

排除的架构。排除的架构将不参与编译。例如:这里选择了arm64,编译产物将不会包含arm64指令架构。








[图片]
clq  2023-10-07 22:08:31 发表 编辑

ps.如果用默认的。编译错误有可能类似于

"
building for macOS-arm64 but attempting to link with file built for macOS-x86_64
"

clq  2023-12-07 15:14:21 发表 编辑

补充2:

如果不是以 Rosetta 启动的 m1 芯片上的 xcode 可能无法调试,但是是可以正常编译的。编译的结果有可能为以下路径

/Users/ccc/Library/Developer/Xcode/DerivedData/textfile2-【一串随机字符】/Build/Products/Debug/文本处理大师.app

这时是可以直接在 m1 芯片上双击启动的。


总数:2 页次:1/1 首页 尾页  
总数:2 页次:1/1 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1