无法使用 iCloud 容器启动“应用程序”

Posted

技术标签:

【中文标题】无法使用 iCloud 容器启动“应用程序”【英文标题】:Could not launch 'app' with iCloud container 【发布时间】:2012-07-28 04:32:05 【问题描述】:

我有一个针对 10.7 (Lion) 平台的 OS X 应用程序。我在启用了 iCloud 的开发机器上使用 XCode 4.4。这台机器上的 OS X 版本是 10.8 (Mountain Lion)。

我有一个 APP ID,我使用开发者证书实用程序启用了 iCloudcom.company.appname。该实用程序在 App ID 描述下的 iCloud 标签旁边显示一个绿色勾号。

XCodeTarget/Summary 选项卡我启用了Entitlements 并添加了iCloud 容器com.company.appname。当然,在内部,它前面是权利文件中的团队 ID:teamid.com.company.appname

我的 Mac 上还有一个有效的(绿色打勾的)配置文件,其 ID 相同:teamid.com.company.appname

Derived Data 位置从XCode/Preferences 设置为Relative

应用程序构建正常。但是当我运行它时,我得到"Could not launch "appname". Permission denied." 错误。

如果我从权利下的 iCloud Containers 列表框中删除 iCloud 容器 ID com.company.appname 并构建应用程序,它运行正常。但我当然无法访问为该应用启用的 iCloud 容器。

在过去的 24 小时里,我一直在解决这个问题。我已阅读指南; Developing for the App StoreApp Sandbox Design GuideEntitlement Key Reference 由内而外。然而我被困住了。什么地方出了错?

我很绝望,如果你能帮助我,我将不胜感激。

【问题讨论】:

【参考方案1】:

我认为最可能的问题是 AppID、权利和您的配置文件不匹配。 如果您对这些设置进行大量试验,这很容易发生。如果您创建一个具有有效设置的新项目,它应该可以立即使用,但如果您转换、更改或编辑现有项目,它可能会损坏。

不要忘记应用包 ID 的 10 位前缀。这是必需的,尤其是。用于 iCloud 键值存储!

登录 developer.apple.com,查看 AppID 选项卡 如有必要,创建 AppID 检查此应用的 iCloud 设置 以ABCDE01234.com.domain.app 的形式记下确切的应用标识符 切换回 Xcode,在管理器中“设备”选项卡的“团队”部分更新您的配置文件和权利 进入项目设置,选择应用目标并搜索“Code Sign” 确保选择了正确的代码签名身份(请参阅上面的应用程序标识符) 转到摘要选项卡并输入您的应用 ID 打开权利文件并检查其中是否还有正确的 ID。

那么它应该可以工作。 希望。

编辑: 认为将链接添加到应用 ID 中心会很好: https://developer.apple.com/certificates/index.action#bundlelist

【讨论】:

非常感谢 auco。不幸的是,我现在无法验证这些,因为我已经采取了一种解决方法。我的解决方法是:我创建了一个代理应用程序来创建用户桌面上我的应用程序 iCloud 文件夹的快捷方式。这样他们就可以从/向云加载/保存文档。问题是没有处理合并实时更改(即在 Mac 应用程序打开和使用时 iPhone 所做的更改)。因此,我将不得不回到这个问题,并可能在 1-2 个月内做出“适当”的修复。如果到那时您的回答可以帮助我解决问题,那么我一定会勾选您的回答。再次感谢您的帮助:)

以上是关于无法使用 iCloud 容器启动“应用程序”的主要内容,如果未能解决你的问题,请参考以下文章

iCloud 容器默认 vs 自定义

iCloud设置和配置

CloudKit - 无法从 iCloud 检索数据

在 iOS 8 中将应用程序的无处不在的容器暴露给 iCloud Drive

在应用程序之间共享 iCloud 文档

iCloud 无处不在的容器没有在应用程序删除时被清理?