在OS X应用程序中嵌入引用代码的创造性解决方案

时间:2015-09-19 03:57:48

标签: macos swift zip metadata referrals

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

我的问题是我想在我的应用中构建引荐代码,以鼓励分享。理想情况下,流程将类似于:

  1. 用户A打开应用程序并转到菜单选项以获取基于UUID的唯一引荐链接(以避免冲突)。
  2. 用户B转到唯一推介链接并下载.zip,这是包含推荐代码的应用程序的特制版本。用户B解锁魔术推荐行为。
  3. 我并不是真的担心用户欺骗系统,因为代码是开源的,the app是免费的。但是由于应用程序是代码签名的,我根本无法改变它(我绝对不想试图让我的Heroku服务器注入引用代码,然后重新签署应用程序) ,但我并不喜欢偷偷摸摸的事情,比如将推荐代码添加到应用程序的名称,在服务器上重新压缩它,然后让应用程序检查自己的名称以提取引用代码。

    那当然是丑陋的。 * 还有其他方法可以巧妙地将推荐代码添加到文件元数据中吗? 是否有一些完全不同的方法可以用来实现我的目标?没有解决方案太苛刻!

    * 对用户来说很难看,就是这样。我们已经过了担心丑陋建筑的问题。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

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