我正在尝试重新开始一个旧项目,这是我正在开发的 Firefox for Android 的扩展。我有 2 部手机,一部是个人手机,一部是我的工作手机。在我的中,我有一个旧版本的 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 中它可以工作;在新的中,没有。原因如下:
Our first one aims to make add-on signing a little easier for developers. This API enables you to upload an XPI and get back the signed add-on if it passes all the validation checks.
和:
Firefox 48: (Pushed from Firefox 46). Release and Beta versions of Firefox for Desktop will not allow unsigned extensions to be installed, with no override. Firefox for Android will enforce add-on signing, and will retain a preference — which will be removed in a future release — to allow the user to disable signing enforcement.
但是我需要能够在没有验证的情况下进行编程:每次我引入一个小的变化时都必须签署扩展是非常有压力的(即使只是为了检查某些东西是否有效)。
我已经尝试安装夜间版本,因为它是为开发人员准备的。我将 xpinstall.signatures.required 更改为 false。但是,行为是相同的消息。
那么,我们应该如何以这种方式发展呢?这太不切实际了!
最佳答案
我用 Walkthrough 测试了这个来自 MDN 的示例。我运行的是 Firefox 48.0 发行版。此答案假定 xpinstall.signatures.required 在 about:config 中设置为 false。
如果直接导航到 file:/// URL:
,则不会安装附加组件
Firefox 似乎已通过直接导航到 file:/// 链接来禁用安装未签名的扩展(我尚未测试已签名的扩展。)。因此,使用 adb shell am start -a android.intent.action.VIEW 方法使用 intent 使 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。
将显示“已阻止的加载项”对话框。此对话框将具有“允许”安装的选项。 [您可以通过在 about:config 中将 xpinstall.whitelist.required 设置为 false 来跳过此对话框。但是,这仍然不会让您通过使用 Intent 直接导航到文件或将其输入到 Firefox UI 中来安装]:
关于android - 在 Firefox for Android 版本 42 或更新版本中安装未签名的 XPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36049137/
给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数
我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这
如果我使用ruby版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el
有人知道在发布新版本的Ruby和Rails时收到电子邮件的方法吗?他们有邮件列表,RubyonRails有一个推特,但我不想听到那些随之而来的喧嚣,我只想知道什么时候发布新版本,尤其是那些有安全修复的版本。 最佳答案 从therailsblog获取提要.http://weblog.rubyonrails.org/feed/atom.xml 关于ruby-on-rails-如何在发布新的Ruby或Rails版本时收到通知?,我们在StackOverflow上找到一个类似的问题:
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
我正在尝试为我的iOS应用程序设置cocoapods但是当我执行命令时:sudogemupdate--system我收到错误消息:当前已安装最新版本。中止。当我进入cocoapods的下一步时:sudogeminstallcocoapods我在MacOS10.8.5上遇到错误:ERROR:Errorinstallingcocoapods:cocoapods-trunkrequiresRubyversion>=2.0.0.我在MacOS10.9.4上尝试了同样的操作,但出现错误:ERROR:Couldnotfindavalidgem'cocoapods'(>=0),hereiswhy:U