运行项目时不会出现iOS 8 Today小部件

时间:2014-09-28 10:08:30

标签: xcode ios8 xcode6 ios8-today-widget

我有一个包含2个目标的应用,并添加了今天的小部件。当我运行它时,它不出现在今天的通知编辑/在“不包括”部分,它通常在我的其他应用程序第一次出现。什么可能出错?我得到的权利缺少对扩展的警告,但我得到了那些也有效的(尝试添加一个,没有帮助)。

此外,如果我尝试将其作为调试菜单下的进程附加,它根本不会出现在那里/

我试过从模拟器中删除应用程序并重置等等,我尝试过另一个有多个目标的应用程序,因为我认为这可能是问题,但另一个有效。

其他人有类似的经历或可以提出任何建议吗?

编辑2014年10月6日:我还没有找到解决方案,但我的项目没有使用arm64。这可能是问题吗?我试过从其他项目中删除arm64,但我认为Xcode 6不允许它,所以我无法测试它,是否有人知道这是否可能?

4 个答案:

答案 0 :(得分:31)

就我而言,窗口小部件列表中未显示窗口小部件的原因是部署目标编号过高。对于小部件,我有9.0。但是,我将我的iPhone从9.0降级到8.4,忘了为小部件更改它。

将其更改为8.4后,小部件立即出现在iPhone上。

答案 1 :(得分:4)

当应用和扩展程序之间的bundleID不匹配时,我看到了这个问题。

示例(更正):

App bundleid:com.yourcompany.myapp

Ext bundleid:com.yourcompany.myapp.myextension

扩展程序需要拥有应用程序的整个bundleID,后跟自己的名称。

答案 2 :(得分:0)

确保

  1. “部署目标”与包含应用程序( @vomako的回答)相同;
  2. 捆绑ID遵循正确的格式:“com.yourcompany.myapp.myextension”,而您的应用内容是“com.yourcompany.myapp”( @RohitGupta的回答);
  3. 在调试时,您需要运行小部件/扩展方案(此处不包含应用程序的方案。但如果存档提交到App Store,请使用包含应用程序的方案);
  4. “构建设置”的“WRAPPER_EXTENSION”为“ appex ”。
  5. 在所有答案中都没有提到第4点(甚至官方文档),但在我的案例中也是如此。

    我在工作区中为现有项目创建了Today Widget,根本不起作用。但是,当我使用Today Widget创建纯新项目时,它运行良好。然后我逐个比较Build Setting并发现了这个区别:为我现有的项目创建的是“app”,而不是“appex”。

    将其更改为“appex”后,即可。

    另外,作为提示,要通过App Review,您必须

    • 在widget / extension的Architectures构建设置中包含arm64(iOS)或x86_64架构(MacOS);
    • 指定“iPhone / iPad”(有时称为通用)作为应用扩展程序的目标设备系列,无论您为包含的应用选择哪个目标设备系列;
    • 链接到嵌入式框架的包含应用程序必须包含arm64(iOS)或x86_64(OS X)体系结构构建设置;
    • 始终选择“框架”作为复制文件构建阶段目标(不要选择“SharedFramework”目的地)。

答案 3 :(得分:0)

在我的情况下,应用目标的构建阶段“嵌入应用扩展”缺少appex文件:

Missing appex file