tauri使用github action实现跨平台编译并解决编译错误,mac已损坏,无法打开,你应该将它移到废纸篓解决办法

正常编译为跨平台结果就像上面的,有mac/windows/linux的安装程序,直接下载就可以安装使用,我的这个livebox桌面端仓库地址:GitHub - Sjj1024/LiveBox: livebox,里面有编译文件可以参考。今天主要讲一下遇到的问题。

官方文档的坑

按照tauri官方文档的说明:跨平台编译 | Tauri Apps,其实只要在项目的根目录创建一个 .github/workflows/build.yml 文件,然后添加内容就可以了:

但是这里需要注意:

这里cache: 'yarn' # Set this to npm, yarn or pnpm.是有问题的,不能直接使用

修改为pnpm后,就会报错:

Run actions/setup-node@v3

13Attempt to resolve LTS alias from manifest...

14Found in cache @ /Users/runner/hostedtoolcache/node/20.15.0/arm64

Environment details

19Error: Unable to locate executable file: pnpm. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.

Install frontend dependencies

Build the app

Post Sync node version and setup cache

Post Rust cache

Post Checkout repository

Complete job

add tag · Sjj1024/LiveBox@07414e2 

这里需要修改为下面的逻辑:完成可用的内容

name: Release
on:
    push:
        tags:
            - 'v*'
    workflow_dispatch:

jobs:
    release:
        permissions:
            contents: write
        strategy:
            fail-fast: false
            matrix:
                platform: [macos-latest, ubuntu-20.04, windows-latest]
        runs-on: ${{ matrix.platform }}

        steps:
            - name: Checkout repository
              uses: actions/checkout@v3

            - name: Install dependencies (ubuntu only)
              if: matrix.platform == 'ubuntu-20.04'
              # You can remove libayatana-appindicator3-dev if you don't use the system tray feature.
              run: |
                  sudo apt-get update
                  sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libayatana-appindicator3-dev librsvg2-dev

            - name: Rust setup
              uses: dtolnay/rust-toolchain@stable

            - name: Rust cache
              uses: swatinem/rust-cache@v2
              with:
                  workspaces: './src-tauri -> target'

            - name: Sync node version and setup cache
              uses: actions/setup-node@v4
              with:
                  node-version: 20

            - name: Install PNPM
              run: npm i -g pnpm

            - name: Install frontend dependencies
              # If you don't have `beforeBuildCommand` configured you may want to build your frontend here too.
              run: pnpm install # Change this to npm, yarn or pnpm.

            - name: Build the app
              uses: tauri-apps/tauri-action@v0

              env:
                  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
              with:
                  tagName: ${{ github.ref_name }} # This only works if your workflow triggers on new tags.
                  releaseName: 'App Name v__VERSION__' # tauri-action replaces \_\_VERSION\_\_ with the app version.
                  releaseBody: 'See the assets to download and install this version.'
                  releaseDraft: true
                  prerelease: false

如果你使用的是npm的话,应该没有问题,但是我使用的pnpm,以为修改为npm就可以正常用了,但是依然报错:

Run actions/setup-node@v3
Attempt to resolve LTS alias from manifest...
Found in cache @ /Users/runner/hostedtoolcache/node/20.14.0/arm64
Environment details
/Users/runner/hostedtoolcache/node/20.14.0/arm64/bin/npm config get cache
/Users/runner/.npm
Error: Dependencies lock file is not found in /Users/runner/work/LiveBox/LiveBox. Supported file patterns: package-lock.json,npm-shrinkwrap.json,yarn.lock

这里就是说没有得到lock file,因为我使用pnpm,只会有pnpm-lock.yaml文件,所以只能使用pnpm安装。

其中文件里面的 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 是每个仓库都会默认包含的一个action环境变量,不用单独添加,可以给这个环境变量添加不同的权限:GitHub 会自动为每个运行的工作流发布 GitHub 令牌,而不需要进一步配置,这意味着不存在秘密泄漏的风险。但是,该令牌默认只具有读权限,并且在运行工作流时可能会出现“资源无法通过集成访问”错误。如果发生这种情况,您可能需要向此标记添加写权限。要做到这一点,进入您的 GitHub 项目设置,然后选择操作,向下滚动到“工作流权限”,并检查“读取和写入权限”。

mac安装包打开遇到的问题

提示:已损坏,无法打开,你应该将它移到废纸篓

提示:无法打开 “应用程序”,因为无法验证开发者。macOS 无法验证此 App 不包含恶意软件 

解决办法:

打开 “系统偏好设置…” - “安全性与隐私”,“通用” 标签页,如图勾选:允许 “任何来源” 下载的 App 运行:

如果还是报错,就可以祭出大招了,给文件赋予安全性设置。在终端粘贴复制输入命令:

sudo xattr -r -d com.apple.quarantine

然后打开 Finder进入 “应用程序” 目录,找到该软件,将其图标拖到终端窗口,获取到文件路径,最终拼接为以下命令:

sudo xattr -r -d com.apple.quarantine /Applications/livebox.app

然后执行命令,输入系统密码即可。完成上述步骤即可完美运行应用。

输入一个直播间地址试试:完美

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/770860.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

视频文字提取在线怎么做?5个高效提取字幕的实用方法

无论是社交媒体上的短视频,还是在线教育的课程视频,字幕都成为了不可或缺的一部分。它们不仅帮助听力障碍人士更好地理解内容,还能让非母语观众更容易跟上节奏。 一提到字幕,我们可能会想到用它来做笔记,但要从视频中…

UVa1321/LA2925 Dice contest

UVa1321/LA2925 Dice contest 题目链接题意分析测试数据AC 代码 题目链接 本题是2003年icpc欧洲区域赛中欧赛区的D题 题意 骰子的六面展开图如下,现在把骰子的六个面赋予一套权重 w i ( 1 ≤ w i ≤ 50 , 1 ≤ i ≤ 6 ) w_i(1\le w_i \le 50,1\le i\le 6) wi​(1≤…

米国政府呼吁抛弃 C 和 C++

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 很多观点认为C 或 C永远不可被…

同步互斥与通信

目录 一、同步与互斥的概念 二、同步与互斥并不简单 三、各类方法的对比 一、同步与互斥的概念 一句话理解同步与互斥:我等你用完厕所,我再用厕所。 什么叫同步?就是:哎哎哎,我正在用厕所,你等会。 什…

nginx.conf配置参数解析

nginx配置文件解析 /usr/local/nginx/conf vim /etc/security/limits.conf #配置生效只能重新启动* soft nproc 65535 #能打开的进程最大数是软限制655335,65535是最大值 * hard nproc 65535 * soft nofile 65535 # 进程打开文件数的最大值65535 * hard nof…

最新美联储会议纪要:通胀降温,但不急于降息!

KlipC报道:当地时间周三,美联储公布了6月货币政策会议纪要。纪要显示,数据表明有通胀放缓的迹象,但如果降息需要更多的证据。此外,多位与会者表示,货币政策应随时准备应对意外的经济疲软。 会议纪要显示&a…

python-字典

为什么需要字典 字典的定义 字典数据的获取 字典的嵌套 嵌套字典的内容获取 字典的注意事项: 字典的常用操作 新增元素 更新元素 删除元素 清空字典 汇总 字典的特点

收银系统源码-收银台营销功能-定时折扣

1. 功能描述 定时折扣:在特定的时间段,将商品以打折的方式在收银台售卖,例如生鲜行业,由于生鲜是易耗品,很多门店晚上都会通过打折的方式进行促销; 2.适用场景 新门店开业、门店周年庆、节假日等特定时间…

深度分析和对比本地大语言模型Ollama和LocalAI

前言 在充满活力的人工智能(AI)世界中,开源工具已成为开发人员和组织利用LLM(大型语言模型)力量的重要资源。这些工具通过提供对高级LLM模型的访问权限,使各种用户能够构建创新和前沿的解决方案。在众多可…

springboot @configuration注解的配置, @bean注解方法a, 在@bean注解 getb(){}需要注入a

深度解析Configuration注解 /*** General purpose AOP callback. Used when the target is dynamic or when the* proxy is not frozen.*/private static class DynamicAdvisedInterceptor implements MethodInterceptor, Serializable {private final AdvisedSupport advised;…

实验九 存储过程和触发器

题目 创建并执行一个无参数的存储过程proc_product1,通过该存储过程可以查询商品类别名称为“笔记本电脑”的商品的详细信息:包括商品编号、商品名称、品牌、库存量、单价和上架时间信息 2、创建并执行一个带输入参数的存储过程proc_product2&#xff…

Rethinking Federated Learning with Domain Shift: A Prototype View

CVPR2023,针对分布式数据来自不同的域时,私有模型在其他域上表现出退化性能(具有域转移)的问题。提出用于域转移下联邦学习的联邦原型学习(FPL)。核心思想是构建集群原型和无偏原型,提供富有成效的领域知识和公平的收敛目标。将样本嵌入拉近到属于相同语义的集群原型,而…

【前端】IntersectionObserver 实现图片懒加载和无限滚动

【前端】IntersectionObserver 实现图片懒加载和无限滚动 在前端开发中,性能优化是一个重要的考量因素。随着现代网页和应用的复杂性增加,确保页面快速加载和流畅运行变得越来越重要。本文将介绍一种强大的工具——IntersectionObserver API&#xff0c…

智胜未来:AI如何重塑SaaS用户增长战略

在当今这个数字化时代,SaaS(软件即服务)已成为企业运营的重要支柱,而人工智能(AI)技术的迅猛发展,正以前所未有的方式重塑着SaaS行业的面貌,特别是对其用户增长战略产生了深远影响。…

每日一题——Python实现PAT乙级1005 继续(3n+1)猜想(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码逻辑概述 时间复杂度分析 空间复杂度分析 总结 我要更强 代码优化点…

Openwrt路由器部分ipv6公网地址无法访问的问题

路由器是Openwrt,终端访问ipv6地址经常有些能访问,有些不能访问,一开始以为是运营商问题,后面ssh到openwrt发现所有访问都正常。 查阅资料后才知道是MTU设置问题,Openwrt 默认MTU是1492,使用IPV6应减少60个…

Word文档中公式的常用操作

一、参考资料 二、常用操作 插入公式 Alt 多行公式 Shift Enter 多行公式对齐 WORD Tips: 多行公式编辑及对齐 word自带公式等号对齐(可任意符号处对齐) 多行公式按照 为基准对齐。 拖动鼠标选中整个公式点击右键,选择【对齐点(…

[激光原理与应用-97]:激光焊接焊中检测系统系列介绍 - 1 - 什么是焊接以及传统的焊接方法

目录 一、什么是焊接 1.1 概述 1.2 基本原理 二、传统的焊接技术与方法 2.1 手工电弧焊: 1、定义与原理 2、特点 3、焊条类型 4、应用领域 5、安全注意事项 2.2 气体保护焊: 1、原理与特点 2、应用领域 3、气体选择 4、注意事项 2.3 电阻…

C++ 文达校内党员管理系统-计算机毕业设计源码20855

目 录 摘要 1 绪论 1.1研究背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2 文达校内党员管理系统系统分析 2.1 可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 2.4 系统流程分析 2.4.1 数据流程 2.5.2 业务流程 2.…

CPU/内存/综合性能评估工具汇总-3:unixbench

目录 一、概括二、UnixBench 一、概括 嵌入式开发中对要设计的产品、立项的项目进行设计时,往往需要对关键芯片进行性能评估,本文主要总结基于linux系统的产品在性能评估时的工具使用总结,在aarch64(arm64平台下测试),板卡根文件…