我试图创建一个应用程序扩展,我可以在快捷方式中使用“与应用程序共享”操作。我创建了扩展,它显示在常规共享表中,用于共享任何东西。然而,当我进入快捷方式应用程序创建一个使用“与应用程序共享”操作的自动化并尝试选择我的应用程序时,我只看到健康,LinkedIn,松弛,提醒,和其他一些应用程序。这个共享功能与常规共享功能有什么不同?
有没有人知道如何使他们的应用程序显示在列表中的应用程序,你可以选择当你在快捷方式使用“与应用程序共享”的行动?
更具体地说。这里是example.
One图像附加显示了截图和打开pinterest的快捷方式,仍然在原始应用程序中(在这个例子中,它是Notes应用程序)。
另一个截图显示了我的快捷方式setup.
这里的目标是让我选择我的应用程序,而不是pinterest.我没有看到我的应用程序列在应用程序列表中选择.我已经尝试了应用程序意图,意图,共享扩展,但显然做错了.谢谢!
更新
好吧,所以我有我的扩展工作,但只有在模拟器.当我去尝试我的设备,我没有看到它.附件显示模拟器.
此外,当我试图运行快捷方式,我得到这个错误
有人知道为什么会这样吗?我更新的规则是SUBQUERY ( extensionItems, $extensionItem, SUBQUERY ( $extensionItem.attachments, $attachment, ( ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.image" ) ).@count == $extensionItem.attachments.@count ).@count == 1
2条答案
按热度按时间nbnkbykc1#
您是否在
info.plist
中包含了相应的UTI类型?例如,如果您的扩展支持:
public.text
public.image
info.plist
字符串
laawzig22#
共享扩展确实是实现这一点的方法。根据您的屏幕截图,似乎您已经实现了扩展。
我在iOS模拟器中重新创建了与您相同的快捷方式,并且实际上使用您在问题中使用的相同
NSActivationRule
成功获得了共享扩展。也就是说,有一种更简单的方法可以使用以下配置来完成相同的操作:在共享扩展目标的
Info.plist
中,应该有如下内容:字符串
NSExtensionPointIdentifier
定义了扩展的类型,这里是共享扩展,NSExtensionMainStoryboard
指向包含共享扩展UI的故事板,NSExtensionActivationRule
定义了共享表单何时应该根据正在共享的数据的UTI类型显示您的扩展名。在这里,激活规则被设置为
NSExtensionActivationSupportsImageWithMaxCount
,计数为1。这意味着扩展只在共享单个图像时显示,这就是快捷方式的作用。请注意,这只是一个速记,与您的问题中的激活规则相同。模拟器测试
另一件需要考虑的事情是,Xcode有时会在模拟器或设备上部署最新版本的扩展时遇到问题。我发现最可靠的测试方法是运行扩展目标,然后选择Xcode应用程序作为主机应用程序。
的数据
设备测试
最后,在设备上,看起来“与应用程序共享”步骤只列出了使用分发证书签名的应用程序。一旦它在模拟器中工作,使用TestFlight构建可能是在设备上测试它的方法。