【发布时间】:2016-03-16 23:48:04
【问题描述】:
我正在尝试重新开发一个旧项目,它是我正在开发的 Firefox for Android 的扩展。我有两部手机,一部是私人的,一部是我的工作。在我的我有一个旧版本的 Firefox (40)。它的工作方式与以前完全相同。但是,在我工作手机的升级版(Firefox 46)中,我无法安装.xpi。我总是看到带有文本“Firefox 阻止在您的设备上安装插件”的“被阻止的插件”弹出窗口:
[1
我有偏好xpinstall.signatures.required = false。但是,它似乎不起作用。我还启用了 Android 调试。我正在这样做:
#4 - This will copy the XPI to the phone SD card.
adb push $OUTPUT_DIR/$APP_NAME.xpi /sdcard/$APP_NAME.xpi;
#5 - This will start the Firefox App with the XPI to install
adb shell am start -a android.intent.action.VIEW -c android.intent.category.DEFAULT -d file:///mnt/sdcard/$APP_NAME.xpi -n $ANDROID_APP_ID/.App;
在旧版本的 Firefox 中它可以工作;在新的,没有。原因如下:
我们的第一个旨在使附加签名更容易 开发商。此 API 使您能够上传 XPI 并取回 如果它通过了所有的验证检查,则签名的附加组件。
还有:
Firefox 48:(从 Firefox 46 推出)。发行版和 Beta 版 Firefox for Desktop 将不允许未签名的扩展 已安装,没有覆盖。 Firefox for Android 将强制执行附加组件 签名,并将保留一个首选项 - 将在 未来版本——允许用户禁用签名强制。
但是我需要能够在没有验证的情况下进行编程:每次我引入一些小改动(即使只是为了检查某些东西是否有效)都必须签署一个扩展是非常有压力的。
我已经尝试安装 nightly 版本,因为它是为开发人员准备的。我将xpinstall.signatures.required 更改为false。但是,行为是相同的消息。
那么,我们应该如何以这种方式发展?这太不切实际了!
【问题讨论】:
-
没有代码,这个问题可能跑题了:寻求调试帮助的问题(“为什么这段代码不能按我想要的方式工作?”)必须包括:A ) 期望的行为; B) 一个特定的问题或错误和 C) 重现它所需的最短代码所有在问题本身 .没有明确的问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable Example、What topics can I ask about here? 和 How to Ask。
-
你试过其他插件吗?您已从中删除签名的其他已知工作加载项?您是否查看过浏览器错误控制台以查看它的内容?如果有,它说明了什么?
-
在 Firefox for Android 42 之前的所有版本中,我的所有旧扩展都会发生这种情况
-
你有你的插件的 .xpi 或者一个简单的“hello world”示例(即minimal reproducible example),你可以给我们一个指针下载以进行测试(例如,包含文件和 .xpi 的 GitHub 存储库)。帮助解决问题的第一步是能够复制它。如果没有这样的下载,开始寻找解决方案的工作量就会大得多。
-
在桌面浏览器中有
about:debugging站点,它允许临时加载插件,但这似乎在 FF Beta/Nightly for Android 中不可用。
标签: android firefox firefox-addon firefox-addon-sdk