当前位置: 首页 > news >正文

网站模块顺序调整wordpress怎么添加统计代码

网站模块顺序调整,wordpress怎么添加统计代码,定制开发小程序商城,保险公司官网查询近期如果有开发者的 iOS 真机升级到 18.4 beta#xff0c;大概率会发现在 debug 运行时会有 Permission denied 的相关错误提示#xff0c;其实从 log 可以很直观看出来#xff0c;就是 Dart VM 在初始化时#xff0c;对内核文件「解释运行#xff08;JIT#xff09;」时…近期如果有开发者的 iOS 真机升级到 18.4 beta大概率会发现在 debug 运行时会有 Permission denied 的相关错误提示其实从 log 可以很直观看出来就是 Dart VM 在初始化时对内核文件「解释运行JIT」时出现权限不足的问题 ../../../flutter/third_party/dart/runtime/vm/virtual_memory_posix.cc: 428: error: mprotect failed: 13 (Permission denied) version3.6.0 (stable) (Thu Dec 5 07:46:24 2024 -0800) on ios_arm64 pid3252, thread259, isolate_groupvm-isolate(0x107205400), isolatevm-isolate(0x107369000) osios, archarm64, compno, simno isolate_instructions108e375a0, vm_instructions108e375a0 fp16bb19560, sp16bb19540, pc109889864pc 0x0000000109889864 fp 0x000000016bb19560 Dart_DumpNativeStackTrace0x18pc 0x000000010943aeb8 fp 0x000000016bb19580 dart::Assert::Fail(char const*, ...) const0x30pc 0x0000000109536100 fp 0x000000016bb19a30 dart::Code::FinalizeCode(dart::FlowGraphCompiler*, dart::compiler::Assembler*, dart::Code::PoolAttachment, bool, dart::CodeStatistics*)0x82cpc 0x00000001095f51c8 fp 0x000000016bb1a040 dart::StubCode::Init()0x31cpc 0x0000000109485c30 fp 0x000000016bb1ab00 dart::Dart::DartInit(Dart_InitializeParams const*)0x2a9cpc 0x0000000109870310 fp 0x000000016bb1ab20 Dart_Initialize0x3cpc 0x0000000108f1aaf4 fp 0x000000016bb1b0f0 flutter::DartVM::Create(flutter::Settings const, fml::RefPtrflutter::DartSnapshot const, fml::RefPtrflutter::DartSnapshot const, std::_fl::shared_ptrflutter::IsolateNameServer)0x1d60pc 0x00000001093f17dc fp 0x000000016bb1b850 flutter::Shell::Create(flutter::PlatformData const, flutter::TaskRunners const, flutter::Settings, std::_fl::functionstd::_fl::unique_ptrflutter::PlatformView, std::_fl::default_deleteflutter::PlatformView (flutter::Shell) const, std::_fl::functionstd::_fl::unique_ptrflutter::Rasterizer, std::_fl::default_deleteflutter::Rasterizer (flutter::Shell) const, bool)0x310pc 0x0000000108e3b060 fp 0x000000016bb1c5c0 -[FlutterEngine createShell:libraryURI:initialRoute:]0x934pc 0x0000000108e42c4c fp 0x000000016bb1c630 -[FlutterViewController sharedSetupWithProject:initialRoute:]0x1ccpc 0x0000000108e42a58 fp 0x000000016bb1c660 -[FlutterViewController awakeFromNib]0x58具体原理就是在于从目前 iOS 18.4 beta 上看iOS 加强了对应用运行时修改内存权限的限制也就是上面出现 mprotect failed: 13 (Permission denied) 的原因。 mprotect 全称是 “memory protect” 可以用于修改内存页的保护属性让 App 可以动态调整某块内存的访问权限例如将 RX 只读执行权限切换为 RW 可读写权限。 而为什么 Flutter 在 Debug 时需要 mprotect 其实这就要说到 Dart VM 虽然在 Debug 模式下 Dart VM 是通过 JIT 模式解释执行的但是从 Dart 2.0 之后就不再支持直接从源码运行对于 Dart 代码现在会统一编译成一种「预处理」形式的二进制 dill 文件我们一般称它会 Kernel AST 文件 也就是如今在 Dart 里就算你是 JIT 运行那么你也是跑着一个二进制的 Kernel dill 只是 Kernel AST 不包含解析和优化 简单说它仅仅是对源码进行了二进制加工转化 让 Dart 代码从高级语法转换为统一且平台无关的中间格式。 所以 Flutter 在 debug 运行时 JIT 运行的是一个未签名的二进制文件并且需要直接 hotload 也就是需要 Dart VM 在运行时根据 Kernel 二进制文件生成机械码并且在可以接受 hotload 的热更新所以它是通过 VM 来“解释”和“生成“所以它会需要 mprotect 的系统调用。 比如上面的 StubCode 相关部分在当前的 kernel JIT 模式下就极度依赖 VM 运行时的动态生成。 当然这个过程依赖于 get-task-allow get-task-allow 可以允许其他进程 如调试器 附加到当前 App 上让额外的进程获取到当前应用的任务端口从而让它们可以执行诸如在内存上写入和读取内容之类的行为最终达到 hotload 的目的。 那为什么在 release/profile 就不会有问题呢很简单代码已经被完全打包成机械码并且需要生成的代码都包括在 snapshot 内所以并不需要上述这些“魔法加持”。 那么回过头来从 iOS 18.4 开始 系统加强了对应用运行时修改内存权限的限制具体来说就是 系统不再允许未经代码签名的二进制文件通过 JIT 编译直接执行之前可以是因为这是一个“安全漏洞”因为之前的机制允许开发者在真机上绕过某些签名要求也就是 iOS 18.4 的新安全策略禁止了这种未经签名的动态代码生成支持。 那么到这里你应该大概了解了问题的原因目前 Flutter 官方表示在他们热修复此问题之前尽可能先请不要升级到 iOS 18.4 beta。 而目前官方修复的思路主要大概是 在 Flutter debug 构建时使用解释代码支持在解释代码下支持 dartffi解决 debug 解释字节码可能带来的性能下降问题 而目前暂时评估的方向有 增加 simarm64Simulator for ARM64配置支持让 Dart VM 可以解释生成的代码恢复 Dart 字节码运行混合模式执行其中 App 通过 AOT/JIT 签名编译并且仅解释修改后的代码 其实这里的第三点「混合模式执行」很有趣因为这是 Flutter 热更新框架 shorebird 在 iOS 上目前的热更新方案App 整体通过 AOT 运行只有热更新 patch 存在的时候针对该部分进行解释执行 也就是 shorebird 针对 Dart VM 自己“魔改”并“插入”了一个解释器所以可以看到 shorebird 的 Eric (Flutter 前创始人) 针对和这个也和 Dart/Flutter 团队进行了密切的沟通 事实上Eric 对于 Dart VM 这部分工作还是很“担心的”毕竟 shorebird 作为分支方这种修改合并无疑会给他们带来许多工作量而如果 Dart 团队的方案能尽可能贴近 shorebird 那就最好不过了 目前来说好消息在于只要你的真机不升级到 iOS 18.4 beta 那么就不会有影响而 Flutter/Dart 团队大概率会在 iOS 18.4 正式发布前修复这个问题毕竟方向都有了。 当然这也体现了“利用漏洞”完成需求的可靠性很低因为你不知道哪天平台就把后门关闭了。
http://www.hkea.cn/news/14282528/

相关文章:

  • 深圳建设网官方网站南通网站建设找哪家好
  • 建设电子商务网站要多少钱定州建设项目
  • 苏州专业建站asp网站自动识别手机
  • 辽宁旅游网站开发iis 发布网站 404
  • 盘锦威旺做网站建设公司潍坊 网站企划
  • 潍坊网站建设top阿里云手机网站建设多少钱
  • 设计图片网站福州医社保增减员在什么网站做
  • 长沙教育建设信息网站销售订单管理系统
  • 企业网站的综合要求是什么九江建筑
  • 医院品牌网站建设天津网页
  • 网站建设视频vs聊天软件开发文档
  • 维力安网站建设公司家居网站建设公司排名
  • 美辰网站建设郴州网站建设公司在哪里
  • 网站推荐正能量网页设计与制作是什么意思
  • 广西网站建设服务好关键词排名公司
  • 在线做春节网站网络营销平台有哪些?
  • 做网站的结论老鹰网营销型网站建设
  • 沙田做网站龙岩有什么兼职可以做
  • 安庆市重点工程建设局网站新开传奇网站发布站手游
  • 专业网站维护淘宝客cms网站模板下载
  • 中山网站建设文化如何中铁建设集团是国企还是央企
  • 建设网站的申请wordpress 百家号插件
  • 邢台做网站推广费用企业年金400退休拿多少
  • 有没有做a的电影网站网站制作怎么做让点击高
  • 2008r2网站建设网站的后端用什么软件做
  • 外贸营销型网站建设的技巧中山建网站报价
  • 深圳找网站建设织梦可以放两个网站
  • 建站系统有哪些网站如何管理
  • 佛山做外贸网站渠道wordpress 首页乱码
  • 厦门网站建设建设公司聚企网