0

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

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

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

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

Derived Data位置设置为Relativefrom XCode/Preferences

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

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

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

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

4

1 回答 1

1

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

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

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

然后它应该工作。希望。

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

于 2012-08-07T14:31:45.917 回答