tauri2.0bate版本支持移动端开发了,ios和android开发有福了

news2024/11/29 8:48:04

Tauri 是一个开源框架,用于构建轻量级、高性能的桌面应用程序。它是使用 Web 技术(如 HTML、CSS 和 JavaScript)来创建用户界面,同时利用 Rust 语言提供的api功能。Tauri 的目标是提供一种更高效、更安全的方式来开发跨平台的桌面应用程序。

Tauri1.0版本已经非常完善的支持所有桌面端了,现在的2.0已经开始测试移动端开发了,我们可以提前尝鲜一下。

安装Tauri2.0

安装最新版本的tauri,才可以创建移动端工程

pnpm create tauri-app --beta

或者

npm create tauri-app@latest -- --beta

或者

yarn create tauri-app --beta

或者

cargo install create-tauri-app
cargo create-tauri-app --beta

初始化移动端工程

默认只会支持运行桌面端,想要支持移动端,就要先生成移动端公工程。要先运行init初始化,然后才可以开启dev或者build移动端代码。下面的代码如果有使用npm或者yarn或者pnpm,就需要在开头加上npm run 或者 yarn run 或者 pnpm run 命令。

初始化移动端:

// ios初始化
npm run tauri ios init

// andriod初始化
npm run tauri android init

运行提示:

可能会需要安装cocoapods 或者更新一些依赖,按照提示安装或者更新就好了,看到Make cool apps! 🌻 🐕 🎉就说明成功了

> tauri-all@0.0.0 ios init /Users/song/Project/my/tauri-all
> tauri ios init

    Info detected rustc version 1.76.0 (07dca489a 2024-2-4)
/opt/homebrew/bin/xcodegen
    Info package `xcodegen` present: true
/opt/homebrew/bin/idevicesyslog
    Info package `libimobiledevice` present: true
/usr/local/bin/pod
    Info package `cocoapods` present: true
Outdated dependencies:
  - `xcodegen` is at 2.39.1; latest version is 2.40.1
Would you like these outdated dependencies to be updated for you? [Y/n]: Y

/opt/homebrew/Cellar/xcodegen/2.39.1/bin/xcodegen
/opt/homebrew/Cellar/xcodegen/2.39.1/share/xcodegen/ (31 files)
==> Fetching xcodegen
==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/xcodegen-2.40.1.arm64_sonoma.bottle.tar.gz
######################################################################################################### 100.0%
==> Reinstalling xcodegen 
==> Pouring xcodegen-2.40.1.arm64_sonoma.bottle.tar.gz
🍺  /opt/homebrew/Cellar/xcodegen/2.40.1: 37 files, 7.6MB
==> Running `brew cleanup xcodegen`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
Removing: /Users/song/Library/Caches/Homebrew/xcodegen--2.39.1... (2.3MB)
    Info "/Users/song/Project/my/tauri-all/src-tauri" relative to "/Users/song/Project/my/tauri-all/src-tauri/gen/apple" is "../../"
Generating Xcode project...
⚙️  Generating plists...
⚙️  Generating project...
⚙️  Writing project...
Created project at /Users/song/Project/my/tauri-all/src-tauri/gen/apple/tauri-all.xcodeproj
victory: Project generated successfully!
    Make cool apps! 🌻 🐕 🎉
 *  终端将被任务重用,按任意键关闭。  

运行完会在项目路径下生成apple工程:

 

 

运行移动端工程

需要先运行上一步的init操作,才可以运行这一步哦,不然会报错提示的

// ios dev
npm run tauri ios dev

// android dev
npm run tauri android dev

第一次如果运行报错:说明需要初始化ios工程

> tauri-all@0.0.0 ios /Users/song/Project/my/tauri-all
> tauri ios dev

/opt/homebrew/bin/ios-deploy
    Info package `ios-deploy` present: true
Detected iOS simulators:
  [0] Apple Vision Pro
  [1] iPad (10th generation)
  [2] iPad Air (5th generation)
  [3] iPad Pro (11-inch) (4th generation)
  [4] iPad Pro (12.9-inch) (6th generation)
  [5] iPad mini (6th generation)
  [6] iPhone 15
  [7] iPhone 15 Plus
  [8] iPhone 15 Pro
  [9] iPhone 15 Pro Max
  [10] iPhone SE (3rd generation)
  Enter an index for a simulator above.
Simulator: 6
    Info Starting simulator iPhone 15
    Error Xcode project directory /Users/song/Project/my/tauri-all/src-tauri/gen/apple doesn't exist. Please run `tauri ios init` and try again.

 ELIFECYCLE  Command failed with exit code 1.

打包移动端

移动端编译命令如下:

// ios
npm run tauri ios build


// android
npm run tauri android build

运行效果:

配置package.json

将以上命令配置到package.json里面,就可以很方便的运行相关的命令了: 

    "scripts": {
        "dev": "vite",
        "build": "vue-tsc --noEmit && vite build",
        "preview": "vite preview",
        "tauri": "tauri dev",
        "ios init": "tauri ios init",
        "ios dev": "tauri ios dev",
        "ios build": "tauri ios build",
        "android init": "tauri android init",
        "android dev": "tauri android dev",
        "android build": "tauri android build"
    },

错误问题解决

1.如果运行出现提示:

> tauri-all@0.0.0 dev /Users/song/Project/my/tauri-all
> vite
  VITE v5.2.11  ready in 148 ms

  ➜  Local:   http://localhost:1420/
  ➜  Network: use --host to expose
    Warn Waiting for your frontend dev server to start on http://192.168.1.18:1420/...
    Warn Waiting for your frontend dev server to start on http://192.168.1.18:1420/...

说明需要开启本地ip服务,在vite.config.ts里面添加:host: '0.0.0.0',

然后再开启服务,就没有这个提示了。

2.ios以失败告终☹️

> tauri-all@0.0.0 tauri /Users/song/Project/my/tauri-all
> tauri dev "ios" "xcode-script" "-v" "--platform" "iOS" "Simulator" "--sdk-root" "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.4.sdk" "--framework-search-paths" "/Users/song/Library/Developer/Xcode/DerivedData/tauri-all-hclwbtkmftykqbcxwjkykkdptclq/Build/Products/debug-iphonesimulator  \".\"" "--header-search-paths" "/Users/song/Library/Developer/Xcode/DerivedData/tauri-all-hclwbtkmftykqbcxwjkykkdptclq/Build/Products/debug-iphonesimulator/include " "--gcc-preprocessor-definitions" " DEBUG=1" "--configuration" "debug" "arm64-sim"

    Running BeforeDevCommand (`pnpm dev`)
error: unexpected argument 'ios' found

Usage: cargo build [OPTIONS]

For more information, try '--help'.
    Info Watching /Users/song/Project/my/tauri-all/src-tauri for changes...
 ELIFECYCLE  Command failed with exit code 1.

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 'tauri-all_iOS' from project 'tauri-all')
** BUILD FAILED **


The following build commands failed:
        PhaseScriptExecution Build\ Rust\ Code /Users/song/Library/Developer/Xcode/DerivedData/tauri-all-hclwbtkmftykqbcxwjkykkdptclq/Build/Intermediates.noindex/tauri-all.build/debug-iphonesimulator/tauri-all_iOS.build/Script-A4488FA325FA75FF5FA88F9C.sh (in target 'tauri-all_iOS' from project 'tauri-all')
(1 failure)
    Error command ["xcodebuild"] exited with code 65

 ELIFECYCLE  Command failed with exit code 1.
 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux裸机编程学习过程中个人错误集合-IMX6ULL开发版】

把main写成mian,编译出错.h文件复制完后忘记更改头文件#ifndef后面的内容,导致头文件一直找不到vscode错误更正完毕后还是找不到库函数参数,把库函数删掉,然后重新写一遍就正常了写led切换函数,led灯点不亮,是切换函数…

亚马逊测评实操干货,跨境电商做测评,卖家店铺测评攻略!

亚马逊在全球有超过 2 亿付费 Prime 会员和数以亿计的活跃买家账户,卖家们可以通过亚马逊一流的国际物流扩展业务。这是一个知名度极高的老牌跨境电商平台,而且平台流量非常大,成功打造爆款Listing这是每位亚马逊卖家渴望的诉求,做…

1694jsp宿舍管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 宿舍管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库…

一套3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用、基于C#+VC + MSSQL开发的全套PACS源码

一套3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用 PACS的功能价值在于通过连接不同的影像设备,存储与管理图像,图像的调用与后处理,实现资源共享,降低成本,达到提高工作效率、提升…

基础ArkTS组件:导航栏组件(HarmonyOS学习第三课【3.8】)

Navigation 官方文献 Navigation 组件一般作为页面布局的根容器,它提供了一系列属性方法来设置页面的标题栏、工具栏以及菜单栏的各种展示样式。 Navigation 除了提供了默认的展示样式属性外,它还提供了 CustomBuilder 模式来自定义展示样式 说明 该…

【Python贪吃蛇】:编码技巧与游戏设计的完美结合

文章目录 🔥一、运行效果💥二、游戏教程✈1. 导入模块❤️2. 初始化游戏元素☔3. 改变蛇移动的方向👊4. 绘制方块🚀5. 检查蛇头是否在游戏区域内🌈6. 定义蛇的移动函数🎬7. 绑定键盘事件 ⭐三、完整代码 &a…

让墨水屏成为生产力工具,文石做对了什么

文 | 螳螂观察 作者 | 青玥 众所周知,如今,我们的生活中大部分时间都被“屏幕”占据,这一承载着交互与显示功能的介质,出现在我们的手机、平板、汽车等产品上,吞没着我们的工作与生活。 而屏幕的长时间使用势必会对…

Hive Sampling 抽样函数

Hive Sampling 抽样函数 1.random随机抽样 2.数据块抽样 3.分桶表抽样

追剧必不可少,益百分艾护轻松解决眼疲劳!

追剧必不可少,益百分艾护轻松解决眼疲劳! 追剧大军已经成为了当下社会一个不可忽视的群体,上到七八十岁的老年人,下到三四岁的孩童,每天大部分的时间都在追剧。而中间这一部分年轻人更是如此,因此我国近视眼的数量也是…

webpack5以下的项目,前端引入node的path模块需要额外配置

webpack5以下的项目,前端import * as path from path时需要额外配置,这里以vue.config.js为例 刚开始引入时报错 其实就是在打包前端项目的时候,将path模块替换成 path-browserify 模块,所以还需要安装 path-browserfify 模块 …

CSS 之 圆形波浪进度条效果

一、简介 ​ 本篇博客讲述了如何实现一个圆形波浪进度条的样式效果,具体效果参考下方GIF图。该样式的加载进度条可以用在页面跳转或数据处理等情况下的加载动画,比起普通的横条进度条来说,样式效果更生动美观。 实现思路: ​ 这…

未来已来!这三款数字孪生产品你不能错过

随着科技的不断进步,数字孪生技术已经逐渐渗透到我们生活的各个领域。数字孪生,简而言之,就是在虚拟世界中构建一个与物理世界相对应的数字模型,通过实时数据采集和分析,为各种行业和领域提供更高效、更精确的决策支持…

文心一言 VS 讯飞星火 VS chatgpt (258)-- 算法导论19.3 1题

一、假定斐波那契堆中一个根 x 被标记了。解释 x 是如何成为一个被标记的根的。试说明 x 是否被标记对分析并没有影响,即使它不是一个先被链接到另一个结点,后又丢失了个孩子的根。如果要写代码,请用go语言。 文心一言: 斐波那契…

金蝶云星空和旺店通·企业奇门单据接口对接

金蝶云星空和旺店通企业奇门单据接口对接 接通系统:旺店通企业奇门 慧策最先以旺店通ERP切入商家核心管理痛点——订单管理,之后围绕电商经营管理中的核心管理诉求,先后布局流量获取、会员管理、仓库管理等其他重要经营模块。慧策的产品线从旺…

【最新整理】大佬都在用的10款3DMax插件推荐!

3DMax大佬是怎样练成的?猫有猫道,狗有狗道,不说也许你不知道。手巧不如家什妙,熟练使用各种插件已经成了大佬们的标配,今天,小编就给大家盘点一下最新整理的10款爆火3DMax插件,这些插件不仅能够…

等保三级需要什么安全产品?

等保三级,即信息安全等级保护三级,是中国对信息系统安全等级保护的一个标准。实现等保三级要求,需要部署一系列安全产品来加强信息系统的安全性。以下是等保三级通常需要的安全产品及其作用概述: 防火墙:作为网络安全的…

Electron下复用窗口关闭、最小化和最大化按钮

在macOS下,创建窗口时设置: new BrowserWindow({titleBarStyle: hidden, // 关闭默认的titlebartrafficLightPosition: { x: 18, y: 18 }, // 交通灯距离窗口左侧和窗口上侧的像素距离 })效果: 在window下可以这样设置, new Br…

拥抱数字化转型,解锁企业新质生产力的无限可能

新质生产力是推动社会进步的强大动力,而数字化转型则是释放这种生产力的关键。通过拥抱数字化转型,企业可以解锁新质生产力的无限可能,从而在激烈的市场竞争中脱颖而出。” 企业为什么要数字化转型? 新质生产力,这一…

华为ensp中路由器IPSec VPN原理及配置命令(超详解)

作者主页:点击! ENSP专栏:点击! 创作时间:2024年5月13日2点11分 虚拟专用网络(VPN)是一种通过公用网络建立安全连接的技术。它可以使您的设备看起来像是连接到另一个网络,例如公司…

MySQL动态列转行

介绍​​ 在实际的数据库查询中,有时候我们需要将表中的动态列(即列数不固定)转换为行,以便更好地进行数据分析和展示。在MySQL中,可以通过使用一些技巧和函数来实现动态列转行的功能。本文将介绍怎么实现MySQL动态列…