在iOS8中的共享扩展的共享选项中,应用程序未显示在共享菜单中。

16
我正在为我的应用程序开发共享扩展。一切都很好,但我遇到了一个主要问题,当从照片应用程序分享时,我的应用程序不在共享菜单中。
以下是我的共享扩展的属性列表。 enter image description here 它没有显示在列表中,以下是截图:

enter image description here

但是当我进入更多选项时,将我的扩展程序的开关关闭并打开,现在它显示在列表中,但我需要每次这样做。以下是屏幕截图:

enter image description here enter image description here

每次我从X-Code中运行扩展程序时,它都不会显示共享菜单,我需要进入更多选项,将开关关闭然后再打开,才能显示出来。 它能够每次都显示在共享菜单中吗? 我的plist文件中是否有任何遗漏或需要额外的配置?
我需要您宝贵的建议。 提前致谢。
更新:
我已经在iOS9中进行了检查。它没有任何问题,可以正常工作。

我也遇到了同样的问题。有什么解决建议吗? - Ravi Ojha
1
自从iOS 14以来,我一直面临这个问题。在Safari中,应用程序只在第二次尝试时才显示在共享选项中。 - Milan Mendpara
6个回答

22

对于遇到相同问题但找不到解决方案的人,也值得尝试检查扩展程序的“部署目标(Deployment Target)”参数。

它可能与主应用程序不同,并在创建扩展程序时默认设置。

在我的情况下,它比我设备上的版本高。


这就是我的问题,解决了!谢谢。 - horseshoe7
这也是我的问题!非常感谢你! - astro4
这也是我的情况。Runner 部署目标为 9.0,共享扩展为 14.0。 - Amal Paul

13

这是 iOS 中的一个漏洞。在当前版本中没有任何解决方法。向苹果提交一个错误报告,希望他们尽快修复。


1
但是我们可以看到其他应用程序,如“Viber”、“WhatsApp”。一旦该应用程序在App Store中,它会显示在共享菜单中吗? - Ashok
1
这个 bug 似乎只影响使用 Xcode 安装的开发版本,而不是从应用商店安装的应用程序。 - Tom Harrington
是的,同意。谢谢。 - Ashok
2
这是iOS 8中的一个错误,并已被苹果公司确认。在iOS 9 beta 4的发布说明中,包括了以下内容:调试操作或共享扩展可能导致UIActivityViewController对象中缺少扩展。 - Rizwan Sattar
1
我明白这是一个 bug,但是有没有办法在不提交应用程序到应用商店的情况下测试(而不是调试)应用程序扩展? - Philippe Paré
显示剩余3条评论

8

我在iOS 14 Beta上遇到了这个问题,通过重新启动设备解决了问题。


1
谢谢你帮我省去了好几个小时的文档阅读时间,因为我以为错过了什么:D - Omar Masri
完美运行 - Duc Trung Mai
感谢苹果的帮助。这也适用于非测试版14.7设备-.- - Nico S.

3
逐步创建共享扩展的流程

enter image description here

enter image description here

enter image description here

然后只需运行应用程序。

enter image description here

检查Plist计数是否为1(1 = 允许附件1)以用于图片

enter image description here

属性列表

<key>NSExtension</key>
    <dict>
        <key>NSExtensionAttributes</key>
        <dict>
            <key>NSExtensionActivationRule</key>
            <dict>
                <key>NSExtensionActivationSupportsImageWithMaxCount</key>
                <integer>1</integer>
            </dict>
        </dict>
        <key>NSExtensionMainStoryboard</key>
        <string>MainInterface</string>
        <key>NSExtensionPointIdentifier</key>
        <string>com.apple.ui-services</string>
    </dict>

有用的链接

https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/ShareSheet.html

http://www.appcoda.com/ios8-share-extension-swift/

http://www.appcoda.com/tag/app-extension/

从扩展程序分享数据到主应用信息链接以及如何创建今日插件?

iOS 10上如何创建显示在主屏幕上的小部件


2

我遇到了同样的问题。我发现,在构建设置中(扩展目标),Wrapper Extension 字段为空,而应该分配为“appex”。将 Wrapper Extension 分配为“appex” 解决了我的问题。

Extension Build Settings


哎呀,你救了我的命。非常感谢你! - Michael Voline

0

我曾遇到过同样的问题,并通过更改扩展的部署目标版本来解决它。在我的情况下,被测试设备的iOS版本低于我为扩展设置的目标iOS版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接