tauri2.0版本开发苹果ios和安卓android应用,环境搭建和最后编译为apk

官网链接:What is Tauri? | Tauri 

初始准备

rust版本一定要1.77.2以上的版本,查看版本和升级版本:

升级命名:

rustup update

 不然会报错:

error: package `tauri-plugin-shell v2.0.2` cannot be built because it requires rustc 1.77.2 or newer, while the currently active rustc version is 1.76.0

Either upgrade to rustc 1.77.2 or newer, or use

cargo update tauri-plugin-shell@2.0.2 --precise ver

where `ver` is the latest version of `tauri-plugin-shell` supporting rustc 1.76.0

Failed to run `cargo build`: command ["cargo", "build", "--package", "mobiltauri", "--manifest-path", "/Users/song/Project/my/MobilTauri/src-tauri/Cargo.toml", "--target", "aarch64-apple-ios-sim", "--features", "tauri/rustls-tls", "--lib", "--no-default-features"] exited with code 101

    Error Failed to run `cargo build`: command ["cargo", "build", "--package", "mobiltauri", "--manifest-path", "/Users/song/Project/my/MobilTauri/src-tauri/Cargo.toml", "--target", "aarch64-apple-ios-sim", "--features", "tauri/rustls-tls", "--lib", "--no-default-features"] exited with code 101

 ELIFECYCLE  Command failed with exit code 1.

Command PhaseScriptExecution failed with a nonzero exit code

note: Run script build phase 'Build Rust Code' will be run during every build because the option to run the script phase "Based on dependency analysis" is unchecked. (in target 'mobiltauri_iOS' from project 'mobiltauri')

** BUILD FAILED **

创建项目

npm create tauri-app@latest


然后输入项目相关信息。

进入新创建的项目

初始化环境:
pnpm install

android开发:
pnpm tauri android init

pnpm tauri android dev


ios开发:

pnpm tauri ios init

pnpm tauri ios dev


桌面端开发:
pnpm tauri dev

常见错误

ios要给项目分配ios开发者id:

/Users/song/Project/my/MobilTauri/src-tauri/gen/apple/mobiltauri.xcodeproj: error: Signing for "mobiltauri_iOS" requires a development team. Select a development team in the Signing & Capabilities editor. (in target 'mobiltauri_iOS' from project 'mobiltauri')

note: Run script build phase 'Build Rust Code' will be run during every build because the option to run the script phase "Based on dependency analysis" is unchecked. (in target 'mobiltauri_iOS' from project 'mobiltauri')

** BUILD FAILED **

command ["xcodebuild"] exited with code 65

    Error command ["xcodebuild"] exited with code 65

 ELIFECYCLE  Command failed with exit code 1.

song$ pnpm tauri ios dev

打开src-tauri/gen/apple路径,使用xcode打开,然后在设置里面配置开发者账号:

开发者账号和证书不要有过期的,不然就会报错。

运行后的效果:

android安装报错:

action request:  to initialize Android environment; Android support won't be usable until you fix the issue

below and re-run `tauri android init`!

    Have you installed the NDK? The `NDK_HOME` environment variable isn't set, and is required: environment

    variable not found

victory: Project generated successfully!

    Make cool apps! 🌻 🐕 🎉

需要安装ndk:

点击apply and ok:

安装好之后要配置环境变量。

在您的操作系统中配置 NDK_HOME 环境变量:

NDK的版本号:

Windows
  1. 搜索 环境变量,打开 系统环境变量设置
  2. 系统变量 中点击 新建
    • 名称:NDK_HOME
  3. 值:Android NDK 的安装路径,例如:
    C:\Users\<your-username>\AppData\Local\Android\Sdk\ndk\XX.Y.Z

    确保将路径添加到 PATH 变量中,例如:

    %NDK_HOME%\bin
    
macOS / Linux

编辑 ~/.bashrc~/.zshrc 文件,添加以下内容:

export NDK_HOME=~/Library/Android/sdk/ndk/XX.Y.Z
export PATH=$NDK_HOME/bin:$PATH

替换 XX.Y.Z 为 NDK 实际版本号。

使用以下命令应用更改:

source ~/.bashrc  

# 或

source ~/.zshrc

运行以下命令以确认 NDK 是否可用:

echo $NDK_HOME
ndk-build --version

立即生效:

source ~/.bash_profile
或者
source ~/.zshrc

如果输出 NDK 的路径和版本号,则配置成功。

然后运行:

pnpm tauri android init

pnpm tauri android dev

JDK版本太低报错:

* What went wrong:

Execution failed for task ':buildSrc:compileKotlin'.

> Could not resolve all files for configuration ':buildSrc:compileClasspath'.

   > Could not resolve com.android.tools.build:gradle:8.5.1.

     Required by:

         project :buildSrc

      > Dependency requires at least JVM runtime version 11. This build uses a Java 8 JVM.

* Try:

> Run this build using a Java 11 or newer JVM.

> Run with --stacktrace option to get the stack trace.

> Run with --info or --debug option to get more log output.

> Run with --scan to get full insights.

> Get more help at https://help.gradle.org.

升级JDK:

Windows/Mac:从 Adoptium 或 Oracle JDK 下载并安装 Java 11 或更高版本

查看java版本:

升级java版本之后,可能会导致NDK重新实效问题,这个时候需要重新运行命令:

pnpm tauri android init

然后再次运行就可以了: 

运行后的效果:

打包编译

打包为apk安装包:

pnpm tauri android build

编译后的文件存在路径:

/Users/song/Project/my/MobilTauri/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release-unsigned.apk

打包后的universal的apk大小:39.5M

arm64位的apk大小: 163M,惊呆了

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

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

相关文章

【PHP】 环境以及插件的配置,自学笔记(一)

文章目录 环境的准备安装 XAMPPWindowMacOS 配置开发环境Vscode 关于 PHP 的插件推荐Vscode 配置 php 环境Apache 启动Hello php配置热更新 参考 环境的准备 下载 XAMPP , 可以从 官网下载 https://www.apachefriends.org/download.html 安装 XAMPP XAMPP 是一个跨平台的集成开…

部署实战(二)--修改jar中的文件并重新打包成jar文件

一.jar文件 JAR 文件就是 Java Archive &#xff08; Java 档案文件&#xff09;&#xff0c;它是 Java 的一种文档格式JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中&#xff0c;多出了一个META-INF/MANIFEST.MF 文件META-INF/MANIFEST.MF 文件在生成 JAR 文件的时候…

Alluxio在小红书的实践:加速云端机器学习

分享嘉宾 李亚斌 小红书大数据技术专家 负责小红书多云统一数据加速层的建设 关于小红书 小红书是年轻人的生活记录、分享平台&#xff0c;用户可以通过短视频、图文等形式记录生活点滴&#xff0c;分享生活方式。 分享提纲 本文主要介绍小红书多云统一数据加速层的内容&…

JavaScript的let、var、const

这张图片主要介绍了JavaScript中的三种变量声明方式&#xff1a;let、var和const。 1. let 含义&#xff1a;let是现在实际开发中常用的变量声明方式。特点&#xff1a; 块级作用域&#xff1a;let声明的变量只在其所在的块级作用域内有效。例如&#xff1a;{let x 10; } co…

ensp动态路由OSPF实验

一、实验目的 1、熟练掌握交换机的基本配置命令 2、熟练掌握ospf的使用规则 3. 熟练掌握交换机端口模式 二、实验内容 需求&#xff1a; 根据要求利用现有实验设备组建小型局域网 实验设备&#xff1a; 交换机S37002台&#xff1b;交换机S57002台&#xff1b;路由器2台。…

Python绘制太极八卦

文章目录 系列目录写在前面技术需求1. 图形绘制库的支持2. 图形绘制功能3. 参数化设计4. 绘制控制5. 数据处理6. 用户界面 完整代码代码分析1. rset() 函数2. offset() 函数3. taiji() 函数4. bagua() 函数5. 绘制过程6. 技术亮点 写在后面 系列目录 序号直达链接爱心系列1Pyth…

package.json中^1.x.x、~1.x.x、1.x.x有什么区别

目录 包版本号的语义化 包版本号的符号 举例 包版本号的语义化 在开始回答这个问题之前&#xff0c;先简单介绍一下包版本号的语义化。 在npm中&#xff0c;包的版本号通常遵循语义化版本规范&#xff08;Semantic Versioning&#xff09;&#xff0c;即采用 major.minor.p…

力扣hot100-->排序

排序 1. 56. 合并区间 中等 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 示例 1&#xff1a; 输…

一分钟学习数据安全——数据安全风险的系统化应对思路

数据是组织的重要资产&#xff0c;未经授权的数据访问可能导致数据泄露、数据篡改、隐私侵犯和合规风险等问题。企业可以通过数据访问控制来提高信息系统在数据全生命周期管理中的安全性。企业可以引入IAM系统&#xff0c;来控制身份来管理权限。通过对用户访问权限的管理和合适…

免费实用在线AI工具集合 - 加菲工具

免费在线工具-加菲工具 https://orcc.online/ 在线录屏 https://orcc.online/recorder 时间戳转换 https://orcc.online/timestamp Base64 编码解码 https://orcc.online/base64 URL 编码解码 https://orcc.online/url Hash(MD5/SHA1/SHA256…) 计算 https://orcc.online/h…

五种创建k8s的configMap的方式及configmap使用

configmap介绍 Kubernetes 提供了 ConfigMap 来管理应用配置数据&#xff0c;将配置信息从容器镜像中解耦&#xff0c;使应用更灵活、可移植。 1、基于一个目录来创建ConfigMap ​ 你可以使用 kubectl create configmap 基于同一目录中的多个文件创建 ConfigMap。 当你基于目…

ssm185大学学术交流论坛+vue(论文+源码)_kaic

摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于大学学术交流论坛当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了大学学术交流论坛的发展&#xff0c;它彻底…

构建 Java Web 应用程序:从 Servlet 到数据库交互(Eclipse使用JDBC连接Mysql数据库)

第 1 部分&#xff1a;环境设置 安装 Java Development Kit (JDK)&#xff1a;下载并安装 JDK。设置 IDE&#xff1a;安装并配置 IDE&#xff08;如 IntelliJ IDEA 或 Eclipse&#xff09;。安装数据库&#xff1a;下载并安装 MySQL 数据库。配置数据库&#xff1a;创建数据库…

C 语言面向对象

面向对象的基本特性&#xff1a;封装&#xff0c;继承&#xff0c;多态 1.0 面向过程概念 当我们在编写程序时&#xff0c;通常采用以下步骤&#xff1a; 1. 将问题的解法分解成若干步骤 2. 使用函数分别实现这些步骤 3. 依次调用这些函数 这种编程风格的被称作 面向过程…

aws服务--机密数据存储KMS(1)介绍和使用

在AWS(Amazon Web Services)中存储机密数据时,安全性和合规性是最重要的考虑因素。AWS 提供了多个服务和工具,帮助用户确保数据的安全性、机密性以及合规性。AWS Secrets Manager、KMS(Key Management Service)是推荐的存储机密数据的AWS服务和最佳实践。这里先看KMS。 …

ArcGIS应用指南:ArcGIS制作局部放大地图

在地理信息系统&#xff08;GIS&#xff09;中&#xff0c;制作详细且美观的地图是一项重要的技能。地图制作不仅仅是简单地将地理数据可视化&#xff0c;还需要考虑地图的可读性和美观性。局部放大图是一种常见的地图设计技巧&#xff0c;用于展示特定区域的详细信息&#xff…

【案例学习】如何使用Minitab实现包装过程的自动化和改进

Masimo 是一家全球性的医疗技术公司&#xff0c;致力于开发和生产各种行业领先的监控技术&#xff0c;包括创新的测量、传感器和患者监护仪。在 Masimo Hospital Automation 平台的助力下&#xff0c;Masimo 的连接、自动化、远程医疗和远程监控解决方案正在改善医院内外的护理…

【JavaEE初阶】多线程初阶下部

文章目录 前言一、volatile关键字volatile 能保证内存可见性 二、wait 和 notify2.1 wait()方法2.2 notify()方法2.3 notifyAll()方法2.4 wait 和 sleep 的对比&#xff08;面试题&#xff09; 三、多线程案例单例模式 四、总结-保证线程安全的思路五、对比线程和进程总结 前言…

【小白学机器学习33】 大数定律python的 pandas.Dataframe 和 pandas.Series基础内容

目录 0 总结 0.1pd.Dataframe有一个比较麻烦琐碎的地方&#xff0c;就是引号 和括号 0.2 pd.Dataframe关于括号的原则 0.3 分清楚几个数据类型和对应的方法的范围 0.4 几个数据结构的构造关系 list → np.array(list) → pd.Series(np.array)/pd.Dataframe 1 python 里…

《用Python画蔡徐坤:艺术与编程的结合》

简介 大家好&#xff01;今天带来一篇有趣的Python编程项目&#xff0c;用代码画出知名偶像蔡徐坤的形象。这个项目使用了Python的turtle库&#xff0c;通过简单的几何图形和精心设计的代码来展示艺术与编程的结合。 以下是完整的代码和效果介绍&#xff0c;快来试试看吧&…