0

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

我的问题是我想在我的应用程序中构建推荐代码作为鼓励分享的一种方式。理想情况下,流程将类似于:

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

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

这当然是丑陋的。*有没有其他方法可以巧妙地将引用代码添加到文件元数据中?或者我可以采取一些完全不同的方法来实现我的目标吗?没有解决方案太 hacky!


*对用户来说很丑,就是这样。我们已经不再担心丑陋的架构了。

4

2 回答 2

1

在调用推荐链接之前不压缩应用程序怎么样。使用代码生成一个外部文件并使用应用程序压缩该文件,然后重定向以下载新创建的存档。使用服务器端脚本相对容易。您可以在文件中嵌入代码并每次都一致地命名文件,以便在下载时,应用程序会查找文件,根据需要提取代码并删除无关文件。

于 2015-09-30T05:34:10.757 回答
0

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

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

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

于 2015-09-30T11:41:05.750 回答