【问题标题】:Distributing on both the Mac App Store and externally在 Mac App Store 和外部分发
【发布时间】:2013-10-12 23:44:00
【问题描述】:

我有一个 Mac 应用程序,我计划很快推出。

我希望它可以在 MAS 上购买,但我也想在我的网站上提供计时服务。

我将使用我的开发人员 ID 签署计时试用版,并使用我的分发证书签署 MAS 版本。

如果用户下载了时间试用版,然后决定从 MAS 购买:

  1. MAS 会允许他们购买还是会提示用户他们已经安装了应用程序(因为他们共享相同的捆绑标识符)?

  2. 我希望它们共享相同的包标识符的原因是计时试用版和 MAS 版本都可以共享它们的应用程序沙箱数据和钥匙串数据。这可能吗?

(我考虑过使用 IAP 并完全取消计时,但是 IAP 不允许我想使用的批量定价。)

【问题讨论】:

    标签: macos cocoa mac-app-store


    【解决方案1】:
    1. MAS 将提醒用户他们已经安装了该应用程序。您的用户需要先删除试用版。

    2. 没有。即使它们具有相同的包标识符,系统沙箱守护程序sandboxd 通常也会拒绝访问其中一个应用程序(通常是他们第二次下载的应用程序)。这是因为沙盒目录以加密方式链接到其主机应用程序。除了对应用程序进行签名之外,您的应用程序还会获得一个独特的签名,例如 SHA-1 哈希,每次都将完全不同。这意味着,当您第二次下载该应用程序时(即从网站下载,之前从 MAS 下载该应用程序时),如果沙箱链接到具有不同签名的应用程序,沙箱访问将被拒绝。

    现在,如果幸运的话,用户可能会先下载 MAS 版本,然后可能(出于某种原因)进入试用期。这可能有效,但不能保证它会而且我不会依赖它。有些人很幸运,比如那些因为沙盒比赛的挫折而决定放弃 MAS 的人。

    【讨论】:

    • 您是否建议对试用版和 MAS 版使用不同的捆绑包标识符?
    • 这可行,但您的设置将不会在两个应用程序之间共享。
    • 根据您的说法,无论如何设置都无法在它们之间共享。还是有其他方法?
    • 并非如此。这是最好的方式。
    • 感谢@SevenBits 的帮助。
    猜你喜欢
    • 2013-11-12
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 2012-07-18
    相关资源
    最近更新 更多