I have a Mac app that I am planning on launching soon.

I want it to be available for purchase on the MAS however I also want to offer a time trial on my website.

I will sign the time trial version with my developer ID and the MAS version with my distribution cert.

If a user downloads the time trial and then decides to purchase from the MAS:

  1. Will the MAS let them purchase or will it prompt the user that they already have the app installed (due to them sharing the same bundle identifier)?

  2. The reason I want them to share the same bundle identifier is so both the time trial and MAS versions can share their application sandbox data and Keychain data. Is this possible?

(I have considered using IAP and doing away with time trials altogether however IAP does not allow for volume pricing which I would like to utilise.)

有帮助吗?

解决方案

  1. The MAS will alert the user that they already have the app installed. Your users will need to delete the trial version first.

  2. No. Even though they have the same bundle identifiers, the system sandbox daemon, sandboxd, will typically reject access to one of the apps (typically the one that they download second). This is because the sandbox directory is cryptographically linked to its host app. In addition to signing the app, your app gets a unique signature, like a SHA-1 hash, that will be radically different each time. This means that when you download the app for a second time (I.e from the website, when it was previously downloaded from the MAS), if the sandbox is linked to an app with a different signature, sandbox access will be denied.

Now, if you're lucky, the user might download the MAS version first and might then (for some reason) move onto the trial. This might work, but there's no guarantee that it will and I wouldn't rely on it. Some have had luck with it, like those that have decided to ditch the MAS over sand boxing frustration.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top