有很多免费的安卓应用程序市场,但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。
干杯-安缦