什么是安卓中的签名,为什么它向我显示错误"the signature is in debug mode"?



有很多免费的安卓应用程序市场,但Mobogenie是真实而强大的安卓应用程序容器,但是当我上传我的安卓.apk文件时,它向我显示一个错误"签名处于调试模式"。

我该如何解决它?

那么安卓中的签名是什么?

签名是一个引擎类,它能够使用已在 Security 类中注册的不同算法来创建和验证数字签名。
首先导入如下..然后尝试以这种方式调试您的方法。

import android.content.pm.Signature;  
import java.security.cert.CertificateException;  
import java.security.cert.X509Certificate; 
private static final X500Principal DEBUG_DN = new X500Principal("CN=Android Debug,O=Android,C=US");  
private boolean isDebuggable(Context ctx)
{ 
boolean debuggable = false;
try
{
    PackageInfo pinfo = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(),PackageManager.GET_SIGNATURES);
    Signature signatures[] = pinfo.signatures;
    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    for ( int i = 0; i < signatures.length;i++)
    {   
        ByteArrayInputStream stream = new ByteArrayInputStream(signatures[i].toByteArray());
        X509Certificate cert = (X509Certificate) cf.generateCertificate(stream);       
        debuggable = cert.getSubjectX500Principal().equals(DEBUG_DN);
        if (debuggable)
            break;
    }
}
catch (NameNotFoundException e)
{
    //debuggable variable will remain false
}
catch (CertificateException e)
{
    //debuggable variable will remain false
}
return debuggable;
}

Android 要求所有应用在安装之前都使用证书进行数字签名。Android 使用此证书来标识应用的作者,并且证书不需要由证书颁发机构签名。Android 应用通常使用自签名证书。应用开发人员持有证书的私钥。

可以在调试或发布模式下对应用进行签名。在开发期间以调试模式对应用进行签名,在准备好分发应用时在发布模式下对应用进行签名。Android SDK 会生成一个证书,用于在调试模式下对应用进行签名。若要在发布模式下对应用进行签名,需要生成自己的证书。

要对您的应用程序进行签名以释放它,请右键单击项目,转到 Android 工具,现在单击导出签名 APK 并按照该过程进行操作,如果是第一次,则必须创建一个新的密钥库并在其中创建一个别名,之后所有过程,Eclipse 将为您提供一个签名的 apk,该 apk 已签名为发布模式, 现在,您必须保存该密钥库文件以供以后使用,例如每当更新apk时,都必须使用相同的文件导出新的更新apk。

干杯-安缦

相关内容

最新更新