首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在旧的MacOS应用程序中为任何Mac (苹果硅谷、英特尔)激活构建

在旧的MacOS应用程序中为任何Mac (苹果硅谷、英特尔)激活构建
EN

Stack Overflow用户
提问于 2020-10-31 01:19:21
回答 2查看 649关注 0票数 2

我想把我的MacApp移植到一个通用的版本,包括新的苹果硅Arm64芯片的二进制文件。

除了使用Xcode 12.1,使用标准架构构建设置之外,我还需要做什么?我的方案只显示任何Mac (Intel)

EN

回答 2

Stack Overflow用户

发布于 2020-10-31 03:04:09

你绝对应该阅读苹果关于这个话题的官方指南:https://developer.apple.com/documentation/xcode/building_a_universal_macos_binary

这个过程在那里被很好地覆盖了。

此外,苹果还为苹果硅谷提供了另一个指南:https://developer.apple.com/documentation/xcode/porting_your_macos_apps_to_apple_silicon

这也是一本必读的书。

因此,第一步显然是更新架构列表。目前的MacMini/Macbook有x86_64,Apple Silicon有arm64等。

你应该编译,并逐一删除所有的编译错误。

在为Apple Silicon构建应用程序时,我遇到了以下问题:

苹果包装平台特定代码(此标题复制自教程:) )

例如:

代码语言:javascript
复制
#if os(macOS)
   // Put CPU-independent macOS code here.
   #if arch(arm64)
      // Put 64-bit arm64 Mac code here.
   #elseif arch(x86_64)
      // Put 64-bit x86_64 Mac code here.
   #endif
#elseif targetEnvironment(macCatalyst)
   // Put Mac Catalyst-specific code here.
#elseif os(iOS)
   // Put iOS-specific code here.
#endif

构建fat库(这是一个自定义解释:) )

您的应用程序可以使用任何C/C++静态/动态库,如CurlOpenSSL等。为了使应用程序具有通用性,您应该确保所有这些库都包含所有平台的代码。在这里,lipo将是你的朋友(这在指南中也有介绍)。为Apple Silicon构建静态库的一个示例:https://cutecoder.org/programming/compile-open-ssl-apple-silicon/

我不确定我已经完全覆盖了你的问题,所以请询问更多细节,我会澄清的。

票数 0
EN

Stack Overflow用户

发布于 2020-10-31 04:01:33

Xcode12.1没有macOS 11SDK,你需要为Apple Silicon编译它。在Xcode11发布之前,您必须下载包含macOS 11SDK的Xcode12的测试版,例如Xcode12.2测试版。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64613022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档