在 OS X 应用程序中嵌入推荐代码的创意解决方案

Creative solution for embedding referral code in OS X app

我有一个 OS X 应用程序,我正在 App Store 之外分发。目前,用户访问我的网站并下载一个 .zip 文件,其中包含代码签名的应用程序。用户无需注册或创建帐户即可使用我的应用,这对我来说非常重要。

我的问题是我想在我的应用程序中构建推荐代码,以此来鼓励分享。理想情况下,流程应该是这样的:

  1. 用户 A 打开应用程序并转到菜单选项以根据 UUID(避免冲突)获得唯一推荐 link。
  2. 用户 B 转到唯一引荐 link 并下载 .zip,这是包含引荐代码的特制应用程序版本。为用户 B 解锁魔法推荐行为。

我并不真正担心用户欺骗系统,因为代码是开源的并且 the app 是免费的。但是由于该应用程序是代码签名的,所以我根本无法更改它(而且我绝对不想陷入试图让我的 Heroku 服务器注入推荐代码然后重新签署该应用程序的困境) ,但我并没有偷偷摸摸的事情,比如将推荐代码添加到应用程序的名称,在服务器上重新压缩它,然后让应用程序检查自己的名称以提取推荐代码。

那当然很难看。* 还有其他方法可以巧妙地将推荐代码添加到文件元数据中吗? 或者我可以采用一些完全不同的方法来实现我的目标吗?没有任何解决方案太老套了!


* 丑陋的用户,就是这样。我们已经不再担心丑陋的建筑了。

在调用引用 link 之前不压缩应用程序如何?使用代码生成一个外部文件并使用应用程序压缩该文件,然后重定向以下载新创建的存档。使用服务器端脚本编写相对容易。您可以将代码嵌入到文件中,并每次都以一致的方式命名文件,以便应用在下载时查找文件,根据需要提取代码并删除无关文件。

经过一些实验,似乎在文件中存在的所有元数据中,唯一在不同系统上可靠设置的字段(因为我的 Heroku 服务器没有 运行 OS X) touch 时间戳通过压缩过程可靠地保存下来。

我还没有完全完成代码,但目前的计划是让服务器在压缩之前修改 .app 的时间戳,然后程序检查自己的时间戳以找到它的引用代码。

如果这不起作用,我可能会使用上面@Jon 的解决方案。