我正试图重新开发一个旧项目,这是Firefox for Android的扩展,我正在开发中。我有2部电话,一部是个人电话,也是我的工作之一。在我的手机中,我有一个旧版本的Firefox(40)。它的工作方式与以前完全相同。但是,在我工作电话的升级版本(Firefox 46)中,我无法安装 .xpi 。我总是看到" Blocked插件"弹出文本" Firefox阻止了在您的设备上安装插件":
[ 1
我有偏好xpinstall.signatures.required
= false
。但是,它似乎无法奏效。我也启用了Android Debug。我这样做:
#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将强制执行加载项 签署,并将保留一个偏好 - 将删除 future release - 允许用户禁用签名强制执行。
但是我需要能够在没有验证的情况下进行编程:每次引入一点变化时都必须签署一个扩展(即使只是为了检查是否有效)。
我已经尝试安装每晚版本,因为它适用于开发人员。我将xpinstall.signatures.required
更改为false
。但是,行为是相同的信息。
那么,我们应该如何以这种方式发展?这太不切实际了!
答案 0 :(得分:4)
我使用MDN的Walkthrough示例对此进行了测试。我正在运行Firefox 48.0,发布版本。此答案假定xpinstall.signatures.required
中的false
设置为about:config
。
file:///
网址,则 无法安装加载项
Firefox似乎已通过直接导航到file:///
链接(我尚未测试已签名的扩展程序)来禁用安装未签名的扩展程序。因此,使用adb shell am start -a android.intent.action.VIEW
方法使用意图导致Firefox导航到file:///mnt/sdcard/extentionFile.xpi
URL只会显示“已阻止的加载项”对话框,而无需允许,您可以使用在你的问题中包含了截图。如果手动输入URL,则此对话框相同。
您可以通过在Firefox中导航到包含 .xpi 文件的目录(例如file:///mnt/sdcard/),然后点击/触摸该文件来加载未签名的扩展名。
因此,对于adb
,您将希望它打开目录,而不是尝试让Firefox直接打开文件。根据您的问题,您将要使用的adb
命令是:
adb shell am start -a android.intent.action.VIEW -c android.intent.category.DEFAULT -d file:///mnt/sdcard/ -n $ANDROID_APP_ID/.App;
在手机上,您需要选择$APP_NAME.xpi
的文件。您将看到一个或多个屏幕,您可以通过这些屏幕单击以安装附加组件。
这些是我在测试时捕获的屏幕。要使用其他空目录,我使用/mnt/sdcard/testing/
代替/mnt/sdcard/
。
首先,我使用adb
导航到Firefox中的目录(这是为了方便起见,您可以通过手机的用户界面导航到该目录):
adb" shell am start -a android.intent.action.VIEW -c android.intent.category.DEFAULT -d file:///mnt/sdcard/testing/ -n org.mozilla.firefox/.App
这会导致Firefox打开目录(file:///mnt/sdcard/testing/
):
单击/选择 .xpi 文件。在这种情况下,那是 view-source.xpi 。
将显示“已阻止的加载项”对话框。该对话框将具有“允许”安装的选项。 [您可以通过在xpinstall.whitelist.required
中将false
设置为about:config
来跳过此对话框。但是,仍然不允许您通过使用意图直接导航到文件,或者将其键入Firefox UI中进行安装]: