优化mac打包模式,buid.sh一键打包脚本兼容MacOS

This commit is contained in:
Tlntin
2022-11-18 22:34:31 +08:00
parent 084e931a7e
commit 2a488c40bf
4 changed files with 97 additions and 27 deletions

View File

@@ -12,10 +12,32 @@ app_list=(
"flomo 浮墨 flomoapp.com" "flomo 浮墨 flomoapp.com"
"weread 微信阅读 weread.qq.com" "weread 微信阅读 weread.qq.com"
) )
# total package number
export index=1
export total=4
old_name="weread" old_name="weread"
old_zh_name="微信阅读" old_zh_name="微信阅读"
old_url="weread.qq.com" old_url="weread.qq.com"
package_prefix="com.tw93"
if [[ "$OSTYPE" =~ ^linux ]]; then
echo "==============="
echo "Build for Linux"
echo "==============="
# for linux, package name may be com.xxx.xxx
echo "rename package name"
export desktop_file="src-tauri/assets/${package_prefix}.weread.desktop"
mv "src-tauri/assets/weread.desktop" ${desktop_file}
sed -i "s/\"productName\": \"weread\"/\"productName\": \"${package_prefix}.weread\"" ${desktop_file}
fi
if [[ "$OSTYPE" =~ ^darwin ]]; then
echo "==============="
echo "Build for MacOS"
echo "==============="
fi
for app_info in "${app_list[@]}"; do for app_info in "${app_list[@]}"; do
array=($app_info) array=($app_info)
package_name=${array[0]} package_name=${array[0]}
@@ -23,24 +45,37 @@ for app_info in "${app_list[@]}"; do
url=${array[2]} url=${array[2]}
echo "update package name and url" echo "update package name and url"
# replace package info # replace package info
sed -i "s/${old_url}/${url}/g" src-tauri/tauri.conf.json
sed -i "s/${old_name}/${package_name}/g" src-tauri/tauri.conf.json if [[ "$OSTYPE" =~ ^linux ]]; then
sed -i "s/${old_url}/${url}/g" src-tauri/tauri.conf.json
sed -i "s/${old_name}/${package_name}/g" src-tauri/tauri.conf.json
fi
if [[ "$OSTYPE" =~ ^darwin ]]; then
sed -i '' "s|${old_url}|${url}|g" src-tauri/tauri.conf.json
sed -i '' "s|${old_name}|${package_name}|g" src-tauri/tauri.conf.json
fi
echo "update ico with 32x32 pictue" echo "update ico with 32x32 pictue"
cp "src-tauri/png/${package_name}_32.png" "src-tauri/icons/icon.ico" cp "src-tauri/png/${package_name}_32.png" "src-tauri/icons/icon.ico"
echo "update desktop" if [[ "$OSTYPE" =~ ^linux ]]; then
mv "src-tauri/assets/com-tw93-${old_name}.desktop" "src-tauri/assets/com-tw93-${package_name}.desktop" echo "update desktop"
sed -i "s/${old_zh_name}/${package_zh_name}/g" "src-tauri/assets/com-tw93-${package_name}.desktop" old_desktop="src-tauri/assets/${package_prefix}.${old_name}.desktop"
sed -i "s/${old_name}/${package_name}/g" "src-tauri/assets/com-tw93-${package_name}.desktop" new_desktop="src-tauri/assets/${package_prefix}.${old_name}.desktop"
mv ${old_desktop} ${new_desktop}
sed -i "s/${old_zh_name}/${package_zh_name}/g" ${new_desktop}
sed -i "s/${old_name}/${package_name}/g" ${new_desktop}
fi
# update package info # update package info
old_zh_name=${package_zh_name} old_zh_name=${package_zh_name}
old_name=${package_name} old_name=${package_name}
old_url=${url} old_url=${url}
echo "build deb/appImage package for Linux x86-64" echo "building package ${index}/${total}"
echo "package name is ${package_name}" echo "package name is ${package_name} (${package_zh_name})"
npm run build:linux npm run tauri build
echo "package build success!" echo "package build success!"
index=$(($index+1))
done done

View File

@@ -1,9 +1,9 @@
[Desktop Entry] [Desktop Entry]
Encoding=UTF-8 Encoding=UTF-8
Categories=Office Categories=Office
Exec=com-tw93-weread Exec=weread
Icon=com-tw93-weread Icon=weread
Name=com-tw93-weread Name=weread
Name[zh_CN]= Name[zh_CN]=
StartupNotify=true StartupNotify=true
Terminal=false Terminal=false

View File

@@ -2,6 +2,10 @@
#![windows_subsystem = "windows"] #![windows_subsystem = "windows"]
extern crate image; extern crate image;
use tauri_utils::config::{Config, WindowConfig}; use tauri_utils::config::{Config, WindowConfig};
#[cfg(target_os = "macos")]
use wry::application::platform::macos::WindowBuilderExtMacOS;
#[cfg(target_os = "windows")]
use wry::application::platform::windows::WindowBuilderExtWindows;
#[cfg(target_os="macos")] #[cfg(target_os="macos")]
use wry::{ use wry::{
@@ -46,18 +50,30 @@ fn main() -> wry::Result<()> {
#[cfg(target_os = "macos")] #[cfg(target_os = "macos")]
let mut menu_bar_menu = Menu::new(); let mut menu_bar_menu = Menu::new();
#[cfg(target_os = "macos")] #[cfg(target_os = "macos")]
let mut first_menu = Menu::new() let mut first_menu = Menu::new();
.add_native_item(MenuItem::Hide) #[cfg(target_os = "macos")]
.add_native_item(MenuItem::EnterFullScreen) first_menu.add_native_item(MenuItem::Hide);
.add_native_item(MenuItem::Minimize) #[cfg(target_os = "macos")]
.add_native_item(MenuItem::Separator) first_menu.add_native_item(MenuItem::EnterFullScreen);
.add_native_item(MenuItem::Copy) #[cfg(target_os = "macos")]
.add_native_item(MenuItem::Cut) first_menu.add_native_item(MenuItem::Minimize);
.add_native_item(MenuItem::Paste) #[cfg(target_os = "macos")]
.add_native_item(MenuItem::Undo) first_menu.add_native_item(MenuItem::Separator);
.add_native_item(MenuItem::Redo) #[cfg(target_os = "macos")]
.add_native_item(MenuItem::SelectAll) first_menu.add_native_item(MenuItem::Copy);
.add_native_item(MenuItem::Separator); #[cfg(target_os = "macos")]
first_menu.add_native_item(MenuItem::Cut);
#[cfg(target_os = "macos")]
first_menu.add_native_item(MenuItem::Paste);
#[cfg(target_os = "macos")]
first_menu.add_native_item(MenuItem::Undo);
#[cfg(target_os = "macos")]
first_menu.add_native_item(MenuItem::Redo);
#[cfg(target_os = "macos")]
first_menu.add_native_item(MenuItem::SelectAll);
#[cfg(target_os = "macos")]
first_menu.add_native_item(MenuItem::Separator);
#[cfg(target_os = "macos")] #[cfg(target_os = "macos")]
let close_item = first_menu.add_item( let close_item = first_menu.add_item(
MenuItemAttributes::new("CloseWindow") MenuItemAttributes::new("CloseWindow")
@@ -69,7 +85,7 @@ fn main() -> wry::Result<()> {
#[cfg(target_os = "macos")] #[cfg(target_os = "macos")]
menu_bar_menu.add_submenu("App", true, first_menu); menu_bar_menu.add_submenu("App", true, first_menu);
#[cfg(target_os = "linux")]
let WindowConfig { let WindowConfig {
url, url,
width, width,
@@ -78,6 +94,25 @@ fn main() -> wry::Result<()> {
fullscreen, fullscreen,
.. ..
} = get_windows_config().unwrap_or(WindowConfig::default()); } = get_windows_config().unwrap_or(WindowConfig::default());
#[cfg(target_os = "windows")]
let WindowConfig {
url,
width,
height,
resizable,
fullscreen,
..
} = get_windows_config().unwrap_or(WindowConfig::default());
#[cfg(target_os = "macos")]
let WindowConfig {
url,
width,
height,
resizable,
transparent,
fullscreen,
..
} = get_windows_config().unwrap_or(WindowConfig::default());
let event_loop = EventLoop::new(); let event_loop = EventLoop::new();
let common_window = WindowBuilder::new() let common_window = WindowBuilder::new()

View File

@@ -1,6 +1,6 @@
{ {
"package": { "package": {
"productName": "com.tw93.weread", "productName": "weread",
"version": "0.2.0" "version": "0.2.0"
}, },
"tauri": { "tauri": {
@@ -39,7 +39,7 @@
"librsvg2-dev" "librsvg2-dev"
], ],
"files": { "files": {
"/usr/share/applications/com-tw93-weread.desktop": "assets/com-tw93-weread.desktop" "/usr/share/applications/weread.desktop": "assets/weread.desktop"
} }
}, },
"externalBin": [], "externalBin": [],