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

Flutter 上架如何解决 ITMS-91053 问题

最近,我的 Flutter App 发布到 TestFlight 后,就会收到一封邮件:The uploaded build for YOUR APP has one or more issues.

苹果的提示邮件
上面的邮件主要是说,我的 App 缺少了调用 API 的声明,以前从来没看到过,上网一查,才知道了原委。

一、苹果的提交隐私政策更新

2023 年 WWDC 之后,苹果发布了新的《App Store 提交隐私更新》的政策。该政策分为两部分:第三方 SDK 隐私清单和签名。

意思就是,App 中引入的三方 SDK 可能以开发者和用户不知道的方式,影响了用户隐私。每个开发者都有责任搞清楚引入的第三方 SDK到底收集了何等数据以及如何使用它们。苹果的方式就是增加了一种机制,隐私清单,以及 SDK 签名,帮助开发者更好地理解三方 SDK 如何收集和使用数据,为用户提供隐私保护。从 2024 年春季起,提交到 App Store 的 App 需要为 SDK 包含隐私清单(如果引用了广泛引用的三方 SDK)。如果二进制依赖一个 SDK,则还需要提供 SDK 的签名。

简单说,就是现在提供一个“名单”,榜上有名的三方 SDK 都需要特殊对待,不过看这意思,未来显然是要扩散到所有三方 SDK 的,榜上有名的只是治理的第一步。
在这里插入图片描述
另外,就是有一系列 API 的调用,需要声明理由。不论是 App 自己调用的,还是引用的三方 SDK 调用的,都需要提供理由。如果你没有提供理由,则会收到提示,这就有了文章开头的那封信。也就是 ITMS-91053。而调用这些 API 的理由,则不是任意理由,而是经过苹果审核后,认为直接对用户有益处的理由,才在允许的范围内。

从今年 2024 年春天起,必须要在提交的 App 中包含隐私清单,而且这里应该包含对 API 调用的说明。

苹果的官方说明
上面是 2 月底的一次通知,说明了从 3 月 13 日起,App Store Connect 会发送邮件提醒,你的 App 缺乏了调用 API 的理由。而从 5 月 1 日起,苹果列出的 API 的调用,必须包含理由。如果你找不到理由,就不允许使用 API 了。如果添加了名单上的 SDK,还需要包含这些 SDK 的签名。

相关的 API 有五类:

  1. File timestamp APIs
  2. System boot time APIs
  3. Disk space APIs
  4. Active keyboard APIs
  5. User defaults APIs

更详尽的说明可以看大佬的文章,搜索《Flutter 上了 Apple 第三方重大列表,2024 春季 iOS 的隐私清单究竟是什么?》

二、收到 ITMS-91053 后,怎么操作?

我觉得详细的指引还是可以看大佬的文章,只是太高端了,我有点看不懂。摸索了很久,才大概明白了怎么做。

比如,我明白,我需要提供一个 Privacy 的声明,但是到底怎么做?比如是否要所有的三方 SDK 各自声明就行了?而我作为开发者什么都不用做?事实证明这是错的。

又比如,是不是我运行一下 flutter pub get 或者什么脚本,就会自动替我声明一个 Privacy 文件?事实证明这也是错的。

还比如,我是否要检查所有的三方 SDK,看看他们有没有按照要求在自己的 SDK 里提供隐私声明?不过这个真的很有难度,对于不熟的人来说,找都找不到的,比如我就找不到。好在,到了现在 4 月了,马上到 deadline 了,大部分还在维护的 SDK 都添加了 Privacy manifest 了。还好还好,除非太冷门或者作者早已弃坑的 SDK,我没用到。

然后,还有一个重要问题就是 API 的 reasons,这个我看了很多文章都没说清楚。更可恨的是,绝少有 SDK 主动声明自己调用了什么 API,比如我的将近 30 个三方 SDK,只有一个声明自己调用了两种 API(一共五种)。

那么我作为开发者,我到底要干啥?我怎么知道哪个 SDK 用了什么 API,以及他们的原因呢?搜了很多的文章,都没有什么明确的说法,可能对于开发老手来说,都是不言自明的?

折腾了两整天,我大概明白了一件事情。开发者,应该在自己的 App 里提供一个 PrivacyInfo 声明文件,里面应该包含对指定 5 种 API 调用的声明。至于应该声明哪几种。这个就用投石问路的方法即可,你提交到 TestFlight,它会发邮件提醒你,有哪几种 API 你没声明理由。你就在自己的 PrivacyInfo 文件种,解释这几种即可。

比如,开头我贴的邮件,里面涉及了 4 种 API 调用的原因缺乏。你只要声明这四种 API 的调用原因即可。至于到底是哪个 SDK 用的?真实基于什么原因用的,我觉得不太需要关心。因为我自己关心过,我发现,完全是毫无意义的。很难探究,无论是查看 sdk 的源码还是用扫描工具,很难得到什么有益的提示,至于具体的调用原因,就更难搞清楚了。你要做的就是,它说什么有问题,你就声明什么,至于理由,只有少数几种允许的理由,你只要选一个你觉得合理的就行了。具体是什么好像也并不重要。再说太阳底下无新鲜事,难道还有什么神奇理由么?无非就那么几种。

在这里插入图片描述
选中你的 Runner 项目,点 File 菜单,New,然后点 File...
在这里插入图片描述
这样就会在你的项目里创建了一个文件,叫 PrivacyInfo.xcprivacy,和你的 info.plist 在一个目录下。这里我有一个点要提示,因为困扰了我很久,就是一定要把文件选入进 target,在右侧面板,能看到:

在这里插入图片描述
在 XCode 15 右侧的面板上能看到(选中 PrivacyInfo 文件)。这个选项的意思是,将这个文件编译进包里的意思。如果你不勾,相当于没有提供这个文件,我已经试过了。

然后,你用 XCode 15 的编辑工具,用鼠标点选,就可以创建这个文件了。按照我现在的理解,你只要处理好这部分就行了:

在这里插入图片描述
因为我提交到 TestFlight 只提示了四种 API,我就声明了这四种。上面三个声明,据实填写即可。似乎也不用填写 SDK 相关的,只填写你自己编写的部分即可。因为我试过,在 Organizer 里,它会自动的从三方 SDK 里提取到隐私相关的,但是 API 的却不会,必须要你自己声明。

比如,那个 Privacy Nutrition Label Types,其实我自己的 App 是没用的,一个 Google 的包里,用到了。但是我不声明,在 Organizer 里,你选择导出报告的时候,是自动包含了 Google 的声明的。

在这里插入图片描述
创建好 PrivacyInfo 文件,重新打包,提交到 App Store 后,如果没有收到提示邮件那就是成功了。如果明明创建了文件,还是收到提示邮件,就是主要我前文提到的 Target Membership 是否勾选。

总结

本文介绍了,如果收到了 ITMS-91053 提示后,如何添加隐私声明文件,以及怎么创建隐私声明文件。希望对大家有帮助。

引用:
https://forums.developer.apple.com/forums/thread/731541 关于那个 Target Membership
https://github.com/bytebai920/check_privacy 号称可以扫描 API 的使用,但是我觉得没啥意义

相关文章:

Flutter 上架如何解决 ITMS-91053 问题

最近,我的 Flutter App 发布到 TestFlight 后,就会收到一封邮件:The uploaded build for YOUR APP has one or more issues. 上面的邮件主要是说,我的 App 缺少了调用 API 的声明,以前从来没看到过,上网一查…...

PgSQL的登录相关(Ubuntu22.04)

一 将用户设为密码登录方式 1 修改用户的密码 sudo -u postgres psql -c "ALTER USER yuhui WITH PASSWORD xinmima;" 2 修改配置,指定用户yuhui使用密码登录 sudo vi /etc/postgresql/16/main/pg_hba.conf local all postgres …...

ThingsBoard处理设备上报的属性并转换为可读属性

一、前言 二、案例 1、AI生成JSON数据体 2、将json数据体直接通过遥测topic发送查看效果 3、可查看目前整个数据都在一起 ​编辑 4、配置附规则链路 5、对msg的消息值,进行数据的转换,并从新进行赋值。 6、规则链路关联关系 7、再次通过MQTT发送遥…...

03-JAVA设计模式

设计模式GOF23 GOF23是指由设计模式经典名著《Design Patterns: Elements of Reusable Object-Oriented Software》(中译本名为《设计模式——可复用面向对象软件的基础》)的四位作者Erich Gamma、Richard Helm、Ralph Johnson、以及John Vlissides提出…...

Aws Nat Gateway

要点 NAT网关要能访问外网,所以需要部署在有互联网网关的Public子网中。 关键: NAT网关创建是选择子网,一定要选择公有子网(有互联网网关子网) 特别注意: 新建nat网关的时候,选择的子网一定…...

SLICEM是如何将查找表配置为分布式RAM/移位寄存器的

1.首先说SliceM和SliceL如何配置为ROM的 一个SLICE包含4个六输入查找表,因此每个查找表就能存储64bit的数据,要实现128bit的ROM,只需要通过两个LUT就可实现,具体如下表: 2.如何配置成为分布式RAM SLICEM中的LUT如下图&#xff…...

Echarts-知识图谱

Echarts-知识图谱 demo地址 打开CodePen 效果 思路 1. 生成根节点 2. 根据子节点距离与根节点的角度关系,生成子节点坐标,进而生成子节点 3. 从子节点上按角度生成对应的子节点 4. 递归将根节点与每一层级子节点连线核心代码 定义节点配置 functio…...

Scala 05 —— 函数式编程底层逻辑

Scala 05 —— 函数式编程底层逻辑 该文章来自2023/1/14的清华大学交叉信息学院助理教授——袁洋演讲。 文章目录 Scala 05 —— 函数式编程底层逻辑函数式编程假如...副作用是必须的?函数的定义函数是数据的函数,不是数字的函数如何把业务逻辑做成纯函…...

在 Node.js 中配置代理 IP 采集文章

不说废话,直接上代码: const http require(http); const https require(https);// 之后可以使用 http 或 https 模块发起请求,它们将自动使用配置的代理 // 代理ip:https://www.kuaidaili.com/?refrg3jlsko0ymg const proxy …...

ESLlint重大更新后,使用旧版ESLint搭配Prettier的配置方式

概要 就在前几天,ESLint迎来了一次重大更新,9.0.0版本,根据官方文档介绍,使用新版的先决条件是Node.js版本必须是18.18.0、20.9.0,或者是>21.1.0的版本,新版ESLint将不再直接支持以下旧版配置(非扁平化…...

springcloud Ribbon的详解

1、Ribbon是什么 Ribbon是Netflix发布的开源项目,Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的框架。 2、Ribbon能干什么 LB负载均衡(Load Balance)是什么?简单的说就是将用户的请求平摊的分配到多个服务上,从而达…...

超级好用的C++实用库之Des加解密

概述 DES(Data Encryption Standard,数据加密标准)是一种历史悠久的对称密钥加密算法,由IBM公司在1970年代设计,并于1977年被美国国家标准局选作联邦资料处理标准。DES使用56位密钥对64位的数据块进行操作,…...

关于MCU核心板的一些常见问题

BGA植球与焊接(多涂焊油): 【BGA芯片是真麻烦,主要是植锡珠太麻烦了,拆一次就得重新植】https://www.bilibili.com/video/BV1vW4y1w7oNvd_source3cc3c07b09206097d0d8b0aefdf07958 / NC电容一般有两种含义&#xff1…...

【C++杂货铺】多态

目录 🌈前言🌈 📁多态的概念 📁 多态的定义及实现 📂 多态的构成条件 📂 虚函数 📂 虚函数重写 📂 C11 override 和 final 📂 重载,覆盖(重写…...

(学习日记)2024.04.20:UCOSIII第四十八节:各文件功能概览

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…...

数据结构-二叉树-堆(二)

一、建堆的时间复杂度问题 1、除了向上调整建堆,我们还可以向下调整建堆。不能在根上直接开始向下调整。这里的条件就是左右子树必须都是大堆或者小堆。我们可以倒着往前走,可以从最后一个叶子开始调整。但是从叶子开始调整没有意义。所以我们可以从倒数…...

身份证二要素核验介绍及使用方法

一、身份证二要素核验简介及重要性 身份证二要素核验是一种重要的身份验证技术,它在现代社会中发挥着至关重要的作用,特别是在涉及个人信息安全和隐私保护的领域。通过身份证二要素核验,我们可以有效地确认个人身份的真实性,从而…...

探索 去中心化的Web3.0

随着区块链技术的日益成熟和普及,Web3(Web 3.0)已经成为一个无法忽视的趋势。Web3不仅仅是一个技术概念,更是一个去中心化、透明、用户数据拥有权归还给用户的互联网新时代。在这篇文章中,我们将深入探讨Web3技术的核心…...

递归的层序遍历

最近遇到一个业务需求:一颗依赖树,其实就是一颗递归树,如何一层一层的数据放在一起,可以近似理解为二叉树的层序遍历。 业务理解为递归树的层序遍历 代码示例: public class RecursionErgodic {public static void…...

pytest使用 pytest-rerunfailures 插件实现失败用例重跑功能

使用 pytest 进行测试时,你可以通过安装并配置 pytest-rerunfailures 插件来实现失败用例重跑功能。以下是一个示例说明: 假设你有一个测试文件 test_example.py 包含如下测试用例: import pytestpytest.mark.parametrize("num",…...

2024/4/23 C++day1

有以下定义,说明哪些量可以改变哪些不可以改变? const char *p; 指针可以改变 值不可以改变 const (char *) p; 语法错误 char *const p; 指针不可以改变 值可以改变 const char* const p; 指针和值…...

OpenHarmony鸿蒙南向开发案例:【智能窗户通风设备】

样例简介 本文档介绍了安全厨房案例中的相关智能窗户通风设备,本安全厨房案例利用轻量级软总线能力,将两块欧智通V200Z-R/BES2600开发板模拟的智能窗户通风设备和燃气告警设备组合成。当燃气数值告警时,无需其它操作,直接通知软总…...

解析‘找不到vcruntime140.dll,无法继续执行代码’的异常修复方法

找不到vcruntime140.dll,无法继续执行代码?这是小事情,这个情况主要是vcruntime140.dll文件丢失了,导致一些程序没办法正常的运行,我们只要修复好这个vcruntime140.dll,文件就可以了。下面一起来了解一下。 一.找不到vcruntime140…...

Golang对接Ldap(保姆级教程:概念搭建实战)

Golang对接Ldap(保姆级教程:概念&搭建&实战) 最近项目需要对接客户的LDAP服务,于是趁机好好了解了一下。LDAP实际是一个协议,对应的实现,大家可以理解为一个轻量级数据库。用户查询。比如&#xff…...

Java23种设计模式-创建型模式之工厂方法模式

工厂方法模式(Factory Method Pattern) 一种创建型设计模式,它定义了一个用于创建对象的接口,让子类决定将哪一个类实例化,从而将产品的实例化推迟到子类中。这种模式的主要角色包括: 角色1:抽…...

Oracle故障处理:ORA-00600错误处理思路

提前说明: 该故障,我只是旁观者。 但处理该故障的DBA工程师,思路很清晰,我非常受教!在此也将经验分享。 目录 项目场景 问题分析 优化建议 项目场景 在某项目数据库运维群,有现场同事发了张报错截图如下…...

微信小程序使用 Vant Weapp 中 Collapse 折叠面板 的问题!

需求:结合Tab 标签页 和 Collapse 折叠面板 组合成显示课本和章节内容,并且用户体验要好点! 如下图展示: 问题:如何使用Collapse 折叠面板 将内容循环展示出来? js中的数据是这样的 代码实现&#xff1…...

论文写作神器:用ChatGPT写论文的5大高效技巧

在人工智能日渐成熟的今天,ChatGPT已经成为学术界、业界乃至日常生活中不可或缺的工具之一。尤其是对于学生和研究人员而言,ChatGPT能大幅度提高论文写作的效率和质量。然而,许多人尚未掌握如何高效利用这一工具,很多人用chatgpt写…...

微信小程序展示倒计时

html <view class"countdown"> <text>倒计时&#xff1a;</text> <text wx:for"{{countdown}}" wx:key"index">{{item}}</text> </view> ts data: {countdown: [], // 存放倒计时数组 targetTime:…...

什么是用户体验(UX)文案,为什么它很重要?

网上购物如今比以往任何时候都更加相关。所以我们将以此为例说明什么是用户体验&#xff08;UX&#xff09;文案&#xff0c;以及为什么它很重要。 假设你去了一个在线商店。你需要执行一系列操作&#xff1a; 找到合适的部分选择你感兴趣的产品弄清楚它们是什么&#xff0c;…...

算法06链表

算法06链表 一、链表概述1.1概述1.2链表的组成部分&#xff1a;1.3链表的优缺点&#xff1a; 二、链表典例力扣707.设计链表难点分析&#xff1a;&#xff08;1&#xff09;MyLinkedList成员变量的确定&#xff1a;&#xff08;2&#xff09;初始化自定义链表&#xff1a;&…...

第十七章 数据管理和组织变革管理

17.2 变革法则 1&#xff09;组织不变革&#xff0c;人就变。 2&#xff09;人们不会抗拒变革&#xff0c;但抵制被改变。 3&#xff09;事情之所以存在是惯性所致。 4&#xff09;除非有人推动变革&#xff0c;否则很可能止步不前。 5&#xff09;如果不考虑人的因素&#xf…...

基于harris角点和RANSAC算法的图像拼接matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 ....................................................................... I1_harris fu…...

C++感受6-Hello World 交互版

变量、常量输入、输出、流getline() 函数读入整行输入Hello() 函数复习新定义函数 Input() 实现友好的人机交互还有 “痘痘” 为什么挤不到的分析…… 1. DRY 原则简介 上一节课&#xff0c;我们写了两版“问候”程序。第一版的最大问题是重复的内容比较多&#xff0c;每一次问…...

02_c/c++开源库ZeroMQ

1.安装 C库 libzmq sudo apt install libzmq3-dev 实例: https://zeromq.org/get-started/?languagec&librarylibzmq# 编译依赖: pkg-config --cflags --libs libzmq or cat /usr/lib/x86_64-linux-gnu/pkgconfig/libzmq.pc -isystem /usr/include/mit-krb5 -I/usr/in…...

计算机视觉 CV 八股分享 [自用](更新中......)

目录 一、深度学习中解决过拟合方法 二、深度学习中解决欠拟合方法 三、梯度消失和梯度爆炸 解决梯度消失的方法 解决梯度爆炸的方法 四、神经网络权重初始化方法 五、梯度下降法 六、BatchNorm 七、归一化方法 八、卷积 九、池化 十、激活函数 十一、预训练 十二…...

【MHA】MySQL高可用MHA源码1-主库故障监控

1 阅读之前的准备工作 1 一个IDE工具 &#xff0c;博主自己尝试了vscode安装perl的插件&#xff0c;但是函数 、变量 、模块等都不能跳转&#xff0c;阅读起来不是很方便。后来尝试使用了pycharm安装perl插件&#xff0c;阅读支持跳转&#xff0c;自己也能写一些简单的测试样例…...

如何一键清除文件目录下所有的node_modules

如何一键清除文件目录下所有的node_modules 快速删除目录下的node_modules&#xff0c;下面附上windows和mac的脚本指令 windows脚本 FOR /d /r . %d in (node_modules) DO IF EXIST "%d" rm -rf "%d"mac脚本 find . -name "node_modules" -…...

【产品经理修炼之道】- 导航架构设计

目录 一、导航是什么 二、导航的作用 三、导航的分类 四、导航菜单的广度与深度 五、导航的颜色 六、导航的形态 七、导航的研究 八、导航的设计 九、导航改版案例分享 总结 每个网页的设计都需要包括导航&#xff0c;那么导航架构该如何设计&#xff1f;作者结合之前…...

本地部署和运行大型语言模型(Large Language Models, LLMs)的工具Ollama

文章目录 本地部署和运行大型语言模型&#xff08;Large Language Models, LLMs&#xff09;的工具Ollama背景什么是Ollama主要功能优势 使用场景Ollama LangChain 实现本地运行Llama 3 本地部署和运行大型语言模型&#xff08;Large Language Models, LLMs&#xff09;的工具…...

Python-100-Days: Day01

Day01 Python简介 1.1989年Guido von Rossum在圣诞节之夜开始着手python语言编译器的编写。 2.1991年2月 Python v1 编译器诞生&#xff0c;使用C实现的&#xff0c;此时可以调用C的库函数。 3.1994年1月&#xff0c;Python v1.0 正式版发布。 4.2000年10月16日&#xff0…...

g 对象:Flask 应用中的“临时口袋”

文章目录 g对象的理解Flask 中的 g 对象g 对象的特点:使用 g 对象: 示例 g对象的理解 想象一下&#xff0c;你在逛超市。你需要一个购物篮来装你挑选的商品。这个购物篮就像 Flask 应用中的 g 对象&#xff0c;它是一个临时存放东西的地方&#xff0c;方便你在购物过程中随时取…...

JavaEE初阶——多线程(七)——定时器

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 小比特 大梦想 此篇文章与大家分享多线程的第七篇文章——关于定时器 如果有不足的或者错误的请您指出! 目录 4.定时器4.1标准库提供的定时器4.2自己实现一个定时器4.2.1任务类4.2.2Timer类4.2.3 有一个线程来负…...

嵌入式4-24

作业&#xff1a; 整理思维导图 定义一个矩形类Rec&#xff0c;包含私有属性length&#xff0c;width&#xff0c;有以下成员函数&#xff1a; void set_length(int l); //设置长度 void set_width(int w); //设置宽度 int get_length(); //获取长度 int get_width(); //获取宽…...

跟我学C++中级篇——临时对象

一、临时对象 Temporary object&#xff0c;临时对象。一听名字就明白&#xff0c;这个对象的意义不大&#xff0c;只是临时中转一下或者存在一下&#xff0c;有的可能连个存在感都刷不到就消失了。但不要小看这种临时对象&#xff0c;对C/C这种以效率严苛为前提的编程环境下&…...

【S32K3 MCAL配置】-7.1-GPT Driver:定时器中断-创建一个周期执行的任务

"><--返回「Autosar_MCAL高阶配置」专栏主页--> 案例背景:常用于周期点亮/关闭一个LED灯;或者精度一般的占空比为50% PWM方波;或者周期调用一个函数,在该函数中我们可以执行一些软件策略(简易的OS)。 目录(共15页精讲,基于评估板: NXP S32K312EVB-Q172,…...

java可盈保险合同管理系统的设计与实现(springboot+mysql源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的可盈保险合同管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于Spring Boot的…...

【智能算法】囊状虫群算法(TSA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2020年&#xff0c;S Kaur等人受到囊状虫群自然行为启发&#xff0c;提出了囊状虫群算法&#xff08;Tunicate Swarm Algorithm, TSA&#xff09;。 2.算法原理 2.1算法思想 TSA模拟了囊状虫群在导…...

python基础——正则表达式

&#x1f4dd;前言&#xff1a; 这篇文章主要想讲解一下python中的正则表达式&#xff1a; 1&#xff0c;什么是正则表达式 2&#xff0c;re模块三匹配 3&#xff0c;元字符匹配 4&#xff0c;具体示例 &#x1f3ac;个人简介&#xff1a;努力学习ing &#x1f4cb;个人专栏&am…...

T1级,生产环境事故—Shell脚本一键备份K8s的YAML文件

大家好&#xff0c;我叫秋意零。 最近对公司进行日常运维工作时&#xff0c;出现了一个 T1 级别事故。导致公司的“酒云网”APP的无法使用。我和我领导一起搞了一个多小时&#xff0c;业务也停了一个多小时。 起因是&#xff1a;我的部门直系领导&#xff0c;叫我**删除一个 …...

uniapp外部scss文件使用scss语法不生效.

项目场景&#xff1a; 页面的样式重复我想提取出来作为公共样式 新建scss文件&#xff0c;然后引入&#xff0c;结果样式不生效 问题描述&#xff1a; uniapp官网示例引入css的方法 /* 绝对路径 */ import url(/common/uni.css); import url(/common/uni.css); /* 相对路径 …...

【liunx】yumvim

目录 Linux 软件包管理器 yum 关于 rzsz 注意事项 查看软件包 Linux开发工具 Linux编辑器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模式命令集 简单vim配置 配置文件的位置 sudo提权 Linux 软件包管理器 yum 1.yum是什么&#xff1…...

程序员兼职引起的纠纷?

最近跟朋友聊天&#xff0c;说遇到一些因兼职工作而引发的争议&#xff0c;因为我本人也曾涉足过兼职领域&#xff0c;因此对程序员兼职时可能遇到的各种情况和应遵循的“套路”准则还有有一些发言权的&#xff0c;所以想和大家聊聊如何安全“兼职”的1/2事项~ ✅顺便内推个机会…...

docker 容器无法直接读取宿主机文件

最近一个需求, 要在后端直接使用代码直接生成 pdf 文档, 由于使用的 apache 的工具包, 该工具包无法直接解析中文字体, 需要导入外部 中文插件包, 相关代码如下: PDPage page new PDPage(PDRectangle.A4);document.addPage(page);PDFont fontFile PDType0Font.load(document…...

idea2023.3.2版本全局设置maven地址

idea每次新建项目都默认使用了一个user目录下的地址&#xff0c;而不是自己安装的maven地址&#xff0c;每次创建项目后&#xff0c;都要重新从settings中设置一下maven地址。 可以全局修改&#xff1a;首先在File-->Close Project回到idea最开始的界面 然后在Customize里点…...

Excel如何设置密码保护【图文详情】

文章目录 前言一、Excel如何设置密码保护&#xff1f;二、Excel如何取消密码保护&#xff1f;总结 前言 在软件项目开发过程中&#xff0c;会输出很多技术文档&#xff0c;其中也包括保密级别很高的服务器账号Excel文档。为了确保服务器账号相关的Excel文档的安全性&#xff0…...

专项培训:实在智能携手中国总会计师协会,共襄金融行业数字化转型

6月19日—23日&#xff0c;中国总会计师协会即将在浙江杭州举办“基于大模型的 AI Agent数字员工在金融行业实践应用专项培训”。本次培训旨在深入探讨和实践人工智能技术在金融行业的应用&#xff0c;推动金融行业的智能化和高效化发展。 作为本次培训的协办单位&#xff0c;…...

jumpserver接入ldap

ldap部署 基本安装和人员导入 1.CentOS7安装配置OpenLDAP与phpLDAPadmin (koomu.cn) 2.https://koomu.cn/centos7-install-openldap-server-and-phpldapadmin/ https://senmer.github.io/zh/posts/tech/ldap/openldap%E5%AE%89%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8/#%e4%b8%…...

Python全栈自动化测试-Python基础07--分支结构if

目录 前言 一、单项分支 二、双向分支 三、多向分支 四、巢状分支&#xff08;嵌套分支&#xff09; 五、if中的判断条件 1.条件--固定值 2.条件--运算符 总结 前言 在Python编程中&#xff0c;分支结构是一种至关重要的控制流机制&#xff0c;它允许程序根据特定条件…...

踩坑小结:Linux安装python环境 、安装OpenSSL

一、查看python版本 查看发现&#xff0c;linux上自带了python&#xff0c;不过是2.x版本的。 二、下载python3 2.1 下载 www.python.org/downloads/s… 可在当前目录下找到相对应的版本或者最新版本下载 也可以直接下载 Python 3.10.4 下载完在服务器上选择一个目录存放…...

遇到好书不容易,《米小圈上学记》与孩子一起见之!幸之!

曾听说&#xff0c;孩子阅读的第一部长篇小说&#xff0c;将会对她的性格和心灵产生长达一生的影响&#xff1b;又听说&#xff0c;在少年养志的阶段&#xff0c;让孩子多读名人传记&#xff0c;一定能有某个人成为她的目标或者偶像。 因此&#xff0c;一直以来我都在寻找最…...

从HTTP迁移到HTTPS:一篇全面的测试方案设计指南

在当今的互联网世界里&#xff0c;数据安全性日益受到重视。将网站从HTTP迁移到HTTPS已成为提升数据传输安全性的重要一步。HTTPS&#xff08;超文本传输安全协议&#xff09;通过SSL/TLS协议为客户端和服务器之间的通信加密&#xff0c;保护数据免受中间人攻击&#xff08;MIT…...