Py代码打包成SIS安装包文件的方法

用Python做S60系统的软件,免不了要把程序打包发布出来.这里介绍两种有效的方法,一种是在手机上打包,一种是在PC上打包.

第一种方法:手机上打包

其实关于Pys60程序在手机上打包的软件有好多,我用的是一款叫做"智能解包"软件,这款软件功能比较强大,它不仅可以完成打包,解包,而且还可以自签名,通用签名,清除签名等软件发布时常用的操作,简单可以说是一步到位,十分方便.界面如下图:

Screenshot0023 Screenshot0024

请选择工具里的大蟒来打包,我直接用"打包"菜单来打包,老是显示要我选择文件,搞不懂.知道的朋友跟我说一声.详细操作过程大家可以在手机上实践.同时这款软件也自还了操作说明,其中最重要的算是PKG文件的修改和配置了,不过整个过程也很简单,一看就知道如何操作.本来它还可以在打包的同时完成签名的,不过在我的机子上签不了,也不知道为什么,只有自己手动完成签名,手动签也只能签通用的.用自己的证书签进也会报错.尽管如此,本人还是推荐用它在手机上打包PyS60的程序.通常我还会用到别一款很出名的手机上签名软件"自由签名",它的功能就比较单一了,操作也更简单.这里就不多说了.

第二种方法:PC上打包

pc上打包相对比较麻烦一点.我用的是Pys60SDK自带的工具"Py2sis",这个工具位于"Epoc32/tools/py2sis"目录下.这是一个py文件的程序,执行带参数这个程序,就可以完成打包.所以关键就在于这些参数的设置.

首先,需要了解每一个参数的意义,关于具体每个参数我就不多说了,简单列一下:

py2sis.py [sisfile] [--uid=0x01234567] [--appname=myapp] [--caps="cap_1 cap_2 ..."] [--presdk20] [--sdk30] [--armv5] [--leavetemp] [--autostart]

其中各参数的意义如下:
src  - Source script or directory
sisfile  - Path of the created SIS file
uid  - Symbian UID for the application
appname  - Name of the application
caps  - A list of capabilities ("NONE", if caps is not given)
presdk20  - Use a format suitable for pre-SDK2.0 phones
sdk30  - Use a format suitable for SDK3.0 phones
leavetemp - Leave temporary files in place
armv5  - Generate armv5 binaries, by default gcce binaries are created. Only in SDK3.0
autostart - Start the application during the device bootstrap (SDK3.0 only)

更多的大家可以参考Py2sis文件夹下的readme文件.里面有详细的说明,还带有例子,不过都是英文的,所以得仔细的读懂才行.

其次,在执行打包之前还要设置一个虚拟盘,打包的过程上要用到.可以在命令行界面输入"subst V: C:/Symbian/9.1/S60_3rd"来设置一个虚拟的V盘代表"C:/Symbian/9.1/S60_3rd"目录.注意,这里的"C:/Symbian/9.1/S60_3rd"要根据你的实际情况来.它指的是你的"Epoc32"文件夹所在的路径.设差了可以用"subst V: /D"来删除V盘.

通常一条比较完整的在命令行下的打包执行命令就如下:

V:/epoc32/tools/py2sis/py2sis.py V:/epoc32/winscw/c/python/贪吃蛇2.0.py --uid=0x01234567 --appname=LuckSnake --sdk30 --caps="NetworkServices LocalServices ReadUserData WriteUserData Location"  --leavetemp

有时,用上述语句打包会编译错误,提示:

ERROR [Errno 2] No such file or directory: '//Epoc32//release//GCCE//UREL//XXXXX.exe'

说是找不到文件,其实在它指定的目录下,那个文件是存在的.其实,它在你安装Pys60SDK的盘符的根目录下也创建出来的名为epoc32的文件夹,把这个文件夹复制到"C:/Symbian/9.1/S60_3rd/Epoc32"中,然后CMD再进入刚才用SDK根目录虚拟出的V盘,还是来到py2sis的目录,再调用一遍就成功了.至于这里面的原因,我想可能SDK安装目录的问题.说到底PY2SIS的设计对目录要求比较列,不能随便更改.

说了这么多,自己要觉得很麻烦,于是用到网友提供的一个批处理文件(自己修改了一下,加入了自动设置虚拟盘等)来搞定这么多的东东:

@echo off
subst V: /D
subst V: C:/Symbian/9.1/S60_3rd
C:/Symbian/9.1/S60_3rd/Epoc32/tools/py2sis/py2sis.py C:/Symbian/9.1/S60_3rd/Epoc32/winscw/c/python/贪吃蛇2.0.py --uid=0x01234567 --appname=LuckSnake --sdk30 --caps="NetworkServices LocalServices ReadUserData WriteUserData Location" --leavetemp
xcopy C:/epoc32 V:/Epoc32/ /E /Y
rd C:/epoc32 /Q /S
V:/epoc32/tools/py2sis/py2sis.py V:/epoc32/winscw/c/python/贪吃蛇2.0.py --uid=0x01234567 --appname=LuckSnake --sdk30 --caps="NetworkServices LocalServices ReadUserData WriteUserData Location"  --leavetemp
pause

它上面的代码存为.bat文件,至于这里面的一个内容是需要你用自己的路径和名字来替换,我想,只要仔细研究一下,就知道应该怎么替换了.然后执行,就可以在你的当前py2sis目录下得到打好包的sis文件了.

总之,个人还是比较喜欢用手机上打包的工具,直观,配置方便快捷.

<完>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值