- 新建项目文件夹fyna
- 执行go mod init
- 执行go get fyne.io/fyne/v2
- 执行go mod tidy
- 创建main.go
执行以上步骤即可创建一个fyne环境
hello world代码如下:
package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.New()
//创建一个窗口
w := a.NewWindow("hello world")
//设置窗口内显示内容
w.SetContent(widget.NewLabel("hello world!"))
//展示窗口 并运行程序
w.ShowAndRun()
}
运行代码执行go run main.go或者go run .
可以看到一个标题为hello world内容显示为hello world!的窗口程序
参考:https://developer.fyne.io/started/packaging
打包一个图形程序步骤比较复杂,典型的窗口程序包含图标和一些元数据,包括在不同环境下的一些不同表现格式的数据整合。
在fyne中有package打包命令,可以自动处理打包中的问题。但是需要打包时设置具体的打包系统和需要的元数据(比如图标)就可以打包程序了。图标也可以自动生成.icns或.ico后缀的图标文件,所以只需要提供.png文件。最终只需要处理需要打包的平台即可。
打包命令如下:
go install fyne.io/fyne/v2/cmd/fyne@latest fyne package -os darwin -icon myapp.png
如果go版本低于1.16,则使用go get命令:
go get fyne.io/fyne/v2/cmd/fyne fyne package -os darwin -icon myapp.png
打包成windows环境或liunx环境可执行程序命令:
fyne package -os linux -icon myapp.png fyne package -os windows -icon myapp.png
以上命令将会生成:
- myapp.tar.gz
- myapp.exe
安装当前系统的桌面app应用:
fyne install -icon myapp.png打包手机程序
参考:https://developer.fyne.io/started/mobile
打包为移动端程序需要对应SDK环境。Android程序需要安装Android SDK和NDK及其对应的环境工具(如 adb)。打包IOS app需要安装Xcode和对应的包工具。
有了对应环境后,打包命令如下:
fyne package -os android -appID com.example.myapp -icon mobileIcon.png fyne package -os ios -appID com.example.myapp -icon mobileIcon.png
第一次打包可能比较耗时。打包结果:
- myapp.apk – Android
- myapp.app – ios
安装安卓程序到手机或模拟器命令:
adb install myapp.apk
安装ios app需要打开Xcode>Window>Devices and Simulators,然后将myapp.app拖入app list.
安装到模拟器命令:
xcrun simctl install booted myapp.app打包配置
以上命令都可以通过提供默认图标文件 Icon.png来避免每次打包都要执行图标参数。2.1版本后支持提供元数据文件FyneApp.toml来配置打包参数。注意,这些文件需要位于命令运行的目录下。
如:
Website = "https://example.com" [Details] Icon = "Icon.png" Name = "My App" ID = "com.example.app" Version = "1.0.0" Build = 1发布
参考:https://developer.fyne.io/started/distribution
打包完的程序可以直接分享或者发布,但是如果想要发布到对应的软件市场,则需要些额外的步骤,根据发布的平台不同,还需要设置一些具体的配置。
这里需要使用到fyne release用来处理发布到不同平台商店的配置。对应不同平台步骤如下。
macOS App Store前提:
- Apple mac running macOS and Xcode(Xcode环境)
- Apple Developer account(苹果开发者账号)
- Mac App Store application certificate(AppStore证书)
- Mac App Store installer certificate(AppStore安装证书)
- Apple Transporter app from App Store(Transporter工具)
步骤:
1. 前往AppStore Connect设置要构建的app版本信息
2. 打包发布信息
bash fyne release -appID com.example.myapp -appVersion 1.0 -appBuild 1 -category games
3. 将.pkg文件拖入Transporter工具并点击Deliver
4. 返回 AppStore Connect 网站,选择要发布的版本并提交。
前提:
- Google Play Console 账号
- 发布的keystore(文档)
步骤:
- 前往 谷歌开发者控制台设置相关版本数据,并关闭Play app signing
- 打包发布信息
fyne release -os android -appID com.example.myapp -appVersion 1.0 -appBuild 1
- 将.apk文件拖入Play Console
- 发布版本
前提:
- Apple mac running macOS and Xcode(Xcode环境)
- Apple Developer account(苹果开发者账号)
- iOS App Store distribution certificate(ios App 发布证书)
- Apple Transporter app from App Store(Transporter工具)
步骤:
- 前往AppStore Connect设置要构建的app版本信息
- 打包
fyne release -os ios -appID com.example.myapp -appVersion 1.0 -appBuild 1
- 将.ipa文件拖入Transporter工具并点击Deliver
- 返回 AppStore Connect 网站,选择要发布的版本并提交。
完。



