Android签名的APK无法进行API调用

问题描述 投票:0回答:4

我们的应用程序在进行 API 调用时开始挂起,尽管几个月没有在生产环境中进行更新。我们可以使用应用程序的 Play 商店版本或通过创建本地构建的 APK 文件并对其进行签名来复制该问题。但是,我们无法在浏览器或本地构建的未签名 APK 文件上复制该问题。如果我们执行一个进行 API 调用的操作,然后离开应用程序几分钟,我们会看到一条“应用程序没有响应”消息,即使您仍然可以在应用程序中导航。

有什么方法可以解决此问题或查看导致应用程序无响应的原因吗?我尝试查看网络/调试选项卡,但这在签名设备上似乎不可能。

# Generate Key
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000


# Sign the APK
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name
android cordova ionic-framework ionic-cordova
4个回答
3
投票

我在这个问题中发布的问题与我在here发布的问题/解决方案相同。这个问题只是以不同的方式呈现,具体取决于应用程序的构建方式。为了清楚起见,我复制了下面其他问题的解决方案:

我们找到了解决方案。从不同的源服务器颁发证书就可以了。据我所知,证书、根证书和中间证书都是有效的。无论出于何种原因,Android 应用程序都不接受有效的证书。据我所知,这可能是由于中间证书过期或 Cordova 使用旧版本的 BoringSSL 导致的。

如果有人在生产/发布版本中遇到此问题,请进入 Android Manifest 文件并将 Debuggable 设置为 true。这个问题应该消失。然后,使用 debuggable false 重新运行生产/发布版本,问题应该会再次出现。将生产/发布版本保持为可调试 false 并将 android:usesCleartextTraffic 设置为 true。这个问题应该会再次消失。如果您得到相同的结果,则可能会遇到类似的问题,即应用程序不接受证书(或者您使用的是 HTTP 而不是 HTTPS),而新证书可能会解决该问题。

<application android:debuggable="true"android:usesCleartextTraffic="true">

0
投票

您是否在 gradle 中启用了 proguard

shrinkResources
modifiable
? 如果是,那么你必须为你的模型类添加混淆规则


0
投票

检查清单中的互联网权限

示例:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.dc.filetracker">
    <uses-permission android:name="android.permission.INTERNET" />

    <application android:label="File Tracker" android:name="${applicationName}" android:icon="@mipmap/ic_launcher"

        android:usesCleartextTraffic="true"
        >

0
投票
In Ionic new version you need to go to manifest.xml under android and simply add android:usesCleartextTraffic="true" like this.
Also, if you are working in test mode and using http or https for API call you need to define the same in capacitor.config.ts file . Where you need to add http or https for androidScheme property.

 webDir: 'www',
  server: {
    androidScheme: 'http',
  }
<application android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:usesCleartextTraffic="true">

</application>
© www.soinside.com 2019 - 2024. All rights reserved.