今日扩展无法继承以下项的CoreMedia权限


68

我试图将Swift中的Today扩展添加到我的Objective-C应用程序中。我在调试器日志中不断收到此消息:Failed to inherit CoreMedia permissions from 3005: (null)。编号ex。3005每次都不同。我正在从小部件中读取NSUserDefaults,但正在读取/编写应用程序本身。我的TodayViewController中的唯一代码如下:

override func viewDidLoad() {
    super.viewDidLoad()

    let formatter = NSNumberFormatter()
    formatter.numberStyle = .CurrencyStyle
    totalLabel.text = formatter.stringFromNumber(0)
    coinsLabel.text = formatter.stringFromNumber(0)

    formatter.maximumFractionDigits = 0
    billsLabel.text = formatter.stringFromNumber(0)

}

func widgetMarginInsetsForProposedMarginInsets(defaultMarginInsets: UIEdgeInsets) -> UIEdgeInsets {
    return UIEdgeInsetsMake(8.0, 16.0, 8.0, 16.0)
}

func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)!) {
    // Perform any setup necessary in order to update the view.

    // If an error is encountered, use NCUpdateResult.Failed
    // If there's no update required, use NCUpdateResult.NoData
    // If there's an update, use NCUpdateResult.NewData

    completionHandler(NCUpdateResult.NewData)
}

2
我有同样的问题。我还注意到,在那之后,我的小部件消耗的内存几乎扩展为1gb,这很奇怪,因为我只执行一个简单的网络请求,甚至没有执行。
2014年

我也是。但是我根本就没有使用Swift,对我来说,它在访问我的NSManagedObject子类(实际上似乎被解释为NSManagedObject,本身就很奇怪)中的一个子类时出现了。
flohei 2014年

我检查了Xcode 6.1 Beta,消息仍然存在。我的扩展程序没有任何运行时问题,调试器没有特别说明这是警告。希望苹果在我提交审查时不会拒绝该应用程序。
2014年

1
我有类似的问题。如果删除“ widgetMarginInsetsForProposedMarginInsets”,该错误可能会消失。(使用“ preferredContentSize”时出现相同的错误)。仍然还没有想出如何实际解决这个问题。
Pandafox 2014年

1
我正在开发自定义键盘,有时会遇到此消息。我发现,如果我在目标设置的“常规”选项卡中将包含我的应用程序目标和扩展目标的“团队”都设置为“无”(并在此更改后清除),则不会出现此日志消息。我相信这是iOS中的错误。
vbezhenar 2014年

Answers:


53

我认为在创建应用程序扩展时,“无法从NNNN继承CoreMedia权限”警告与应用程序组有关。包含的应用程序和应用程序扩展名都需要启用“应用程序组”功能并使用相同的应用程序组容器ID(例如:group.com.yourdomain.yourappname)。应用程序组用于允许多个应用程序访问共享容器,并允许应用程序之间进行其他进程间通信。

功能应如下所示


35
我已经做到了。应用程序和扩展目标的应用程序组均处于启用状态,并且它们使用相同的组。

1
不确定。创建模板应用扩展后,我收到警告。我没有添加自定义代码。开启应用组可为我解决此问题。从NSUserDefaults读取时是否要指定suiteName?例如VAR userDefaults NSUserDefaults的=(suiteName: “group.com.yourdomain.yourappname”)
乔恩

是的,乔恩,我是。我还有另一个示例应用程序(raywenderlich.com/83809/ios-8-today-extension-tutorial),它们都是Swift(包含应用程序和扩展程序),所以我排除了它是由于Obj-C的混合和斯威夫特。我提到的示例应用程序使用自定义框架而非“应用程序组”,它还会在日志中获取该消息。希望这只是一个Xcode错误。顺便说一句,我正在使用6.0.1版。
2014年

1
我还要提到的一件事:我创建了一个应用程序组,但命名错误。我未选中两个目标的未使用组,但找不到删除它的方法。
2014年

3
同样的问题,但对我而言这仅在模拟器中发生,在真实设备上可以正常工作
mliu

16

首先,点击 Assets.xcassets

首先,单击Assetes.xcassets

其次,单击“目标成员身份”,同时检查您的应用程序和小部件,以允许小部件访问您的资源。

二,点击目标会员

之后,再次运行您的Widget,现在应该可以正常工作了。


Shan这似乎是正确的答案,让我们将其放在页面顶部。
Stuart P.

对我来说,问题是我正在共享应用程序中某个班级与扩展程序之间的信息。当我为该文件选择两个目标时,问题就解决了。最好的问候
安德烈斯·帕拉丁斯

14

我有相同的Log输出。清洁(Cmd + Shift + K)为我解决了。


我是在添加应用程序组后完成的,所以我不知道此步骤是否有帮助。但是,感谢您的解决方案;)
Quver 2014年

是的,有时候这很奇怪!
莫里斯2014年

不幸的是,有时问题又回来了
Quver 2014年

1
Info.plist中有一个类似于捆绑包显示名称的条目
Maurice

9

我也遇到了这个问题,我解决的唯一解决方案是为故事板上的每个对象添加“垂直”和“水平”约束。


奇怪的是,他是对的。我遇到了同样的错误,在这里尝试了所有方法,但没有任何效果。我看到了这一点,只需选择“今日”视图,然后选择“添加缺少的约束”。然后错误消失了,Today扩展程序现在开始运行。
威廉·T。

继续,我刚刚清除了约束,现在又遇到了CoreMedia权限错误...因此,此错误肯定与约束有关。还确认了上面的AppGroup步骤是必需的,当我将其关闭时,我再次收到错误消息。
威廉·T。

1
我添加了所有可能的约束...仍然看到此错误
Oren 2015年

对我来说,约束也有关。我知道我不应该只说“我也是”,但由于这个答案很奇怪,而且显然没有意义,所以我忽略了它,尽管那是唯一对我有用的方法!
cdf1982 '16

可以确认-具体来说,该错误仅发生在模拟器中。在设备上工作正常。向所有对象添加约束也会使其在模拟器中正常工作。我不必添加或启用应用程序组。
kiddailey


4

极具误导性的错误。如上所述。选择您的视图控制器,然后添加缺少的约束或向您自己添加约束以解决此问题。

在此处输入图片说明


4

在完成了该问题的答案中提到的大多数事情之后,今天的小部件仍然出现错误-我发现了一些对我有用的东西。

打开小部件目标“ 构建设置”,然后搜索“始终嵌入Swift标准库”。选择是。

希望这对您有用,如果没有其他帮助


2

运行扩展程序时,我遇到了同样的问题。就我而言,是通过在实际设备中运行扩展程序解决的。


2

这让我很吃惊,因为我init(nibName:bundle:coder:)在视图控制器中有一个自定义的合并方法,并且已经实现了initWithCoder这样的方法以满足Swift:

required init?(coder aDecoder: NSCoder) {
    self.init(nibName: nil, bundle: nil, coder: aDecoder)
}

super.init(coder:)改用该实现调用来解决此问题:

required init?(coder aDecoder: NSCoder) {
    // [...setting some variables...]
    super.init(coder: aDecoder)
}

1

我发现,如果您使用的是StoryBoard,则需要进入info.plist并删除该属性NSExtensionPrincipalClass。之后,扩展程序开始加载就好了。


0

我的解决方法是:开启容器和扩展应用程序的应用程序组。并将所有隐藏的UIKit控件删除为UILabel, UIView, ...


0

我也遇到了这个问题。对我来说,问题是我在模拟器上一次运行了两个程序。在我停止其中之一后,错误消息消失了。希望能帮助到你。


0

这是我对这个错误消息的经验。我有一个故事板,其中有4个ViewController。我对所有这些脚本都进行了重构提取,所以现在我有5个情节提要,其中4个具有视图控制器,而原始的“主”提要中只有情节提要引用。

好吧...那很糟糕。不要那样做

当我将初始情节提要板保留在原始情节提要板文件中时,一切都正常,因此我不仅仅重构其中一个。


-3

确保参数[[NSUserDefaults alloc] initWithSuiteName:APP_GROUP]匹配您定义的组名。


-5

这是模拟器的问题,请尝试一些实际的设备。


2
如果可能,请尝试给出更多描述和完整答案,并附上示例和代码。
Prafulla Kumar Sahu 2015年

对我而言,此错误仅出现在模拟器中,而不是在我侧面加载设备时出现。
benc

令人感到奇怪的是,人们大刀阔斧地投票赞成诸如“清洁构建”之类的解决方案,并对此予以否决。
尼坎斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.