【问题标题】:Mac App Store Bundle DownloadsMac App Store 捆绑包下载
【发布时间】:2014-01-19 05:20:28
【问题描述】:

在阅读了广泛的 App Store 指南(特别是 mac 应用商店)后,我注意到了一个矛盾......

一方面,在功能下,它明确指出:

2.7 Apps that download code in any way or form will be rejected
2.8 Apps that install or launch other executable code will be rejected

然而,当您进一步阅读购买类型时,它通常指的是应用购买中的“下载”,我很确定我记得在捆绑开发指南(特别是插件开发)中阅读过这些可以被视为在应用中购买?

在上面的 2.7 和 2.8 中,他们是否引用了他们没有检查的代码,即 myAppPurchase.bundle 在应用程序提交时没有提交,或者这是绝对没有被苹果检查或未检查的捆绑包的具体情况完全下载了吗?

简而言之,应该完整地创建一个应用程序,即使用所有“应用内购买附加功能”,还是可以模块化完成,即应用内购买从应用商店下载经过批准的捆绑包?

干杯,

一个

【问题讨论】:

  • 这个问题似乎是题外话,因为它是关于应用商店的批准,而不是计算机编程。
  • 谢谢,我已经更新了我的问题,以反映我在哪里感到困惑:D
  • Apple 必须接受所有应用内购买。如果您在应用被接受后提交 IAP,则在您提交 IAP 以供批准之前,您的 IAP 将不可用。这不是您问题的具体答案,只是一个旁注,这就是我写这篇评论的原因。

标签: macos appstore-approval


【解决方案1】:

虽然您可以下载 content 以进行应用内购买,但您不能下载 code 以供日后整合到应用程序中。有一些理论上的边缘情况,因为您可能有自己的解释器并且 可能 在这种情况下能够下载一些可解释的代码,您无法下载将作为一部分执行的本机代码应用程序(插件)或外部启动的应用程序。

至于为什么 Apple 会在文档中介绍这个问题,很可能是因为 OS X 和 iOS 应用程序在文件系统中的存储方式。在 Apple 决定允许可下载的二进制可执行文件之前,我们只能在 OS X 中使用插件包,对于非 OS 框架包也是如此,这可能会更有用。特别是,我们有一些 iOS/OSX 跨平台的包,我们必须在 iOS 下静态链接,这很遗憾。

Apple 的明显观点是,如果我们可以动态加载代码,那么就有机会通过在初始(或后续)程序加载后下载有问题的代码模块来规避他们的审查过程。例如,想象一个应用程序与服务器通信以下载违反 Apple 准则之一的代码。如果发出请求的版本尚未被恶意开发者“发布”,则不会返回任何代码,它看起来就像是在检查某种信息性消息。但是,一旦 Apple 批准了该应用程序,开发人员就会告诉服务器开始发回动态库、框架或插件,然后由现在的恶意代码在适当的时间执行。

困难在于,为了防止这种情况发生(通过 dyld 或类似方法),您需要将所有可以加载的内容列入白名单,或者您需要完全阻止应用程序代码使用它。

未来肯定有可能使用某种被批准的代码白名单,但在此之前,Apple 显然选择了仅仅阻止使用非系统框架的动态链接的路线。

【讨论】:

  • 感谢您的回答。可以“捆绑这个”(双关语)为什么苹果还要费心在捆绑等方面有一个完整的部分......当它们在应用商店中使用几乎毫无意义时?我问的原因是,沙盒应用程序可以'不与其他应用程序包串通,所以这是窗外,他们无法下载捆绑包等......所以窗外......插件的整个前景并没有变得无用......对不起,如果我听起来有点“wtf”,但我真的坐在这里?在我头顶想知道“有什么意义”......
  • 这可以通过允许应用动态加载具有有效包签名的包来解决。应用内购买可以提供由苹果托管的内容,因此购买可以包含捆绑包。如果您上传它,Apple 将需要检查并签署该捆绑包。容易......但他们就是不这样做
猜你喜欢
  • 2015-12-24
  • 2011-01-19
  • 1970-01-01
  • 2021-06-30
  • 2014-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-26
相关资源
最近更新 更多