iOS 8 Today Extension无法在设备上使用
当我在模拟器上运行我的今天扩展一切工作正常,并按预期显示以下内容:
但是,当我在我的设备(iPod touch和iPhone 5s)上运行它时,身体不会显示(不介意标题和图标,这已被更改)
我将debugging器附加到我的扩展,我得到这个:
我不知道这是什么意思…
我删除了今天扩展的所有代码来检查是否有我的代码有问题,没有任何改变,所以我怀疑我的代码有问题。 任何build议如何解决这个将不胜感激。
(如果有任何意义的话,我确实启用了应用程序组)
确保扩展目标版本
请确保你的扩展目标版本是正确的。 Xcode'给你默认的最高版本,如8.3,如果你的iOS版本比它低,Xcode'd给你一个崩溃。
我发现我用错误的软件访问了我的应用程序组。 只要确保你使用“group.something.something”而不是“something.something”访问应用程序组
我find了解决scheme。 我只需要指定arm64作为小部件目标的有效架构。
在小工具目标上
构build设置>有效的体系结构
我只有armv7和armv7s。 我添加了arm64,它在我的5s设备中像魅力一样工作
使用附加应用信息时要记住几点
-
目标扩展的Bundle标识符应该是com.companyName.AppName.ExtensionName
-
您需要为目标扩展程序分别使用AppID,并将标识符指定为com.companyName.AppName.ExtensionName,并使用此AppID创buildconfiguration文件。
-
此外,创build的appGroupID应embedded到AppID中(用于应用程序以及扩展)。
既然你没有分享任何代码,我不能帮你一个具体的答案。 请尝试使用以下步骤Debug-> Attach to Process – >(从菜单中select您的小部件)并debugging您的viewdidload viewwillappear和– (void)widgetPerformUpdateWithCompletionHandler:(void(^)(NCUpdateResult))completionHandler方法来debugging您的小部件。 希望能帮助到你。
我的问题的来源:
- 在模拟器上每次都调用viewDidLoad,在设备上一次加载视图,只调用viewWillAppear。
- 该小部件不会收到核心数据更改通知
- 不要从widgetPerformUpdateWithCompletionHandler调用NCWidgetController.widgetController()。setHasContent。 使用它的最好的地方(主要)是你的包含应用程序,而不是小部件本身。
希望这可以帮助别人
在我的情况下,我设置了首选的内容大小,并开始在设备上工作
self.preferredContentSize = CGSizeMake(UIScreen.mainScreen().nativeBounds.width, 100.0)