Android App上架说明

Android App上架说明

目录

一、App上架所需证件 2

1.1、软件著作权申请 2

1.2、特殊资质证明 2

1.3公司营业执照、税务登记证 2

二、Android主流应用市场上架说明 2

2.1、华为应用市场 2

2.2、小米应用商店 3

2.3Oppo应用商店 3

2.4Vivo应用商店 3

2.5、应用宝 3

2.6Android其他应用市场 4

一、App上架所需证件

1.1、软件著作权申请

参考资料

http://www.ccopyright.com.cn/

http://www.ccopyright.com.cn/index.php?optionid=1079

1.2、特殊资质证明

新闻、直播、广播电视节目、股票、彩票、银行等,部分应用市场需要提交特殊运营资质证明材料,提交审核时候应用市场会有相应提示,根据各大应用市场要求填写即可。

1.3公司营业执照、税务登记证

当注册的开发者账号为企业账号时候,部分市场需要提供者两个证件。注册各大应用市场会有具体要求。

二、Android主流应用市场上架说明

2.1、华为应用市场

华为开发者账号登录注册地址

https://developer.huawei.com/consumer/cn/

华为市场App上架说明

https://developer.huawei.com/consumer/cn/doc/50102

华为应用市场REST API自动化发布应用

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agcapi-overview

2.2、小米应用商店

https://dev.mi.com/console/

小米开发者账号注册

https://dev.mi.com/docs/appsmarket/distribution/account_register/

小米应用商店App上架说明

https://dev.mi.com/docs/appsmarket/distribution/app_submit/

小米应用市场REST API自动化发布应用

https://dev.mi.com/console/doc/detail?pId=33

https://dev.mi.com/console/doc/detail?pId=2352

2.3Oppo应用商店

Oppo开发者账号注册登录地址 OPPO不支持个人发布应用

https://open.oppomobile.com/

2.4Vivo应用商店 VIVO 个人开发者无法注册账号

Vivo开发者账号注册登录地址

https://dev.vivo.com.cn/home

Vivo应用商店App上架说明

https://dev.vivo.com.cn/documentCenter/doc/52

2.5、应用宝

注册开发者账号

https://wiki.open.qq.com/index.php

创建应用

https://wiki.open.qq.com/wiki/%E5%88%9B%E5%BB%BA%E6%96%B0%E5%BA%94%E7%94%A8

应用宝暂时没办法通过 REST API自动化发布应用

2.6Android其他应用市场

360应用市场,百度应用市场、阿里应用分发平台、魅族应用商店。

如何申请软件著作权?

一、关于文件准备

1、请自行浏览中国版权登记门户网 软件著作权登记唯一官方网站 中国版权保护中心网站 中国版权登记门户网 软件著作权登记唯一官方网站 中国版权保护中心网站 基本格式要求按照官网上的要求准备就好了,这个不赘述。

注意需要登陆账号之后,提供实名认证,包括身份证的正反面照片,手持身份证的照片,等待两三天实名审核通过之后才能提交申请。

关于费用问题,目前已经不收费了,这个注意。

继续阅读如何申请软件著作权?

gradle cache目录(.gradle)剖析

gradle下载后会对文件路径进行修饰,本文给出反向解析,把文件路径修改为原始路径的办法。

之所以研究这个,本来的目的是为了让Gradle支持离线编译,但是由于Gradle目录组织的缺陷,如.gradle/caches/modules-2/metadata-2.23(metadata-xx跟使用的gradle版本有关)目录下module-artifacts.bin等bin文件中存的是本机的绝对路径,导致就算将.gradle拷贝给另一台机器,还是需要联网验证。

将gradle的jcenter重定向的方法见我的另一篇文章:[android]gradle下载加速 - 知乎专栏,例如阿里云的jcenter是Index of /repositories/jcenter

我在内网中搭建了jcenter仓库。然而我不想搭建一个大而全的jcenter的仓库,搭建大而全的仓库可以使用nexus来搭建,阿里云也是那么搭的,由于公司的网络需要上网认证,时不时会断一下,所以我的做法是通过利用.gradle目录来创建jcenter仓库。

下面先介绍.gradle目录的组织。

1 .gradle顶级目录

目录| 功能
caches | gradle缓存目录
daemon | daemon日志目录
native | gradle平台相关目录
wrapper | gradle-wrapper下载目录

2 caches目录

目录 | 功能
2.14.1 | gradle程序的脚本(gradle程序版本)
3.2.1 | gradle程序的脚本(gradle程序版本)
jars-1 | ?
jars-2 | ?
modules-2 | 下载缓存目录

2.1 caches/modules-2目录

目录 | 功能
files-2.1 | gradle下载的jar/aar目录
metadata-2.16 | gradle-2.14.1的描述文件?
metadata-2.23 | gradle-3.2.1的描述文件?

2.1.1 files-2.1的目录组织(jar/aar都下载到这里)

例如:

注意:创建jcenter时,对于jar包,可以没有pom,但是如果使用aar,则必须有pom,所以最好是每个版本都有个pom。因为pom中也描述了依赖关系。

3 daemon目录(无需离线)

用于存放gradle daemon的运行日志。按gradle程序版本存放。

目录 | 功能
2.14.1 | gradle-2.14.1运行的日志
3.2.1 | gradle-3.2.1运行的日志

4 native目录(无需离线)

用于存放平台相关(Windows/Linux/Mac)的库。

目录 | 功能
19 | gradle-2.14.1对应的lib目录,按平台存放,如osx-amd64
21 | gradle-3.2.1对应的lib目录,按平台存放,如osx-amd64
jansi | ?

5 wrapper目录

用于存放gradle-wrapper下载gradle的zip包和解压后的文件夹。 
wrapper的目录规则是 
wrapper/dists/gradle-2.14.1-all/${base36}/gradle-2.14.1-all.zip 
wrapper/dists/gradle-2.14.1-all/${base36}/gradle-2.14.1-all.zip.lck 
wrapper/dists/gradle-2.14.1-all/${base36}/gradle-2.14.1-all.zip.ok

其中base36的规则为:

从gradle-wrapper的jar包中提取的Java代码如下:

c++跟java代码见

6. 使用.gradle/caches/modules-2创建jcenter的方法

以下是mirror.sh,我把它放在.gradle目录下。运行脚本会在.gradle目录下生成jcenter目录。把它移走或直接把jcenter目录加入http服务器即可。

目前我的做法是在本地使用gradle编译一次,然后把gradle下载下来的jar/aar/pom全部提交到版本管理,然后由持续集成去拉版本库上的.gradle目录,然后生成jcenter提供给内网编译服务器。

另外,上面提到aar有可能会因为缺失pom导致无法使用,我还写了一个脚本,也是放在.gradle目录下,用于修复aar问题。本地运行时,可以只运行这个脚本,因为它会顺路执行上面的脚本。

以下是fix_aar_cache.sh的内容:

参考链接


debug/release 修改包名,取不同包名下的agconnect-services.json 文件

debug/release 修改包名,取不同包名下的agconnect-services.json 文件 V2 解决每次更换包名,都是要手动删除agconnect-services.json文件操作

问题描述

我在打多渠道包的时候,我需要区分debug版本,release版本,其中涉及到包名的不同,我使用release编译的时候,发现如下错误信息。这个原因是因为你的agconnect-services文件里面含有一个 package_name 参数,这个参数是需要指定包名的,如果 package_name 填写的报名,和目前你所使用的包名没有对应上就会出现这样的错误

修改过程中遇到的错误信息

不是很完美的解决问题

既然是需要区分包名的,我不如直接copy 2份出来,放到src下面,并新建一个类 pushservices 里面存放 debug/release 的类并存放 agconnect-services.json文件,这样我们想使用哪个版本的,就使用哪个版本的

继续阅读debug/release 修改包名,取不同包名下的agconnect-services.json 文件

android使用gradle实现资源自动拷贝

把下面的代码拷贝到module的gradle.build 文件内

继续阅读android使用gradle实现资源自动拷贝