Apple拒绝如果我打开包含分享扩展的应用程序?

时间:2017-11-20 17:41:51

标签: ios appstore-approval

我正在使用here提供的解决方案从共享扩展程序中打开我的包含内容。它似乎没有使用任何私有API方式来做到这一点尽管它是脆弱的。

如果我使用它,Apple会拒绝我的应用程序吗?任何人都有一个批准的应用程序打开包含分享扩展的应用程序?如果是这样,做正确的方法是什么?

赞赏任何指针。

1 个答案:

答案 0 :(得分:5)

虽然有很多关于如何从共享扩展中打开包含/父应用程序的问题,但没有人真正讨论提议的解决方案/黑客是否会被苹果批准或不详细。

一个这样的例子是

Share Extension to open containing app

建议共享扩展程序不应打开容器应用程序。

在浏览一段时间之后,我宁愿找到一个非常有趣的讨论相同主题的帖子

https://forums.developer.apple.com/thread/27295

线程问题,是否允许使用openURL遍历UIResponder链以打开父应用程序的黑客攻击? (在您发布的链接中也显示了相同的想法)。

虽然该主题再次没有提供明确答案,是否会被苹果批准,但指出了一个非常有效的关注和警告

  

+ [UIApplication sharedApplication],因此-openURL :,不可用于扩展的事实应该是一个重要的提示。通过Objective-C运行时查找该限制并查找符号不是一个好主意。

显然,线程暗示(隐含地,未明确说明苹果将拒绝使用此类黑客的应用程序这一事实)虽然苹果现在会批准该应用程序,但它只是一个临时解决方案。

现在这最终导致答案:

<强>答案:

在最近举行的@班加罗尔苹果活动中,我有机会见到了扩展团队@ apple的开发者。我告诉他们,我一直在使用上面提到的黑客从分享扩展中打开应用程序这将被苹果​​允许吗?

他的回答:

`UIResponder`

不是私有实体,因此UIResponder的使用不会违反私有API使用条件,因此使用上述黑客的应用仍然被苹果批准。但事实是,你的代码通过UIResponder链解析以触发openURL是非常昂贵的,而不是建议/首选。由于Apple似乎意识到使用它的开发人员,他们可能启动将来拒绝该应用程序。 (必须说,他不确定最后一点,苹果将来拒绝app,因此强调可能)

他也碰巧提到了使用WebView来打开应用程序,开发人员也使用了很长一段时间。哪个不再有效。

<强>结论:

是的,你可以使用上面的黑客提交从扩展程序打开父应用程序的应用程序,但完全知道这只是一个临时解决方案,苹果希望你写完全独立的共享扩展

对iOS11的当前iOS版本回答了问题。在将来的iOS版本

中,答案可能会失效