【问题标题】:Proper way to distribute Bonjour enabled Windows application分发启用 Bonjour 的 Windows 应用程序的正确方法
【发布时间】:2015-05-11 11:31:04
【问题描述】:

对于将 Bonjour 作为 Windows 应用程序的一部分分发的正确方法,我很困惑,该应用程序将为客户端 iOS 应用程序发布服务。

无论我用谷歌搜索多少,我都找不到明确的操作指南。如果有人能提供指导,那就太好了。

我困惑的主要原因是:

  • 是否必须将整个 bonjour Win SDK 作为我的 Win 应用程序的一部分分发?
  • 由于 Apple 提供了构建 mDNSResponder.exe 的源代码,因此仅将此类文件与 dns-sd.dll 一起分发是否足够?
  • 否则为 mDNSResponder.exe 提供源的预期目的是什么?
  • 在处理系统上已安装 Bonjour 的可能性时,推荐的方法是什么?
  • 另外,我在哪里可以找到最新的 Bonjour SDK(我猜是 3.x?),我只能找到 2.0.4。只有在我注册了 OSX 开发人员计划后才能访问它吗? (我现在注册了 iOS 开发者计划。)

非常感谢。

【问题讨论】:

    标签: windows bonjour


    【解决方案1】:

    这是我从各种来源收集的信息,包括与 Apple 官方支持的沟通。我以我认为准确的方式报告它,我希望它有用(不承担任何责任!)。

    对于启用 Bonjour 的 Windows 应用程序,您基本上有两个主要选项:

    • 将 Bonjour 安装程序与您的应用程序捆绑在一起(它不是 Bonjour SDK,如果仅供您自己的开发人员使用,则该 SDK)。

      如果您选择这样做,则必须在安装过程中从您自己的安装程序中调用 Bonjour 安装程序。 Bonjour 已经安装在系统中的可能性完全由 Bonjour 安装程序处理。

      这里有一些坏消息:根据 Windows 捆绑协议中指定的 Apple 指南,您必须在您的物理分发介质(如 DVD 封套)上包含 de Bonjour 徽标,并且您需要在分销您的产品之前获得 Apple 批准。

    • 不要捆绑。即,不要将 Bonjour 与您的应用程序一起分发,如果系统中已经存在,只需使用它即可。如果您不以任何形式分发 Bonjour,则整个 Windows 捆绑协议根本不适用。您的应用程序应搜索 dnssd.dll 并在找到时动态加载它。

      考虑到大多数 Windows 用户已经安装了 Bonjour,因为一些流行的应用程序使用它(例如 iTunes 和 Skype)。

    【讨论】:

    • 如何链接 Apple 作为开源发布的代码,然后在运行时检查现有的 Bonjour/mdnsResponder。如果没有可用,请在您的应用程序中使用它。
    • 我不确定,但是当我研究这个时,即使您构建自己的 dnssd,我也没有找到任何方法。
    • 即使我的产品完全是软件,我是否需要向他们发布签署的许可协议并将徽标包含在我的软件中?
    【解决方案2】:

    虽然 Bonjour 的源代码是在开源库(Apache 许可证,版本 2.0)下发布的,但这并不需要 Apple 做任何事情。特别是,他们不需要记录您将如何使用此许可证。

    该许可允许您使用和改编 Apple 的源代码,包括其版权,但不包括其商标“Bonjour(TM)”。由于这是标准的 Apache 许可证,因此您也不需要显示商标。

    所以,回答你的问题:

    • 不,您可以从源代码构建您自己的 Bonjour 版本,并在 Apache 许可下使用它。你不能称它为 Bonjour,但为什么你首先需要一个名字? “mDNS”将是一个合理的选择,可能以 your 商标为前缀。
    • 分发 DLL 和 EXE 似乎就足够了。安排他们如何找到彼此可能会从一些剪裁中受益,因此您自己构建的 Bonjour 不会与 Apple 的冲突。
    • (我不会猜测苹果的动机)
    • 这里的设计问题是 Bonjour 充当系统服务,而服务本质上是单例的。如果您未经修改就安装它,Apple 将无法安装自己的版本。这可能不是法律问题,但这是一种糟糕的客户体验。将您自己的构建安装为不同的服务将避免冲突,允许两个版本共存。
    • (资源请求,题外话)

    【讨论】:

      猜你喜欢
      • 2017-08-21
      • 1970-01-01
      • 2016-05-18
      • 1970-01-01
      • 2010-11-15
      • 2022-10-25
      • 2011-10-08
      • 2011-09-17
      • 2015-01-31
      相关资源
      最近更新 更多