2

我正在尝试使用签名算法为我的应用程序生成有效的密钥库:SH1withRSA。

我从之前生成的密钥库中使用 SHA1 生成了一个 API 密钥,并将 tiapp.xml 设置为使用 Google maps v2:

<manifest android:versionCode="10" android:versionName="1.0">
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
        <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
        <uses-permission android:name="android.permission.CALL_PHONE" />
        <uses-permission android:name="com.vivelabbogota.idutest.permission.MAPS_RECEIVE"/>
        <uses-feature android:glEsVersion="0x00020000" android:required="true"/>
        <permission
            android:name="com.vivelabbogota.idutest.permission.MAPS_RECEIVE" android:protectionLevel="signature"/>
        <application android:debuggable="false">                
            <meta-data
                android:name="com.google.android.geo.API_KEY" android:value="AIzaSyBtJKvPPfpbioLqKVz213JOYDxOpoHCriE"/>
            <uses-library android:required="true"  android:name="com.google.android.maps"/>
        </application>
        <application android:theme="@style/Theme.NoActionBar"/>
        <!-- Need to specify at least API level 11 for Titanium SDK 3.2.x and prior -->
        <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="16"/>
    </manifest>

后来,我用密钥库构建了一个签名的 apk,但是当我安装这个 apk 时,地图没有加载(只显示一个网格)。另一方面,如果我使用默认的 Titanium 密钥库(使用 MD5withRSA 签名)对 apk 进行签名,则地图会加载。

你能帮我解决这个问题吗?

4

2 回答 2

0

我认为您的问题是您对两种不同类型的服务使用相同的 api 密钥,您的地图在调试时加载但不是在发布时加载!您必须知道您必须使用您的密钥库而不是 debug.keystore 生成另一个 SHA1,然后使用您的密钥库 SHA1 在谷歌控制台中生成一个新的 api 密钥。
希望它可以帮助

于 2015-05-01T16:02:03.050 回答
0

在 Google Developers 中,您仅为开发者密钥添加了 SHA1。这就是为什么当您使用分发密钥对其进行签名时它停止工作的原因。只需为您生成的 API 密钥的分发密钥添加 SHA1(是的,您可以为同一个 API 密钥添加多个 SHA1)。这样您就不必更改应用程序中的任何内容,它允许您在开发人员/分发版本之间切换,地图可以随时工作。

于 2016-07-08T12:37:16.943 回答