Vig*_*esh 0 appstore-approval ios
我正在使用此处提供的解决方案从共享扩展中打开我的包含.它似乎没有使用任何私有API方式来做到这一点尽管它是脆弱的.
如果我使用它,Apple会拒绝我的应用吗?任何人都有一个批准的应用程序打开包含分享扩展的应用程序?如果是这样,做正确的方法是什么?
任何指针都很受欢迎.
虽然有很多关于如何从共享扩展打开包含/父应用程序的问题,但没有人真正讨论提议的解决方案/黑客是否会被苹果批准或不详细.
一个这样的例子是
建议共享扩展不应该打开容器应用程序.
在浏览一段时间之后,我宁愿在这里找到一个讨论同一主题的非常有趣的主题
https://forums.developer.apple.com/thread/27295
线程问题,是否openURL允许苹果允许遍历UIResponder链以打开使用的app应用程序?(在您发布的链接中也显示了相同的想法).
虽然该主题再次没有提供明确的答案,是否会被苹果批准,但指出了一个非常有效的关注和警告
+ [UIApplication sharedApplication],因此-openURL :,不可用于扩展的事实应该是一个重要的提示.通过Objective-C运行时查找该限制并查找符号不是一个好主意.
很明显,线程暗示(隐含地,通过没有明确说明苹果将拒绝使用此类黑客的应用程序这一事实)虽然苹果现在批准该应用程序,但它只是一个临时解决方案.
现在这最终导致了答案:
回答:
在最近举行的@班加罗尔举办的苹果活动中,我有机会见到了扩展团队@ apple的开发者.我告诉他们,我一直在使用上面提到的hack从分享扩展中打开应用程序这是苹果允许的吗?
他的回答是:
`UIResponder`
Run Code Online (Sandbox Code Playgroud)
不是私有实体,因此使用UIResponder不会违反私有API使用条件,因此使用上述黑客的应用仍然被苹果批准.但事实是,你的代码通过UIResponder链解析触发它openURL是非常昂贵的,而不是建议/首选.由于Apple似乎意识到使用它的开发人员,他们可能会在未来开始拒绝该应用程序.(必须说,他不确定最后一点,苹果拒绝应用程序,因此强调可能)
他也碰巧提到了WebView打开应用程序的用法,开发人员也使用了很长一段时间.哪个不再有效.
结论:
是的,您可以使用上面的黑客提交从扩展程序打开父应用程序的应用程序,但完全知道这只是一个临时解决方案,苹果希望您编写完全独立的共享扩展
对于iOS11的当前iOS版本,我们已回答了这个问题.在将来的iOS版本中,答案可能会失效