问题标签 [today-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
954 浏览

xcode - OS X Today Extension 的本地化在 Widget-Simulator 中失败

我创建了一个 OS X Today 扩展并想测试我的本地化。但是 Widget-Simulator 拒绝接受我的语言选择。

*.strings为来自源代码并通过以下方式翻译的文本创建了文件:

这是字符串文件的一些结构的屏幕截图:

在此处输入图像描述

整个项目包含 8 个本地化文件。但其中只有两个与小部件相关。一般Info.plist和一个文件命名TranslationsWidget.strings如上图。

所有语言都已通过项目信息选项卡中的语言列表添加,如下所示:

在此处输入图像描述

现在在模拟器中发生的是,模拟器本身被翻译了。模拟器的所有菜单项都将以我在方案中选择的任何语言显示。但小部件的内容不是。我不认为这是我的配置或代码的问题,因为该小部件实际上已被翻译:系统语言是德语,而开发语言是英语。所以这不仅仅是不翻译,而是翻译成错误的语言。

包含的主应用程序(Today Extension 必须打包在普通应用程序中)可以很好地转换为我在相应方案中选择的任何内容。

我不仅多次从菜单中运行Product -> Clean ,还删除了所有派生数据:

不仅因为如此,我确信它不是某种缓存的东西。同样,如果我更新德语翻译字符串,小部件会在下次运行时更新。

我通过更改系统语言测试了小部件的本地化效果。通过更改 Scheme 中的语言,它在 Widget-Simulator 中不起作用。

我现在必须覆盖德语翻译来测试其他语言,这非常烦人。这是一个常见问题吗?有人找到解决方法吗?

0 投票
1 回答
268 浏览

ios - 可以延迟 Today Extensions (iOS) 上功能的执行

我想延迟从 Today Extension 中加载的框架内方法的执行。

我试过这个:

接收任务和等待时间的函数

存在

但它会立即运行

也试过了。。

但是这个电话挂断了应用程序,使其在超过那个时间并且直到永远没有响应。

0 投票
1 回答
881 浏览

objective-c - NSExtensionContext openURL 在 Mac OS X Today 小部件上不起作用

无论我做什么,以下代码都会返回“成功:0”(即,它不会启动托管应用程序):

如果我直接在 Safari 中尝试 myapp://launch URL,它会工作并启动我的应用程序。然而,今日小部件拒绝启动它。它是沙盒的,我也检查了“传出连接”功能,但没有运气。我需要做些什么才能让它工作?

0 投票
1 回答
347 浏览

ios - 在 Today Extension 中更改时观察用户默认值

我正在开发一个可以播放几个流的广播播放器应用程序。这个应用程序有一个今天的扩展程序,它通过使用应用程序组“com.myname.myapp”来共享用户默认值的一些数据。现在,每当用户数据发生变化时,我都会收到通知。更改可以来自包含的应用程序和今天的扩展程序。我在容器应用程序中添加了一个观察者来观察NSUserDefaultDidChangeNotification.

每当我在应用程序本身中进行更改时都会调用该方法,但不会在扩展程序中进行相同的更改时调用。

当扩展程序更改用户默认值时,您是否知道出了什么问题以及需要做什么才能在包含的应用程序中获得通知?不幸的是,没有直接的方法可以告诉容器应用程序用户正在更改某些内容。谢谢!

0 投票
0 回答
338 浏览

xcode - 自定义按钮未显示在 Today Extension 中

我的主机应用程序中有一些自定义按钮,我想在 Today Extension 中使用它们。

它们在应用程序中工作得很好,但不会显示在小部件中。

左边的按钮是我的自定义按钮类,右边的是 UIButton。如果我将其更改为我的自定义类,它也会消失。

任何想法为什么会发生这种情况?

在此处输入图像描述

- - - - - - - - - - - 编辑 - - - - - - - - - - - -

好吧,我设法让它显示出来,但有时它没有绘制整个按钮,有时它错误地绘制了按钮。

任何帮助,将不胜感激!谢谢

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
2555 浏览

ios - iOS - 与多个应用目标共享今日扩展?

我有一个包含多个应用程序目标的项目(大约 25 个)。

我将为这些应用程序制作一个 Today Extension,但我不想创建大约 25 个具有相同代码和配置的扩展。

是否可以只创建一个我分配给 25 个应用程序的 Today Extension?

0 投票
3 回答
1768 浏览

xcode - Xcode - 由于解决 info.plist 和权利中的变量/占位符的奇怪问题而无法验证存档

我的项目或 Xcode 确实有些问题,两天以来我一直在努力弄清楚发生了什么。

我的应用程序运行得非常好,它是一个 OS X 应用程序,它包含一个 Today Widget 扩展。我最近完成了该项目,现在由于验证错误而无法发布该应用程序。

它始于验证器抱怨我的应用程序组,我用它在主应用程序和小部件扩展之间共享内容。该组被定义为$(TeamIdentifierPrefix)com.acme.GreatApp

验证器抱怨我的组名格式错误,应该以我的 TEAMID 开头。绕圈跑了 3 个小时后,我$(TeamIdentifierPrefix)用我的团队 ID(例如S3F45A5S35.)替换了占位符——这很奏效。

然后验证器抱怨 myinfo.plist和 entitlements 文件中的所有其他占位符,$(PRODUCT_NAME)例如com.acme.GreatApp.$(PRODUCT_NAME:rfc1034identifier)$(EXECUTABLE_NAME). 我用它们对应的值替换了所有这些占位符,然后被接受了。

然后,有一段时间验证者抱怨结构性问题,这对我来说没有太大意义:

iTunes Store 操作失败。错误的 CFBundleExecutable。在嵌套包 GreatAppWidget [com.acme.GreatApp.pkg/Payload/GreatApp.app/Contents] 属性列表文件中找不到与 CFBundleExecutable 的值匹配的可执行文件


iTunes Store 操作失败。错误的捆绑标识符。应用程序扩展 GreatApp.app/Contents/Plugins/GreatAppWidget.appex 的包标识符“com.acme.GreatApp.GreatAppWidget”应扩展其包含应用程序的包标识符的虚线路径 (com.acme.GreatApp.GreatAppWidget)

你是在告诉我我的扩展包含在我的扩展中吗?


iTunes Store 操作失败。捆绑包位置无效。Bundle GreatApp.app/Contents/Plugins/GreatAppWidget.appex 必须包含在父包的 Contents/Plugins 目录中。

好吧,错误表明我应该做它声称不正确的事情。显然它在父应用程序文件夹Contents/Plugins中。所以呢?


iTunes Store 操作失败。两个包的 CFBundleExecutable 可能不指向同一个文件。已找到以下共享包路径:GreatApp.app/Contents。


问题是,我的应用程序和扩展程序运行良好。如果有任何东西被破坏,比如依赖关系、路径或其他什么,那么很可能是行不通的,不是吗?

此外,我没有修改任何构建设置或任何我不理解的东西。这些都是默认设置。我创建了一个新的 Cocoa 应用程序,添加了一个新的 Today Widget Extension 作为目标——就是这样。我没有弄乱任何路径、位置、依赖关系等任何东西。

无论如何,这些错误只在一段时间内可见,我很幸运当时我做了一个截图。因为现在,它再次在错误消息中显示原始占位符,即使我没有更改可能导致这种情况的事情。我能记得我做的唯一一件事就是在磁盘、钥匙串和会员中心本地删除/撤销所有配置文件和证书,并通过 Xcode 从头开始​​创建所有内容。

现在错误如下所示:

iTunes Store 操作失败。错误的 CFBundleExecutable。在嵌套包${bundleName} [ ${bundlePath} ] 属性列表文件中找不到与 CFBundleExecutable 的值匹配的可执行文件


iTunes Store 操作失败。错误的捆绑标识符。应用程序扩展${bundlePath}的包标识符“ ${bundleIdentifier} ”应该扩展其包含应用程序的包标识符的虚线路径(${parentBundleIdentifier}


iTunes Store 操作失败。捆绑包位置无效。捆绑包${bundlePath}必须包含在父捆绑包的${pluginsSubPath}目录中。


iTunes Store 操作失败。两个包的 CFBundleExecutable 可能不指向同一个文件。已找到以下共享包路径:${sharedBundlePath}


所以我想也许苹果只是在最近的更新中把它搞砸了,你只是无法验证带有扩展名的应用程序。所以我在网上搜索并找到了非常好的示例Today-Scripts。我将应用程序组($(TeamIdentifierPrefix)com.acme.Today-Scripts,这里的占位符完美地工作)添加到所有目标,激活沙盒,更改证书和配置文件:它完美地验证了!

所以我比较了所有的构建设置等。除了我必须用它们的实际值替换占位符,显然是证书和配置文件,以及在 Today-Scripts 中有一个嵌入到小部件中的额外 XPC 目标的事实,他们在原子上是相同的。 一个 设置都是一样的。

我清除了所有缓存,真的很难。清理项目,清理~/Library/Developer/Xcode/DerivedData以及~/Library/Caches/com.apple.dt.Xcode重新启动几次,没有任何帮助。

我真的很绝望,因为我不知道我能做什么。请有人解释一下 Xcode 在这里做什么以及为什么。

  1. 是什么导致 Xcode 无法解释info.plist和授权文件中的所有占位符?
  2. bundle当我使用 这些错误时怎么会发生
    • 通过创建新的可可应用程序并添加扩展目标创建的确切设置 XCode?
    • 与 Today-Scripts 示例完全相同的设置/依赖项?
0 投票
0 回答
126 浏览

ios - 自定义按钮仍未在 Today Extension 中绘制

我在9 天前发布了这个问题。

我还没弄明白,所以我用代码和屏幕截图重新发布。

我有一个自定义按钮,可以在主机应用程序中正常工作,但不能在 Today Extension 中完全绘制。

以下是它在情节提要中的外观以及预览看起来如何失真:

在此处输入图像描述

这是它在 iPhone 5s 上的实际外观:

在此处输入图像描述

我认为这与 Today Extension 的加载方式有关 - 不知何故,按钮没有被完全绘制。然而,这并不能解释失真的预览(至少对我的新手来说)。

这是按钮代码:

0 投票
2 回答
1222 浏览

ios - send data displayed in today notification(Today extension) to appdelegate method

I am using today extension

I have displayed the list of events in tableview today notification.

while click on selected row event i want to send in appdelegate method

when click select row I am navigating in my app and call method openurl but i cann't get selected event in this method or selected row number.

so can we get data from today extension to our app

my current code in todayviewcotroller is

when click on event send row number to appdelegate method(openurl).

appriciate for help

0 投票
2 回答
3037 浏览

ios - 如何本地化今天的扩展小部件?

我们的应用程序支持多种地区和语言。当我开发今天的扩展小部件并阅读App Extension Programming Guide时,我仍然找不到本地化解决方案。即使我像普通 Xcode 项目一样创建了 Localize.strings 文件,也要定义 Localize.strings 文件,如:

利用 :

并调用它:

,它仍然不起作用。有人对这个问题有想法吗?