iOS 8 Today Extension不在设备上工作

时间:2014-09-14 20:03:43

标签: ios xcode ios8 ios-app-extension

当我在模拟器上运行Today Extension时,一切正常,它会按预期显示以下内容:

enter image description here

然而,当我在我的设备(iPod touch和iPhone 5s)上运行它时,身体不会显示(不要介意标题和图标,这已经改变了)

enter image description here

我将调试器附加到我的扩展程序,我得到了这个:

enter image description here

我不知道所有这些意味着什么......

我删除了今天扩展程序的所有代码,以检查我的代码是否有问题并且没有任何更改,因此我怀疑我的代码是否存在问题。任何关于如何解决这个问题的建议都将非常感激。

(如果有任何意义,我确实启用了应用群组)

8 个答案:

答案 0 :(得分:12)

确保扩展目标版本

请确保您的扩展程序目标版本正确无误。 Xcode默认为您提供最高版本,例如8.3,如果您的iOS版本低于它,Xcode会让您崩溃。

答案 1 :(得分:5)

我发现我正在使用错误的联名访问我的应用群组。只需确保您使用“group.something.something”访问应用程序组,而不仅仅是“something.something”

答案 2 :(得分:4)

我为我的案子找到了解决方案。我只需将arm64指定为小部件目标的有效架构。

在小工具目标

构建设置>有效的架构

我只有armv7和armv7s。我添加了arm64,它在我的5s设备中就像魅力一样

答案 3 :(得分:1)

使用应用扩展程序时要记住的几点

  • 目标扩展程序的捆绑标识符应为 com.companyName.AppName.ExtensionName

  • 您需要为目标扩展分配单独的AppID,并将标识符指定为<​​strong> com.companyName.AppName.ExtensionName ,并使用此AppID创建配置文件。

  • 此外,创建的appGroupID应嵌入AppID中(适用于应用程序和扩展程序)。

答案 4 :(得分:0)

由于您没有共享任何代码,我无法帮您解决具体问题。请尝试使用以下步骤调试您的小部件:Debug-&gt; Attach to Process-&gt;(从菜单中选择您的小部件)并调试 viewdidload viewwillappear - (void)widgetPerformUpdateWithCompletionHandler:(void(^)(NCUpdateResult))completionHandler 方法。希望它有所帮助。

答案 5 :(得分:0)

我的问题来源:

  • 在模拟器上每次调用viewDidLoad,在设备上加载一次视图,只调用viewWillAppear。
  • 小部件未收到核心数据更改通知
  • 不要从widgetPerformUpdateWithCompletionHandler调用NCWidgetController.widgetController()。setHasContent。使用它的最佳位置(主要是)是包含应用程序,而不是小部件本身。

希望这有助于某人

答案 6 :(得分:0)

在我的情况下,我设置了首选内容大小,并开始使用设备

self.preferredContentSize = CGSizeMake(UIScreen.mainScreen().nativeBounds.width, 100.0)

答案 7 :(得分:0)

在共享扩展程序中使用自定义ViewController时出现问题。事实证明,扩展迷你应用程序中的资源是有限的,所以当我的扩展生成缩略图时,由于使用了过多的后台线程,它使扩展崩溃了。一次将缩略图生成减少到一个即可解决。

令人困惑的是,只有在真实设备上才可以在Simulator中看到此限制。