[GUI] A shot at MacOS support

This commit is contained in:
Ben C 2024-07-08 20:59:13 -04:00
parent 5dbbe7944f
commit 5dcf962d10
No known key found for this signature in database
6 changed files with 82 additions and 36 deletions

View File

@ -15,7 +15,32 @@ jobs:
strategy:
fail-fast: false
matrix:
platform: [ubuntu-20.04, windows-latest]
include:
- platform: 'macos-latest' # for Arm based macs (M1 and above).
args: 'app dmg -- --target aarch64-apple-darwin'
bundle-name: MacOS-aarch64
bundle-path: |
target/release/bundle/**/*.dmg
target/release/bundle/**/*.app
- platform: 'macos-latest' # for Intel based macs.
args: 'app dmg -- --target x86_64-apple-darwin'
bundle-name: MacOS-x86_64
bundle-path: |
target/release/bundle/**/*.dmg
target/release/bundle/**/*.app
- platform: 'ubuntu-22.04'
args: 'appimage deb'
bundle-name: Linux
bundle-path: |
target/release/bundle/**/*.deb
target/release/bundle/**/*.AppImage
- platform: 'windows-latest'
args: 'msi nsis'
bundle-name: Windows
bundle-path: |
target/release/bundle/**/*.msi
target/release/bundle/**/*.exe
target/release/*.exe
runs-on: ${{ matrix.platform }}
steps:
@ -56,29 +81,14 @@ jobs:
cargo xtask gui_disable_updater
- name: Build GUI
run: tauri build --ci -b $([[ ${{ matrix.platform }} = 'windows-latest' ]] && echo 'msi nsis' || echo 'appimage deb')
run: tauri build --ci -b ${{ matrix.args }}
shell: bash
env:
VITE_COMMIT: ${{ github.sha }}
VITE_VERSION_SUFFIX: -nightly
# Seperate artifacts for each platform
- name: Upload GUI (Linux)
- name: Upload GUI
uses: actions/upload-artifact@v4
if: matrix.platform == 'ubuntu-20.04'
with:
name: GUI-Nightly-Linux
path: |
target/release/bundle/**/*.deb
target/release/bundle/**/*.AppImage
- name: Upload GUI (Windows)
uses: actions/upload-artifact@v4
if: matrix.platform == 'windows-latest'
with:
name: GUI-Nightly-Windows
path: |
target/release/bundle/**/*.msi
target/release/bundle/**/*.exe
target/release/*.exe
name: GUI-Nightly-${{ matrix.bundle-name }}
path: ${{ matrix.bundle-path }}

View File

@ -10,7 +10,15 @@ jobs:
strategy:
fail-fast: false
matrix:
platform: [ubuntu-20.04, windows-latest]
include:
- platform: 'macos-latest' # for Arm based macs (M1 and above).
args: '--target aarch64-apple-darwin'
- platform: 'macos-latest' # for Intel based macs.
args: '--target x86_64-apple-darwin'
- platform: 'ubuntu-22.04'
args: ''
- platform: 'windows-latest'
args: ''
runs-on: ${{ matrix.platform }}
steps:
@ -62,3 +70,4 @@ jobs:
releaseBody: "See the assets to download and install this version."
releaseDraft: true
prerelease: false
args: ${{ matrix.args }}

View File

@ -23,11 +23,11 @@ This is the monorepo for the new <a href="https://www.mobiusdigitalgames.com/out
| **Windows** | ✅ |
| **Linux** | ✅ |
| **Deck** | ✅ |
| **Mac** | * |
| **Mac** | * |
You'll want to check out the [Help document](owmods_gui/HELP.md) for platform-specific instruction and caveats.
\* Currently not native, but you can [check out this Reddit post](https://www.reddit.com/r/outerwilds/comments/1b9ysbm/outer_wilds_is_playable_on_macos_with_an_m1/) by u/FoxGray for a way to run it.
\* Some caveats and additional steps may be required on Mac. see [the Mac section of the HELP document](owmods_gui/HELP.md##how-do-i-use-this-on-mac) for more info.
## Related Repos

View File

@ -8,8 +8,9 @@ This file contains common questions for the manager.
- [Table of Contents](#table-of-contents)
- [How do I use this?](#how-do-i-use-this)
- [The manager has encountered a fatal error, the system cannot find the file specified (Windows)](#the-manager-has-encountered-a-fatal-error-the-system-cannot-find-the-file-specified-windows)
- [How do I use this on Mac?](#how-do-i-use-this-on-mac)
- [How do I use this on Linux?](#how-do-i-use-this-on-linux)
- [Mod folder not found on Flatpak version of Steam](#mod-folder-not-found-on-flatpak-version-of-steam)
- [Mod folder not found on Flatpak version of Steam](#mod-folder-not-found-on-flatpak-version-of-steam)
- [What About Steam Deck?](#what-about-steam-deck)
- [How do I uninstall it?](#how-do-i-uninstall-it)
- [How do I update it?](#how-do-i-update-it)
@ -22,7 +23,9 @@ This file contains common questions for the manager.
## How do I use this?
- Download the Outer Wilds Mod Manager installer [from the latest release](https://github.com/ow-mods/ow-mod-man/releases/latest);
(See below for non-Windows instructions)
- Download the Outer Wilds Mod Manager from [the mods website](https://outerwildsmods.com/mod-manager);
- Run the downloaded .msi (you might need to ignore some Chrome / Windows warnings);
- Shortcuts are added to the desktop and start menu, use them to run the manager;
- Run the manager;
@ -43,9 +46,22 @@ This is a result of not having the [Microsoft Edge WebView2 Runtime](https://dev
The manager's installer is supposed to install Webview2 for you, but depending on how your debloating script works, it may have left rouge registry keys that make the manager think it's already installed. If you're still having issues, try inspecting the registry keys mentioned in [this Webview2 article](https://learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#detect-if-a-suitable-webview2-runtime-is-already-installed) to see if they're pointing to bad folders.
## How do I use this on Mac?
The manager can be used on MacOS with some caveats:
1. Seeing as how Outer Wilds isn't available on MacOS, OWML will not be able to find the game on its own. You'll need to manually set it in the settings menu (Gear in the top-corner, scroll down to OWML Settings -> Game Path). This folder should contain the game's `.exe` file and the `OuterWilds_Data` folder.
2. The manager needs [Mono](https://www.mono-project.com/docs/getting-started/install/mac/) to be installed in order to run OWML. Ensure you have it installed and available on your PATH. You can run `where mono` in the terminal to check if it's installed, it should return a path to the mono executable.
3. The manager will not be able to launch the game directly. After you see a "Client Disconnected From Console" message in the logs window your game will be patched to run modded, just launch the game directly.
1. Note if you see a message along the lines of "Current game path not valid", this means that the game hasn't been patched. You'll need to set the game path in the settings menu and try again.
MacOS support is experimental and not well-tested. If you need help troubleshooting or have a suggestion for
improving the MacOS experience, please [open an issue](https://github.com/ow-mods/ow-mod-man/issues/new/choose)
or come chat with us on [the Discord server](https://discord.com/invite/wusTQYbYTc).
## How do I use this on Linux?
Using the manager on Linux should be easy **proton and wine are not required**. The manager requires [Mono](https://www.mono-project.com) 6 to be installed and available on the PATH. If you're using the Flatpak, AUR, or Nix versions, Mono will be installed and set up automatically.
Using the manager on Linux should be easy, **proton and wine are not required**. The manager requires [Mono](https://www.mono-project.com) 6 to be installed and available on the PATH. If you're using the Flatpak, AUR, or Nix versions, Mono will be installed and set up automatically.
### Mod folder not found on Flatpak version of Steam

View File

@ -0,0 +1,18 @@
<!-- File for registering the owmods:// protocol on MacOS -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.bwc9876.owmods-gui</string>
<key>CFBundleURLSchemes</key>
<array>
<string>owmods</string>
</array>
</dict>
</array>
</dict>
</plist>

View File

@ -54,11 +54,7 @@
"identifier": "com.bwc9876.owmods-gui",
"longDescription": "A manager for Outer Wilds mods",
"macOS": {
"entitlements": null,
"exceptionDomain": "",
"frameworks": [],
"providerShortName": null,
"signingIdentity": null
"license": "../../LICENSE"
},
"resources": [],
"shortDescription": "",
@ -83,10 +79,7 @@
},
"security": {
"csp": "default-src 'self'; img-src 'self' https://ow-mods.github.io; style-src 'self' 'unsafe-inline'; font-src 'self' data:",
"dangerousDisableAssetCspModification": [
"style-src",
"font-src"
]
"dangerousDisableAssetCspModification": ["style-src", "font-src"]
},
"updater": {
"active": true,
@ -112,4 +105,4 @@
}
]
}
}
}