sis是打包安装文件(需要pkg文件,pkg里有要打包的文件列表和规则)
生成sis的过程是 :编译+链接=目标文件 --> makesis生成sis包 -->证书签名=sisx包
1.项目右键 -> properties -> carbide.c++ -> carbide build configuration -> sis builder -> add 在SIS Properties面板的PKG File添加 pkg文件
2.在Configurations 中选择armv5 release菜单选择编译方式。意思是用 armv5 编译器编译 Realse 版程序。
然后执行菜单“Project / Build Project”编译项目。
对于经常出现的错误 “File I/O fault.”这个错误是指文件目标不明确,将下面的$(EPOCROOT),$(PLATFORM)/$(TARGET)用相应文件夹地址代替即可!
$(EPOCROOT)Epoc32/release/$(PLATFORM)/$(TARGET)/helloworld_0xE60906CC.exe"
重新Build后即可生成sis。
生成sis文件后去 http://www.newsive.com/SOFTWARE/FireCer.rar 下载s60证书签名专家,
生成签名文件sisx
我也是用Carbide.c++(版本:1.2)开发程序的.我制作sisx安装文件的过程是这样的(假设您的程序名称为MyApp):
1.点击工具栏中"小锤"图标的下箭头,选择"Phone Release"进行程序构建.
或者:
1'选择菜单"Project/Active Build Configuration/Phone Release",之后,"Project/Build Project".
2.在IDE中打开文件" <MyApp>/sis/ <MyApp>_S60_3_X_v_1_0_0.pkg"(IDE自动生成,名字大致是这样,后面是版本号).
3.在打开的该文件上右键,选择右键菜单"Build PKG File",创建sisx安装文件完成,它的位置为" <MyApp>/sis/ <MyApp>_S60_3_X_v_1_0_0.sisx"
你会发现第三步生成3个文件,分别为
1._resolved <MyApp>_S60_3_X_v_1_0_0.pkg;
2. <MyApp>_S60_3_X_v_1_0_0.sis;
3. <MyApp>_S60_3_X_v_1_0_0.sisx.
文件1是 <MyApp>_S60_3_X_v_1_0_0.pkg的实例化文件,您会发现 <MyApp>_S60_3_X_v_1_0_0.pkg中的不定因素都根据您的环境落实了,其实IDE是先生成它,然后由它生成安装文件.
文件2和文件3都是安装文件,不同的是文件3已经被IDE自动签名认证了.您可以直接安装文件3,或者拿文件2做特别的签名之后安装.
拿安装的时候经常会出现一下的提示:
1.证书错误,请与应用程序提供商联系.
这很可能是您使用了没有认证的安装文件.
2.证书尚未生效,已过期,或者手机的日期设置不正确.
这是因为证书的生效时间大于手机的当前时间.
3.证书过期.
这是因为证书的失效时间小于手机的当前时间.
4.不支持安装...
这有可能是程序的版本不正确(如将第二版程序安装到第三版的手机上),也有可能根本不是安装文件,只是后缀名恰巧符合.
5.无法安装.
一般是因为安装文件制作不正确.我首次安装就遇到这种情况.自己辛辛苦苦制作的SISX竟然安装到最后失败...无语,抓狂,崩溃.
对于2,3种情况,楼主可以更改手机时间(解密游戏,我喜欢)试一试.
其它情况,就按照我所说的步骤(希望楼主的Carbide.c++和我的版本一样).如果还不行,楼主就要好好找找原因了.
如果楼主的Carbide.c++版本和我的不同,可以参考"如何从Carbide.c++产生SIS安装文件?".
如果实在不行,楼主要手工制作PKG,可以参考"*.pkg文件的阐述及生成sis 文件的方法".
祝楼主好运.
补充一点,造成"无法安装"的一个很常见的原因是用debug版本生成sisx进行安装.
所以楼主说在模拟器上能够正常运行,我想应该是因为这个.
楼主检查一下是否是以release版本build程序.