mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-03 06:20:48 +08:00
188 lines
7.4 KiB
Plaintext
188 lines
7.4 KiB
Plaintext
# Troubleshooting
|
|
|
|
An assortment of troubleshooting tips.
|
|
|
|
## The `wails` command appears to be missing?
|
|
|
|
If your system is reporting that the `wails` command is missing, make sure you have followed the Go installation guide
|
|
correctly. Normally, it means that the `go/bin` directory in your User's home directory is not in the `PATH` environment
|
|
variable. You will also normally need to close and reopen any open command prompts so that changes to the environment
|
|
made by the installer are reflected at the command prompt.
|
|
|
|
## My application is displaying a white/blank screen
|
|
|
|
Check that your application includes the assets from the correct directory. In your `main.go` file, you will have
|
|
something similar to the following code:
|
|
|
|
```go
|
|
//go:embed all:frontend/dist
|
|
var assets embed.FS
|
|
```
|
|
|
|
Check that `frontend/dist` contains your application assets.
|
|
|
|
### Mac
|
|
|
|
If this happens on Mac, try adding the following to your `Info.plist`:
|
|
|
|
```xml
|
|
<key>NSAppTransportSecurity</key>
|
|
<dict>
|
|
<key>NSAllowsLocalNetworking</key>
|
|
<true/>
|
|
</dict>
|
|
```
|
|
|
|
Reference: https://github.com/wailsapp/wails/issues/1504#issuecomment-1174317433
|
|
|
|
## Mac application not valid
|
|
|
|
If your built application looks like this in finder:
|
|
|
|
```mdx-code-block
|
|
<p className="text--center">
|
|
<img
|
|
src={
|
|
require("@site/static/img/troubleshooting/invalid_mac_app.png").default
|
|
}
|
|
/>
|
|
</p>
|
|
```
|
|
|
|
it's likely that your application's `info.plist` is invalid. Update the file in `build/<yourapp>.app/Contents/info.plist`
|
|
and check if the data is valid, EG check the binary name is correct. To persist the changes, copy the file back to
|
|
the `build/darwin` directory.
|
|
|
|
## My application is not displaying the correct icon in Windows Explorer
|
|
|
|
If your application is not displaying the correct icon, try deleting the hidden `IconCache.db` file located in the
|
|
`C:\Users\<your username>\AppData\Local` directory. This will force Windows to rebuild the icon cache.
|
|
|
|
Source: https://github.com/wailsapp/wails/issues/2360#issuecomment-1556070036
|
|
|
|
## Cannot call backend method from frontend with variadic arguments
|
|
|
|
If you have a backend method defined with variadic parameters, eg:
|
|
|
|
```go
|
|
func (a *App) TestFunc(msg string, args ...interface{}) error {
|
|
// Code
|
|
}
|
|
```
|
|
|
|
calling this method from the frontend like this will fail:
|
|
|
|
```js
|
|
var msg = "Hello: ";
|
|
var args = ["Go", "JS"];
|
|
window.go.main.App.TestFunc(msg, ...args)
|
|
.then((result) => {
|
|
//do things here
|
|
})
|
|
.catch((error) => {
|
|
//handle error
|
|
});
|
|
```
|
|
|
|
Workaround:
|
|
|
|
```js
|
|
var msg = "Hello ";
|
|
var args = ["Go", "JS"];
|
|
window.go.main.App.TestFunc(msg, args)
|
|
.then((result) => {
|
|
//without the 3 dots
|
|
//do things here
|
|
})
|
|
.catch((error) => {
|
|
//handle error
|
|
});
|
|
```
|
|
|
|
Credit: https://github.com/wailsapp/wails/issues/1186
|
|
|
|
## I'm having getting proxy errors when trying to install Wails
|
|
|
|
If you are getting errors like this:
|
|
|
|
```
|
|
"https://proxy.golang.org/github.com/wailsapp/wails/cmd/wails/@v/list": dial tcp 172.217.163.49:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
|
|
```
|
|
|
|
it's probably because the official Go Proxy is being blocked (Users in China have reported this).
|
|
The solution is to set up the proxy manually, eg:
|
|
|
|
```
|
|
go env -w GO111MODULE=on
|
|
go env -w GOPROXY=https://goproxy.cn,direct
|
|
```
|
|
|
|
Source: https://github.com/wailsapp/wails/issues/1233
|
|
|
|
## The generated TypeScript doesn't have the correct types
|
|
|
|
Sometimes the generated TypeScript doesn't have the correct types. To mitigate this,
|
|
it is possible to specify what types should be generated using the `ts_type` struct tag. For
|
|
more details, please read [this](https://github.com/tkrajina/typescriptify-golang-structs#custom-types).
|
|
|
|
## When I navigate away from `index.html`, I am unable to call methods on the frontend
|
|
|
|
If you navigate away from `index.html` to a new html file, the context will be lost. This can be fixed by adding
|
|
the following imports to the `<head>` section of any new page you navigate to:
|
|
|
|
```html
|
|
<head>
|
|
<script src="/wails/ipc.js"></script>
|
|
<script src="/wails/runtime.js"></script>
|
|
</head>
|
|
```
|
|
|
|
Source: https://github.com/wailsapp/wails/discussions/1512
|
|
|
|
## I get `too many open files` errors on my Mac when I run `wails dev`
|
|
|
|
By default, macOS will only allow you to open a maximum of 256 files. This can affect the `wails dev` command.
|
|
This limit can be increased by running: `ulimit -n 1024` in the terminal.
|
|
|
|
FSNotify is [looking to move to Apple's fsevents](https://github.com/fsnotify/fsnotify/issues/11) for Mac.
|
|
If this isn't completed soon, we will create our own implementation, tracked [here](https://github.com/wailsapp/wails/issues/1733).
|
|
|
|
## My Mac app gives me weird compilation errors
|
|
|
|
A few users have reported seeing compilation errors such as the following:
|
|
|
|
```shell
|
|
# github.com/wailsapp/wails/v2/internal/frontend/desktop/darwin
|
|
In file included from ../../pkg/mod/github.com/wailsapp/wails/v2@v2.0.0-beta.44.2/internal/frontend/desktop/darwin/callbacks.go:9:
|
|
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:12:
|
|
/Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSBundle.h:91:143: error: function does not return NSString
|
|
- (NSAttributedString *)localizedAttributedStringForKey:(NSString *)key value:(nullable NSString *)value table:(nullable NSString *)tableName NS_FORMAT_ARGUMENT(1) NS_REFINED_FOR_SWIFT API_AVAILABLE(macos(12.0), ios(15.0), watchos(8.0), tvos(15.0));
|
|
~~~~~~~~~~~~~~ ^ ~
|
|
/Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:103:48: note: expanded from macro 'NS_FORMAT_ARGUMENT'
|
|
#define NS_FORMAT_ARGUMENT(A) __attribute__ ((format_arg(A)))
|
|
```
|
|
|
|
This is _normally_ due to a mismatch with the OS version you are running and the version of the XCode Command Line Tools
|
|
installed. If you see an error like this, try upgrading your XCode Command Line Tools to the latest version.
|
|
|
|
If reinstalling Xcode Command Tools still fails, you can check the path where the toolkit is located using:
|
|
|
|
`xcode-select -p`
|
|
|
|
If `/Applications/Xcode.app/Contents/Developer` is displayed, run `sudo xcode-select --switch /Library/Developer/CommandLineTools`
|
|
|
|
Sources: https://github.com/wailsapp/wails/issues/1806 and https://github.com/wailsapp/wails/issues/1140#issuecomment-1290446496
|
|
|
|
--
|
|
|
|
## Cannot start service: Host version "x.x.x does not match binary version "x.x.x"
|
|
|
|
It's preferable to add `frontend/node_modules` and `frontend/package-lock.json` to your `.gitignore`. Otherwise when opening your repository on another machine
|
|
that may have different versions of Node installed, you may not be able to run your application.
|
|
|
|
If this does happen, simply delete `frontend/node_modules` and `frontend/package-lock.json` and run your `wails build` or `wails dev` command again.
|
|
|
|
## Build process stuck on "Generating bindings"
|
|
|
|
Bindings generation process runs your application in a special mode. If application, intentionally or unintentionally, contains an endless loop (i.e. not exiting after `wails.Run()` finished), this can lead to build process stuck on the stage of bindings generation. Please make sure your code exits properly.
|