【发布时间】:2010-06-28 23:09:29
【问题描述】:
我在 linux 上为 Firefox 创建了一个 NPAPI 浏览器插件。我通过将共享库复制到用户的配置文件插件目录中来安装插件。我能够在 OS X 上构建共享库,但我不熟悉如何创建 Firefox/Chrome/Safari 可以使用的插件包。如何创建一个可以在 OS X 上的浏览器上使用的插件包?
【问题讨论】:
标签: macos browser plugins bundle npapi
我在 linux 上为 Firefox 创建了一个 NPAPI 浏览器插件。我通过将共享库复制到用户的配置文件插件目录中来安装插件。我能够在 OS X 上构建共享库,但我不熟悉如何创建 Firefox/Chrome/Safari 可以使用的插件包。如何创建一个可以在 OS X 上的浏览器上使用的插件包?
【问题讨论】:
标签: macos browser plugins bundle npapi
您还可以查看 FireBreath,它负责为您在 linux、windows 和 mac 上构建插件的抽象。 http://firebreath.googlecode.com
要了解的主要内容是您需要创建特定类型的二进制文件;我不确定它是否真的是 dylib,但我发现最简单的方法是使用 xcode 创建它。
FireBreath 使用 cmake 在 xcode 中创建一个 Application Bundle 项目(这就是 cmake 所支持的全部),然后使用 python 脚本将其转换为正确的类型。 app bundle 的 reftype 是“compiled.mach-o.executable”,plugin bundle 的 reftype 是 wrapper.cfbundle。
您可以在此处找到我编写的用于转换的代码:http://code.google.com/p/firebreath/source/browse/cmake/patch_xcode.py
列出的 32 位 Internet 插件(与 Mac OS X 上所有主要浏览器兼容的 npapi 插件)的文件类型是“Mach-O bundle i386”。该文件位于 ~/Library/Internet Plugins/.plugin/Contents/MacOS
希望有帮助
【讨论】:
This 是来自 Apple 的权威参考;有 WebKit-only 插件和 NPAPI 插件。对于后者,请在Mozilla 获取示例代码。 This blog article 也很有帮助。
【讨论】: