Carbide C++ 1.3 自签名文件不能安装的问题及解决办法

      最近学习Symbian 3rd平台上的应用开发,使用的Carbide C++ 1.3版本。该版本比前面的版本都要“先进”些,感受最大的就是可以不用手工处理自签名,它在Build Phone Release时,会根据你的配置路径,在该路径先自动生成对应sis文件的自签名文件sisx。

      使用了一段时间之后,昨天突然开始“抽筋”,生成的sisx文件,在真机上安装的时候出现“证书尚未生效,已过期,或者手机的日期设置不正确”的错误,而无法安装。经google,总结了一些无法安装的错误总结如下:

1.证书Error,请与应用program提供商联系.
这很可能是您使用了没有认证的安装文件.
2.证书尚未生效,已过期,或者手机的日期设置不正确.
这是因为证书的生效时间大于手机的当前时间.
3.证书过期.
这是因为证书的失效时间小于手机的当前时间.
4.不支持安装...
这有可能是program的版本不正确(如将第二版program安装到第三版的手机上),也有可能根本不是安装文件,只是后缀名恰巧符合.
5.无法安装.
一般是因为安装文件制作不正确.

      虽然知道了是上述第二种问题,但不知道怎么会突然变成这样的,一时不知道怎么做了。再google一番,干脆试试手工生成的办法来试试。步骤如下:

      首先,要生成key和cer文件。

      使用命令:D:/Symbian/9.1/S60_3rd_MR_2/Epoc32/tools/makekeys.exe -cert -expdays 7300 -password DefaultPassword -len 2048 -dname "CN=JoeBloggs OR=Acme" key-gen.key cert-gen.cer

      这里的FR1及以下的makekeys是不带 expdays参数的,这个是我单独在http://www3.symbian.com/faq.nsf/AllByDate/0A641D4666011F9C002572250023F01C?OpenDocument上面下载的。

      也可以直接使用Build Phone Release过程中生成的这两个文件。

      然后,就是生成自签名文件了。在Build Phone Release过程中,已经生成了未签名的sis文件,使用命令:D:/Symbian/9.1/S60_3rd_MR_2/Epoc32/tools/signsis.exe -s D:/Symbian/workspace/NetTest/sis/NetTest.sis D:/Symbian/workspace/NetTest/sis/NetTest.sisx cert-gen.cer key-gen.key DefaultPassword

      即可在D:/Symbian/workspace/NetTest/sis/目录下生成sisx。经测试,这样生成的安装文件是可以通过签名检测的。

你可能感兴趣的:(C++,Google,测试,Build,手机,Symbian)