BeeWare 峰器 中文文档 - - 更新您的应用程序

教程 4 - 更新您的应用程序
在上一个教程中,我们将应用程序打包为原生应用程序。如果您正在处理一个真实世界的应用程序,这不会是故事的结局——您可能会进行一些测试,发现问题,并需要进行一些更改。即使您的应用程序是完美的,您最终还是希望发布您的应用程序的第 2 版并进行改进。

那么 - 当您进行代码更改时,如何更新已安装的应用程序?

更新应用程序代码
当您按下按钮时,我们的应用程序当前会打印到控制台。但是,GUI 应用程序不应该真正使用控制台进行输出。他们需要使用对话与用户交流。

让我们添加一个对话框来打招呼,而不是写入控制台。修改say_hello回调,使其看起来像这样:

def say_hello(self, widget):
    self.main_window.info_dialog(
        'Hello, {}'.format(self.name_input.value),
        'Hi there!'
    )


这指示 Toga 在按下按钮时打开一个模式对话框。

如果你运行,输入一个名字,然后按下按钮,你会看到新的对话框:briefcase dev

苹果系统

macOS 上的 Hello World 教程 4 对话框

 

Linux

Hello World 教程 4 对话框,在 Linux 上

 

视窗

Hello World 教程 4 对话框,在 Windows 上


macOS 上的 Hello World 教程 4 对话框
但是,如果您运行,则不会出现该对话框。briefcase run

 

为什么是这样?好吧,通过在适当的位置运行您的代码来操作 - 它尝试为您的代码生成尽可能真实的运行时环境,但它不提供或使用任何平台基础设施来将您的代码包装为应用程序。打包应用程序的部分过程涉及将代码复制到应用程序包中 - 目前,您的应用程序中仍然有旧代码。briefcase dev

所以 - 我们需要告诉公文包复制新版本的代码。我们 可以通过删除旧的平台目录并从头开始来做到这一点。但是,公文包提供了一种更简单的方法 - 您可以更新现有捆绑应用程序的代码:

苹果系统

(beeware-venv) $ briefcase update

[helloworld] Updating application code...
Installing src/helloworld...

Linux

(beeware-venv) $ briefcase update

[helloworld] Updating application code...
Installing src/helloworld...

[helloworld] Application updated.


视窗

(beeware-venv) C:\...>briefcase update

[helloworld] Updating application code...
Installing src/helloworld...

[helloworld] Application updated.

[helloworld] Application updated.
如果公文包找不到脚手架模板,它会自动调用 create来生成一个新的脚手架。

现在我们已经更新了安装程序代码,然后我们可以运行 重新编译的应用程序,运行更新的应用程序,并重新打包应用程序以进行分发。briefcase buildbriefcase runbriefcase package

(macOS 用户,请记住,如教程 3中所述,对于教程,我们建议使用标志运行,以避免设置代码签名身份的复杂性,并使教程尽可能简单。)briefcase package--no-sign

一步更新并运行
如果您正在快速迭代代码更改,您可能希望进行代码更改、更新应用程序并立即重新运行您的应用程序。公文包有一个快捷方式来支持这种使用模式——命令上的-u(or --update) 选项run。

让我们尝试进行另一个更改。您可能已经注意到,如果您不在文本输入框中键入名称,对话框会显示“Hello,”。让我们再次修改 say_hello函数来处理这种极端情况:

def say_hello(self, widget):
    if self.name_input.value:
        name = self.name_input.value
    else:
        name = 'stranger'

    self.main_window.info_dialog(
        'Hello, {}'.format(name),
        'Hi there!'
    )


在开发模式下运行您的应用程序(使用)以确认新逻辑有效;然后使用一个命令更新、构建和运行应用程序:briefcase dev

苹果系统

(beeware-venv) $ briefcase run -u

[helloworld] Updating application code...
Installing src/helloworld...

[helloworld] Application updated.

[helloworld] Starting app...

Linux

(beeware-venv) $ briefcase run -u

[helloworld] Updating application code...
Installing src/helloworld...

[helloworld] Application updated.

[helloworld] Building AppImage...
...
[helloworld] Created linux/Hello World-x86_64-0.0.1.AppImage.

[helloworld] Starting app...


视窗

(beeware-venv) C:\...>briefcase run -u

[helloworld] Updating application code...
Installing src/helloworld...

[helloworld] Application updated.

[helloworld] Starting app...


仅当您正在测试有关您的应用程序如何作为本机二进制文件运行的某些内容或寻找仅在您的应用程序处于打包形式时才会出现的错误时,才需要这样做。对于大多数日常开发来说, 会快很多。briefcase dev

package 命令也接受-u参数,因此如果您对应用程序代码进行更改并想立即重新打包,您可以运行 .briefcase package -u

下一步
我们现在已经打包了我们的应用程序以在桌面平台上分发,并且我们已经能够更新我们应用程序中的代码。

但是手机呢?在教程 5中,我们会将我们的应用程序转换为移动应用程序,并将其部署到设备模拟器和手机上。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值