9

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

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

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

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

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

4

5 回答 5

32

就我而言,小部件未显示在小部件列表中的原因是部署目标数量过高。对于小部件,我有 9.0. 但是,我将我的 iPhone 从 9.0 降级到 8.4 并且忘记为小部件更改它。

改成 8.4 后,小部件立即出现在 iPhone 上。

于 2015-07-31T15:52:01.533 回答
5

确保您运行的是包含应用程序而不是模拟器中的扩展程序。

于 2017-02-24T04:39:51.390 回答
4

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

示例(正确):

应用程序包 ID:com.yourcompany.myapp

分机 bundleid:com.yourcompany.myapp.myextension

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

于 2014-11-09T06:12:06.297 回答
0

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

缺少附件文件

于 2020-06-30T19:48:00.967 回答
0

确保

  1. “部署目标”与包含应用程序的相同(@vomako 的答案);
  2. Bundle ID 遵循正确的格式:“com.yourcompany.myapp.myextension”,而您包含的应用程序是“com.yourcompany.myapp”(@RohitGupta 的答案);
  3. 调试时,需要运行小部件/扩展方案(此处不包含应用程序的方案。但如果归档提交到应用商店,请使用包含应用程序的方案);
  4. “构建设置”的“WRAPPER_EXTENSION”是“ appex ”。

所有答案(甚至官方文档)都没有提到第 4 点,但在我的情况下发生了。

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

将其更改为“appex”后,可以使用。


此外,作为提示,为了通过 App Review,您必须

  • 在小部件/扩展的架构构建设置中包含 arm64 (iOS) 或 x86_64 架构 (MacOS);
  • 将“iPhone/iPad”(有时称为通用)指定为应用扩展的目标设备系列,无论您为包含的应用选择哪个目标设备系列;
  • 链接到嵌入式框架的包含应用程序必须包含 arm64 (iOS) 或 x86_64 (OS X) 架构构建设置;
  • 始终选择“Frameworks”作为您的 Copy Files 构建阶段目标(不要选择“SharedFramework”目标)。
于 2017-08-28T13:34:15.433 回答