如何为特定的构建配置启用 App Sandboxing

Posted

技术标签:

【中文标题】如何为特定的构建配置启用 App Sandboxing【英文标题】:How can I enable App Sandboxing for specific build configuration 【发布时间】:2013-12-29 00:37:38 【问题描述】:

我正在开发一个 Mac 应用,并准备将其提交到 Mac AppStore。

我也想同时在我的网站上发布它。

由于我使用 Sparkle 框架 来管理 AppStore 外部版本的更新,因此该应用可以被沙盒化。

我知道我可以使用多个构建目标来完成此操作,但是保持同步的两个目标太重了,因为唯一不同的是沙盒与否。

所以我创建了一个构建配置,我的配置列表如下:

调试:用于开发,已禁用沙盒 发布:用于在 Mac AppStore 之外分发,Sandbox Disabled MacAppStore:用于分发到 Mac AppStore,启用沙盒

如何仅为 MacAppStore 配置启用沙盒?

【问题讨论】:

【参考方案1】:

为每个构建配置提供自定义授权文件。沙盒只是 AFAIK 的一种能力。

权利文件是一个构建设置,构建设置可能因配置而异

请看截图说明

    显示管理配置的位置。 显示了我如何清除 Release 的构建设置,但将其留给 Appstore

【讨论】:

您能解释一下如何为构建配置提供自定义授权文件吗?我在 Capabilities 中启用了 App Sandbox,并且 Xcode 在我的项目中添加了一个 .entitlement 文件,我该如何删除此文件以进行发布配置? 所以正常使用功能页面,然后看到 xcode 生成权利并通过构建设置“代码签名权利”设置这些权利 扩展构建设置(设置左侧的三角形)并根据配置进行修改 不要忘记您可能必须清理构建以摆脱旧权利 小菜一碟。绝妙的答案! ;-)

以上是关于如何为特定的构建配置启用 App Sandboxing的主要内容,如果未能解决你的问题,请参考以下文章

如何为多个构建配置选择不同的 app.config

如何为特定目录或文件启用特定 gcc 警告? [复制]

如何为现有应用启用 Apple 登录? “配置文件不支持使用 Apple 登录功能”

如何为启用 2FA 的 github 帐户配置 Jenkins?

如何为git启用多个用户名?即。具体项目可以有特定的用户名[重复]

如何为 GitLab CI 运行器启用 Maven 工件缓存?