精华内容
下载资源
问答
  • 无法获取签名信息,请上传有效包(110506)
    千次阅读
    2020-03-17 10:38:09

    此篇文章将要介绍安卓App提交应用商店时遇到的两个小问题的相关介绍,具体代码请看下文

    陆陆续续做了一个半月左右的「喵呜天气」终于在今天下午成功提交到应用商店(腾讯应用宝)。期间遇到两个小问题,记录如下:

    1、上传安装包失败,提示「无法获取签名信息,请上传有效包(110506)」。

    安装包是通过 Android Studio 中的 Build ---> Generate Signed APK... 打包的,选择的是 release 版本。所以,是签过名的。那么,怎么还会出现这种问题呢?

    经过搜索得知 Android Studio 在 2.2 版本新增了打包签名应用时择取 V1 或者 V2 的选项,如图:

     

    V1 是之前版本的打包签名方式,V2 是从 Android 7.0 开始引入的新签名方案。 在安卓官网的文档里,有这样一段话:

     

    注意:如果您使用 APK Signature Scheme v2 签署您的应用,并对应用进行了进一步更改,则应用的签名将无效。出于这个原因,请在使用 APK Signature Scheme v2 签署您的应用之前、而非之后使用 zipalign 等工具。

     

    而我在打包时只勾选了 V2, 故上传安装包时遇到了无法获取签名信息的问题。 如何解决呢?很简单,把 V1 和 V2 都勾上就可以了。

    2、安装包上传完进行加固,加固后提示需重新签名,之前的签名信息因不可抗因素已失效。

    唔,这个问题可如何解决是好?Android Studio 并未提供对未签名的 APK 进行直接签名的

    更多相关内容
  • ffmpeg本身没有支持java的AIP,所以在这里使用java中runtime操作ffmpeg获取视频文件的分辨率、码率、时长等信息,以及自动截图功能。 其中有个java项目、ffmpeg-win32程序包
  • APK解析签名错误!无法获取签名信息,请上传有效包(110506)

    近期在应用市场上传应用过程中,发现一个较为困惑的问题,APP是在Android studio正常流程下打包,突然发现小米市场无法解析签名,导致无法上架,
    原因是应用的minSdkVersion 等于26导致的,最后,进过多次的测试,发现minSdkVersion 在24~26期间,小米平台都无法解析到签名(只测试小米,其他市场暂无测试),Android 7.0后出现的V2签名机制,看来是有一点坑啊!

    minSdkVersion 24~26
    targetSdkVersion 30
    

    小米市场:
    在这里插入图片描述
    应用宝市场:
    在这里插入图片描述
    注:小米外,其他市场暂时没有测试,

    展开全文
  • String): Boolean { // 获取packagemanager val packageManager: PackageManager = App.instance.packageManager // 获取所有已安装程序的包信息 val pinfo: List = packageManager.getInstalledPackages(0) // ...

    1、跳转主流应用市场工具方法

    const val YYB = "com.tencent.android.qqdownloader"
    const val HUAWEI = "com.huawei.appmarket"
    const val XIAOMI = "com.xiaomi.market"
    const val OPPO = "com.oppo.market"
    const val VIVO = "com.bbk.appstore"
    const val SANSUNG="com.sec.android.app.samsungapps"
    
    fun isAppAvailable(packageName: String): Boolean {
        // 获取packagemanager
        val packageManager: PackageManager = App.instance.packageManager
        // 获取所有已安装程序的包信息
        val pinfo: List<PackageInfo> = packageManager.getInstalledPackages(0)
        // 用于存储所有已安装程序的包名
        val pName: MutableList<String> = ArrayList()
        // 从pinfo中将包名字取出
        for (i in pinfo.indices) {
            val pf: String = pinfo[i].packageName
            pName.add(pf)
        }
        // 判断pName中是否有目标程序的包名,有true,没有false
        return pName.contains(packageName)
    }
    
    /**
     * 启动到应用商店app详情界面
     *
     * @param appPkg    目标App的包名
     * @param marketPkg 应用商店包名 ,如果为""则由系统弹出应用商店列表供用户选择,否则调转到目标市场的应用详情界面
     */
    fun launchAppDetail(marketPkg: String?) {
        try {
            val uri: Uri = Uri.parse("market://details?id=com.tencent.mobileqq")
            val intent = Intent(Intent.ACTION_VIEW, uri)
            if (!TextUtils.isEmpty(marketPkg)) {
                intent.setPackage(marketPkg)
            }
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
            App.instance.startActivity(intent)
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }

    2、通过抓取网页版本信息,对比本地,然后更新app

    class UpdateAsyncTask(var context: Context) : AsyncTask<String, Void, String>() {
    
        companion object {
            private const val tencentUrl: String = "https://android.myapp.com/myapp/detail.htm?apkName=cn.com.blackview.dashcam"
            private const val getElementsByClass: String = "pp-comp-extra-p"
        }
    
        override fun doInBackground(vararg params: String): String {
            var version = ""
            kotlin.runCatching {
                val doc = Jsoup.connect(tencentUrl).get()
                val elementsByClass = doc.getElementsByClass(getElementsByClass)
                if (elementsByClass.size > 1) {
                    version = elementsByClass[1].text()
                }
            }.getOrNull()
            return version
            //通过本地接口
    //        var result = ""
    //        kotlin.runCatching {
    //            val url = URL("http://test.blackview4g.com:8910/community/api/appVersion")
    //            val urlConnection = url.openConnection() as HttpURLConnection
    //            val responseCode: Int = urlConnection.responseCode
    //            if (responseCode == HttpURLConnection.HTTP_OK) {
    //                result = readStream(urlConnection.inputStream)
    //            }
    //        }.getOrNull()
    //
    //        return result
    
        }
    
        override fun onPostExecute(s: String) {
            super.onPostExecute(s)
            //版本:4.5.1421115
            kotlin.runCatching {
                val versionCode = s.split(":")[1].split(".")[2].toInt()
                val localVersionCode = App.instance.packageManager.getPackageInfo(App.instance.packageName, 0)
                    .versionName.toString().split(".")[2].toInt()
                Log.e("dd", "localVersionCode:$localVersionCode")
                Log.e("dd", "versionCode:$versionCode")
                if (localVersionCode < versionCode) {
                    if (context is BaseActivity) {
                        if ((context as BaseActivity).isFinishing) {
                            return
                        }
                    }
                    LDDialog.Builder(context)
                        .setTitle(App.instance.resources.getString(R.string.album_note))
                        .setContent(App.instance.resources.getString(R.string.album_note_upgrade_title))
                        .setRightButton(App.instance.resources.getString(R.string.album_confirm))
                        { dialog: IDialog ->
                            dialog.dismiss()
                            setIntent()
                        }
                        .setLeftButton(App.instance.resources.getString(R.string.album_cancel))
                        { dialog: IDialog -> dialog.dismiss() }
                        .show()
                }
            }.getOrNull()
        }
    
        private fun setIntent() {
            when {
                isAppAvailable(YYB) -> {
                    launchAppDetail(YYB)
                }
                isAppAvailable(HUAWEI) -> {
                    launchAppDetail(HUAWEI)
                }
                isAppAvailable(XIAOMI) -> {
                    launchAppDetail(XIAOMI)
                }
                isAppAvailable(OPPO) -> {
                    launchAppDetail(OPPO)
                }
                isAppAvailable(VIVO) -> {
                    launchAppDetail(VIVO)
                }
                else -> {
                    val uri = Uri.parse(tencentUrl)
                    val intent = Intent(Intent.ACTION_VIEW, uri)
                    intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
                    App.instance.startActivity(intent)
                }
            }
        }
    
        private fun readStream(inputStream: InputStream): String {
            var reader: BufferedReader? = null
            val response = StringBuffer()
            try {
                reader = BufferedReader(InputStreamReader(inputStream))
                var line: String?
                while (reader.readLine().also { line = it } != null) {
                    response.append(line)
                }
            } catch (e: IOException) {
                e.printStackTrace()
            } finally {
                if (reader != null) {
                    try {
                        reader.close()
                    } catch (e: IOException) {
                        e.printStackTrace()
                    }
                }
            }
            return response.toString()
        }
    
    }

    展开全文
  • 我在项目测试的时候,使用uniapp真机调试的时候明明可以获取到位置信息,但是在打包后却没有办法拿到位置信息。后来才知道是因为在真机调试的时候,uniapp自带了高德的SDK能够获取位置信息。打包之后要自己去申请...

    1.问题
    我在项目测试的时候,使用uniapp真机调试的时候明明可以获取到位置信息,但是在打包后却没有办法拿到位置信息。后来才知道是因为在真机调试的时候,uniapp自带了高德的SDK能够获取位置信息。打包之后要自己去申请高德或者百度的key。
    2.解决
    在这里我是采用了百度地图的SDK。
    1、先登录百度地图的开发平台 -->点击右上角的控制台 --> 应用管理 -->我的应用 -->创建应用
    在这里插入图片描述
    然后根据提示把内容填写,应用名称可以自己随便填
    2、如何获取发布版SHA1
    这里我采用的是自有证书。根据uniapp官网的流程走下去的(https://ask.dcloud.net.cn/article/35777)
    ①先下载jre
    ②然后使用keytool -genkey命令生成证书:

    keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
    

    ③证书生成以后,可以使用以下命令查看:

    keytool -list -v -keystore test.keystore  
    Enter keystore password: //输入密码,回车
    

    在生成的证书中可以看到自己的SHA1码。
    3、包名
    在HBuilder中,打包的时候
    在这里插入图片描述
    当你这两个全部填写好了以后就会生成一个安全码,提交申请。复制安全码。回到HBuilder这种
    在这里插入图片描述
    然后再app权限配置中,根据参考文档中,定位所需要的权限都勾选起来
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 一、问题背景最近将app上传至华为应用市场时总是拒绝,其中有一条就是:我们发现您的应用提示获取手机存储敏感权限,用户不同意时强制退出应用,请参考审核指南......, 修改建议:请在用户不统一获取手机存储敏感权...
  • 国内上架应用市场,新版本的 Android Studio (白狐之后的版本)出来的包在有的应用市场会出现以上的问题,但是我们自己查看包信息的时候都是有的,这是什么情况呢? 原因 新版本的 Android Studio (白狐之后的版本...
  • 基础资料 本压缩包中的Excel文档提供了所有的物品, 星域, 星座, 星系, NPC空间站资料(最后更新 2020-04-27)下载: db_excel.7z 需要下载这个表格,依据ID查询游戏信息。 2.marketstat 调用地址: ...
  • 在做项目时,用到获取sd卡目录apk的版本,用到了 ...一、应用程序得到自己的版本信息  获取到PackageInfo之后,那么包名,版本号什么的都可以得到  /**  * 得到当前应用版本名称的方法  *  * @param conte
  • 钉钉小程序获取用户信息

    千次阅读 2019-09-29 06:45:29
    钉钉小程序获取用户信息 1、钉钉小程序只允许开发办公类的程序,不能开发娱乐型的程序。 2、钉钉小程序审核需要产品说明书,最大大小不能超过30M(文档)。 3、貌似可以用IP,暂时没有看到有关https的...
  • 人才获取解决方案市场的企业竞争态势 该报告涉及的主要国际市场参与者有Automatic Data Processing, LLC、SAP SE、Ultimate Software Group, Inc.、Linkedin (Microsoft)、Oracle Corporation、Workday、Ceridian ...
  • 1.获取客户端版本号(暂时不知啥用) plus.runtime.getProperty(plus.runtime.appid,(wgtinfo)=>{ console.log(JSON.stringify(wgtinfo));//客户端详情数据 console.log(wgtinfo.version);//应用版本号 }) 2....
  • 第二步:如下图(框起来的信息都要填写完成后,点击下一步) (注意:应用类型分为“测试应用”和“正式应用”,选择后不能进行修改,测试应用不受服务器IP白名单限制,无法发布上架,仅供测试使用。如果选择正式...
  • springboot 链接多数据库,动态获取数据源信息

    千次阅读 热门讨论 2019-04-09 18:12:32
    springboot 链接多数据库,动态获取数据源信息 前言 最近公司有个需求需要后端访问多个数据库,在网上查了半天资料,结果发现大部分都是配置的主从库这种数据源固定的情况,不符合我的需求,假设我们有这样一种...
  • 详细描述:您的应用在用户同意隐私政策前申请获取用户的IMEI、设备ID个人信息/权限。 ­请参考《审核指南》第7.5相关审核要求:https://developer.huawei.com/consumer/cn/doc/50104 ­修改建议:请在用户同意隐私...
  • 通过ip地址获取用户的所在城市信息

    千次阅读 2019-03-29 17:36:43
    通过ip地址获取用户的所在城市信息 最近公司市场部在对推广页面进行地区优化时,提及的一个小的需求,目前公司的推广页面都有自己固定的推广地址,但是怕些许用户损失所以需要根据用户的提交数据时所在的网络进行...
  • Android系统信息获取

    千次阅读 2018-01-04 15:07:40
    类似“安兔兔”的手机跑分软件可以非常清楚地检查手机系统的配置信息和软硬件信息,下面我们就来看看如何获取这些信息。  要获取系统的配置信息,通常可以从以下两个方面获取。 android.os.BuildSystemPrope
  • Android:获取应用基本信息

    千次阅读 2017-04-15 20:25:43
    对于应用管理或者应用市场类的平台,一定需要统计应用的各种基本信息,以便对应用进行审核和管理。主要的基本信息包括应用名称、icon图标、版本号、包名、权限、so库、签名摘要信息等。本文介绍两种获取应用基本信息...
  • 获取安卓apk的版本信息的两种方法

    千次阅读 2018-09-26 10:46:37
    (1)首先需要获取到该应用(如微信)的package包名: adb shell dumpsys window w | findstr \/ | findstr name= adb shell dumpsys package com.tencent.mm | findstr versionCode 查看微信的versionCode信息 ...
  • uniapp支持增量更新,想要支持热更新就需要存储权限,但是wgt热更新是应用市场不乐见的。 解决方案 在manifest.json中打开源码视图,在‘distribute’下添加 "permissionPhoneState" : { "request" :
  • Android 菜市场上有一款应用较 ShareApp,可以显示,管理,分享Android手机上安装的应用。 但比较不爽的是,它把很多系统自带的应用程序也都显示了出来。这些程序往往是无法卸
  • 此篇文章将要介绍安卓App提交应用商店时遇到的两个小问题的相关...1、上传安装包失败,提示「无法获取签名信息,请上传有效包(110506)」。 安装包是通过 Android Studio 中的 Build ---&gt; Generate Signe...
  • Android 获取jks签名信息

    千次阅读 2017-11-01 19:25:46
    在各大App市场审核上架的时候,都需要App的签名信息,在创建了jks文件之后,能够获取到jks对应的sha1 ,MD5等信息也是必须的,在AS的Teminal面板操作,输入keytool -exportcert -list -v -keystore D:\keystore.jks ...
  • 简而言之,其原理就是使用两个平行的相机,对空间中的每个点三角定位。通过匹配左右两个相机中成像点的位置,来计算对应三...但是其真正在消费电子品市场得到广泛应用还是从微软的Kinect体感传感器开始。  双目测距:
  • h5+app Android上架华为应用市场被拒原因"拒绝获取手机权限后app会闪退" 华为应用市场报错:拒绝获取手机权限后app会闪退,此问题解决方案如下: 在manifest.json文件里的"distribute"节点下的"google"节点下增加...
  • 职场java开发菜鸟一枚,最近有一个需求,想要从手机自带的应用商店中获取某一款APP的评论信息,比如评分、评分内容、评论时间信息。后期可以做成通用性比较强的功能,比如可以获取小米、华为、OPPO...手机应用商店的...
  • python 爬取手机app的信息

    千次阅读 2020-06-28 23:11:14
    然后在Fidder中可以找到如下这个包: 然后在右侧可以看到如下信息: 把这些信息复制一下,然后解码一下就可以看到如下数据了,包括英雄名字、英雄图片、英雄技能等信息: 但是在推荐装备的信息里,只有装备的id值,...
  • python爬虫 获取华为应用商店app信息

    千次阅读 2018-11-19 22:27:55
    应用名称 获取方法如下,其他的几个信息如此类推: name=s2.xpath(’//*[@id=“bodyonline”]/div/div[4]/div[1]/div/div/div[1]/ul[1]/li[2]/p[1]/span[1]/text()’)[0] app的下载地址获取方法比较特别, ...
  • 为什么所有APP都想获取你的定位?

    万次阅读 多人点赞 2021-04-09 10:44:28
    进入“个人信息保护指引”,在关于“位置功能”的解释中,知乎是这样说的: “当您开启与位置有关的功能,例如发布带有位置信息的内容,我们在您开启设备定位权限后将获取设备的位置信息。为向您推送与您所在位置...
  • 推荐指数:★★★★ 网站界面: 3、艾瑞咨询 介绍:豆丁报告网为中国企业提供各行业的行业分析报告、行业研究报告、市场调查报告、行业调研报告、市场研究分析报告等产品和服务。 评价:这个网站大多数的报告都能看...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 176,178
精华内容 70,471
关键字:

如何获取市场信息