objective-c - containerURLForSecurityApplicationGroupIdentifier 在 iOS 模拟器上返回 nil

标签 objective-c iphone xcode ios8 ios-simulator

上下文

Apple 在 iOS8 和扩展中引入了应用程序组容器 ( more info here )。

问题

我们通过 NSFileManagercontainerURLForSecurityApplicationGroupIdentifier: 方法使用它。它在 AppStore 的生产中运行良好(iOS8 和 iOS7)。问题是因为我们的团队更新到 Xcode 6.1 (6A1052d),该方法在模拟器上返回 nil

我们搜索了很多,但没有找到任何线索。甚至这个questionthis one不适用于此处。

TLDR:问题

NSFileManagercontainerURLForSecurityApplicationGroupIdentifier: 方法是否适用于您的模拟器?有什么办法可以解决这个问题吗?

最佳答案

containerURLForSecurityApplicationGroupIdentifier: 方法在设备和模拟器中均有效。

如果您设置了要共享数据以支持组的两个目标(例如 Target 和 WatchKit Extension),并且它一直返回 nil,您可能需要检查您的目标设置。

  1. Target Settings > General > Team > yourCompany signing team 应在此处选择。如果有警告和修复此问题按钮,请做好准备 并通过点击它来解决问题:)

  2. Target Settings > Capabilities > App Groups > Is On + 显示您的 group.com.yourcompany.yourapp.sharedContainter 组名称(“sharedContainer”是我选择的名称)已被选中并为黑色 (不是红色)。如果它是红色的或有警告并修复此问题 按钮,更新组或创建一个不同的组。

  3. 目标设置 > build设置 > 代码签名 > 代码签名 权利:指向您的权利文件,用于调试和 发布(类似于 yourApp/yourApp.entitlements)

  4. 目标设置 > build设置 > 代码签名 > 代码签名 身份:确保身份是上面选择的团队的一部分。 我使用 iOS Developer

  5. 目标设置 > build设置 > 代码签名 > 供应 简介:同上,确保你用的PP是Team的 必需的。我将其设置为自动

检查那些两个目标共享数据。

希望对你有帮助

关于objective-c - containerURLForSecurityApplicationGroupIdentifier 在 iOS 模拟器上返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26740404/

相关文章:

xcode - CLI Cordova 更改 ios 构建目标

objective-c - 使用Xcode产品>配置文件构建时找不到RestKit.h

iphone - 是否可以在不创建虚拟行的情况下更改 UITableView 中占位符行的高度?

ios - 带有 URL Scheme 的谷歌地图?

ios - 在ios中按升序对一些金额进行排序

android - 使用 Web App 的移动推送通知

iphone - AdWhirl(AdMob、iAd)广告未在已发布的 iPhone 应用程序中显示

ios - 如何在联系人应用程序拨号器中显示我的 VOIP 应用程序

objective-c - 如何检查是否有选择?

ios - 如何为 armv6、armv7 和 i386 构建胖静态库