App 开发完整指南:Android、iPhone/iOS、跨平台开发与 Android 应用从申请到上线全流程
适合对象:前端开发工程师、移动端初学者、独立开发者、准备开发并上架 Android App / iPhone App 的开发者。
更新时间:2026 年 6 月。
说明:本文把 App 开发基础知识、Android 原生开发、iPhone/iOS 原生开发、跨平台开发、完整项目流程、Android 应用从申请到上线流程、常见审核问题与解决方案、官方资源链接 全部整合到一起。
注意:应用市场规则会持续变化,正式提交前请以各平台最新官方文档为准。
目录
[一、App 开发到底是什么](#一、App 开发到底是什么)
[二、Android App 开发详细讲解](#二、Android App 开发详细讲解)
[三、iPhone / iOS App 开发详细讲解](#三、iPhone / iOS App 开发详细讲解)
[四、Android 和 iPhone App 的区别](#四、Android 和 iPhone App 的区别)
[五、跨平台 App 开发方案](#五、跨平台 App 开发方案)
[六、前端开发者怎么选择 App 技术路线](#六、前端开发者怎么选择 App 技术路线)
[七、App 开发完整流程](#七、App 开发完整流程)
[八、App 项目必须掌握的核心模块](#八、App 项目必须掌握的核心模块)
[九、实际项目案例:商城 App](#九、实际项目案例:商城 App)
[十、Android 应用从申请到上线完整流程](#十、Android 应用从申请到上线完整流程)
十一、上线前资料准备
十二、开发者账号申请流程
[十三、APP 备案、软著、隐私政策与资质准备](#十三、APP 备案、软著、隐私政策与资质准备)
[十四、Android 项目打包前检查](#十四、Android 项目打包前检查)
[十五、签名、APK、AAB 详细讲解](#十五、签名、APK、AAB 详细讲解)
[十六、Google Play 上架完整流程](#十六、Google Play 上架完整流程)
十七、国内安卓应用市场上架流程
十八、审核常见问题与解决方案
十九、上线后的版本更新流程
二十、上线前检查清单
二十一、官方资源和文档链接表
二十二、推荐学习路线
二十三、总结建议
一、App 开发到底是什么
App 开发就是为手机、平板、车机、手表等移动设备开发应用程序。
常见 App 类型包括:
类型
平台
常用技术
Android App
小米、华为、OPPO、vivo、三星、Pixel 等 Android 设备
Kotlin、Java、Jetpack Compose、Android Studio
iPhone App / iOS App
iPhone、iPad
Swift、SwiftUI、UIKit、Xcode
跨平台 App
一套代码同时打包 Android 和 iOS
Flutter、React Native、uni-app、Kotlin Multiplatform
H5 App / Hybrid App
App 内嵌 Web 页面
WebView、Vue、React、JavaScript
小程序类应用
微信、支付宝、抖音、百度、快应用等
小程序框架、uni-app、Taro
1. 原生 App
原生 App 是分别使用 Android 和 iOS 官方技术开发。
text
复制代码
Android:Kotlin / Java + Android Studio
iOS:Swift / Objective-C + Xcode
优点:
text
复制代码
性能最好
系统能力支持最完整
用户体验更接近系统原生
适合大型复杂项目
适合需要深度调用相机、蓝牙、定位、支付、推送等能力的项目
缺点:
text
复制代码
Android 和 iOS 要写两套代码
开发成本更高
团队要求更高
维护成本更高
2. 跨平台 App
跨平台 App 是用一套代码同时开发 Android 和 iOS。
常见方案:
text
复制代码
Flutter
React Native
uni-app
Kotlin Multiplatform
Taro
Ionic
优点:
text
复制代码
一套代码多端运行
开发效率高
适合中小团队
适合前端开发者快速转移动端
缺点:
text
复制代码
部分原生能力仍需要写插件
复杂性能优化难度较高
某些平台差异仍需要单独适配
3. Hybrid App
Hybrid App 是原生壳 + WebView 页面。
常见结构:
text
复制代码
原生 App 外壳
+
WebView 加载 H5 页面
适合:
text
复制代码
活动页
营销页
内容展示页
企业内部应用
快速迭代页面
不适合:
text
复制代码
高性能动画
复杂视频处理
大型游戏
重度原生交互
二、Android App 开发详细讲解
1. Android App 用什么开发
Android 官方推荐现代开发方式:
text
复制代码
Kotlin + Jetpack Compose + Android Studio
也可以使用传统方式:
text
复制代码
Java / Kotlin + XML 布局 + Android View 系统
2. Android 推荐技术栈
模块
推荐选择
说明
编程语言
Kotlin
Android 官方主推语言,语法现代
兼容语言
Java
老项目仍大量使用
开发工具
Android Studio
官方 IDE
UI 开发
Jetpack Compose
声明式 UI,类似 React / Vue 思想
传统 UI
XML + View
老项目和部分复杂场景仍常用
架构
MVVM / Clean Architecture
企业项目常见架构
状态管理
ViewModel + StateFlow
管理页面数据和状态
网络请求
Retrofit + OkHttp
Android 常用网络请求方案
JSON 解析
Kotlinx Serialization / Gson / Moshi
解析后端接口数据
本地数据库
Room / SQLite
本地数据存储
简单存储
DataStore / SharedPreferences
保存 token、设置项
图片加载
Coil / Glide
加载网络图片
异步处理
Kotlin Coroutine / Flow
协程和响应式流
依赖注入
Hilt / Koin
管理对象依赖
分页
Paging 3
列表分页
导航
Navigation Compose
页面跳转
打包格式
APK / AAB
APK 适合国内市场,AAB 适合 Google Play
发布平台
Google Play / 国内应用市场
应用分发
3. Android Studio 是什么
Android Studio 是 Google 官方 Android 开发工具,用来:
text
复制代码
创建项目
编写 Kotlin / Java 代码
设计 UI 页面
运行模拟器
连接真机调试
查看日志
性能分析
打包 APK / AAB
上传和发布应用
官方文档:
Android Studio 官方下载与文档
4. Kotlin 是什么
Kotlin 是 Android 官方推荐的现代编程语言。
简单示例:
kotlin
复制代码
val name = "张三"
var age = 18
fun sayHello() {
println("你好,$name")
}
Kotlin 的特点:
text
复制代码
语法简洁
空安全
支持函数式编程
和 Java 互通
适合 Android 现代开发
5. Activity 是什么
Activity 可以理解为 Android 中的一个页面入口。
示例:
kotlin
复制代码
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text("你好,Android App")
}
}
}
传统理解:
text
复制代码
一个 Activity 可以代表一个页面
一个 App 可以有多个 Activity
现在 Compose 项目中,也可以一个 Activity 管理多个页面
6. Jetpack Compose 是什么
Jetpack Compose 是 Android 的现代声明式 UI 工具包。
官方文档:
Jetpack Compose 官方文档
Compose 入门文档
Compose 和前端框架思想很像。
Vue 写法:
vue
复制代码
Compose 写法:
kotlin
复制代码
@Composable
fun HomePage() {
Text(text = "首页")
}
核心思想:
text
复制代码
UI = 状态的函数
状态变化
↓
界面自动更新
这和 React / Vue 的响应式 UI 思想非常接近。
7. Compose 常用组件
组件
作用
Text
文本
Button
按钮
TextField
输入框
Image
图片
Column
垂直布局
Row
水平布局
Box
层叠布局
LazyColumn
长列表
LazyRow
横向列表
Scaffold
页面基础结构
TopAppBar
顶部导航栏
BottomNavigation
底部导航
Card
卡片
Dialog
弹窗
Snackbar
提示条
8. Compose 登录页示例
kotlin
复制代码
@Composable
fun LoginPage() {
var phone by remember { mutableStateOf("") }
var password by remember { mutableStateOf("") }
Column(
modifier = Modifier.padding(24.dp),
verticalArrangement = Arrangement.spacedBy(16.dp)
) {
Text(
text = "登录",
fontSize = 28.sp,
fontWeight = FontWeight.Bold
)
TextField(
value = phone,
onValueChange = { phone = it },
label = { Text("请输入手机号") }
)
TextField(
value = password,
onValueChange = { password = it },
label = { Text("请输入密码") },
visualTransformation = PasswordVisualTransformation()
)
Button(
onClick = {
// 点击登录,调用接口
},
modifier = Modifier.fillMaxWidth()
) {
Text("登录")
}
}
}
9. Android 项目结构
常见项目结构:
text
复制代码
app/
├── src/
│ ├── main/
│ │ ├── java/com/example/app/
│ │ │ ├── ui/ // 页面和组件
│ │ │ ├── viewmodel/ // ViewModel 状态管理
│ │ │ ├── data/ // 数据层
│ │ │ ├── network/ // 网络请求
│ │ │ ├── repository/ // 数据仓库
│ │ │ ├── model/ // 数据模型
│ │ │ └── MainActivity.kt // 入口 Activity
│ │ ├── res/ // 图片、图标、颜色、字体
│ │ └── AndroidManifest.xml // App 配置文件
├── build.gradle.kts
└── proguard-rules.pro
更规范的企业项目结构:
text
复制代码
com.example.mall/
├── app/
├── core/
│ ├── network/
│ ├── database/
│ ├── common/
│ └── design/
├── feature/
│ ├── login/
│ ├── home/
│ ├── goods/
│ ├── cart/
│ └── profile/
└── data/
├── repository/
├── model/
└── datasource/
10. Android 常见架构:MVVM
MVVM 分为:
层
作用
Model
数据模型,例如用户、商品、订单
View
页面 UI,例如登录页、首页、详情页
ViewModel
管理页面状态和业务逻辑
流程:
text
复制代码
用户点击按钮
↓
UI 调用 ViewModel
↓
ViewModel 调用 Repository
↓
Repository 调用接口 / 数据库
↓
返回数据
↓
ViewModel 更新状态
↓
UI 自动刷新
示例:
kotlin
复制代码
class LoginViewModel : ViewModel() {
var phone by mutableStateOf("")
var password by mutableStateOf("")
var loading by mutableStateOf(false)
fun login() {
loading = true
// 这里通常会调用 Repository
// repository.login(phone, password)
}
}
11. Android 网络请求
常用技术:
text
复制代码
Retrofit
OkHttp
Kotlin Coroutine
Flow
示例:
kotlin
复制代码
interface ApiService {
@POST("login")
suspend fun login(@Body body: LoginRequest): LoginResponse
}
data class LoginRequest(
val phone: String,
val password: String
)
data class LoginResponse(
val token: String,
val userName: String
)
12. Android 本地存储
类型
技术
适合存什么
简单键值
DataStore / SharedPreferences
token、主题、语言
数据库
Room / SQLite
聊天记录、商品缓存、离线数据
文件
File API
图片、视频、下载文件
安全存储
Android Keystore
密钥、敏感 token
13. Android 权限
常见权限:
权限
用途
CAMERA
拍照、扫码
ACCESS_FINE_LOCATION
精准定位
ACCESS_COARSE_LOCATION
模糊定位
RECORD_AUDIO
录音、语音
READ_MEDIA_IMAGES
读取图片
READ_MEDIA_VIDEO
读取视频
POST_NOTIFICATIONS
通知
BLUETOOTH_CONNECT
蓝牙连接
INTERNET
网络访问
权限原则:
text
复制代码
能不用就不用
能少申请就少申请
用户触发功能时再申请
申请前说明用途
隐私政策中写清楚权限用途
三、iPhone / iOS App 开发详细讲解
1. iPhone App 用什么开发
iPhone App 主要使用:
text
复制代码
Swift + SwiftUI + Xcode
传统项目也可能使用:
text
复制代码
Objective-C + UIKit
Swift + UIKit
官方文档:
Xcode 官方文档
SwiftUI 官方文档
Swift 官方文档
2. iOS 推荐技术栈
模块
推荐选择
说明
编程语言
Swift
Apple 现代开发语言
开发工具
Xcode
Apple 官方 IDE
UI 框架
SwiftUI
声明式 UI
传统 UI
UIKit
老项目和复杂 UI 仍常用
架构
MVVM / MVC / Clean Architecture
iOS 常见架构
网络请求
URLSession / Alamofire
接口请求
本地存储
UserDefaults / Core Data / SQLite
本地数据
安全存储
Keychain
密码、token
图片加载
AsyncImage / SDWebImage
图片加载
测试
XCTest / TestFlight
单元测试和内测
发布
App Store Connect
上架 App Store
3. Swift 是什么
Swift 是 Apple 推出的现代编程语言,可以开发:
text
复制代码
iOS App
iPadOS App
macOS App
watchOS App
tvOS App
visionOS App
Swift 示例:
swift
复制代码
let name = "张三"
var age = 18
func sayHello() {
print("你好,\(name)")
}
特点:
text
复制代码
语法简洁
类型安全
性能好
生态完整
适合 Apple 全平台开发
4. SwiftUI 是什么
SwiftUI 是 Apple 的声明式 UI 框架。
示例:
swift
复制代码
import SwiftUI
struct ContentView: View {
var body: some View {
Text("你好,iPhone App")
.font(.title)
.padding()
}
}
可以把 struct ContentView: View 理解成一个前端组件。
SwiftUI 也符合:
text
复制代码
数据变化
↓
界面自动变化
这和 Vue / React 的思路很接近。
5. SwiftUI 常用组件
组件
作用
Text
文本
Button
按钮
TextField
输入框
SecureField
密码输入框
Image
图片
VStack
垂直布局
HStack
水平布局
ZStack
层叠布局
List
列表
NavigationStack
页面导航
TabView
底部 Tab
Form
表单
Sheet
弹出页面
Alert
提示框
6. SwiftUI 登录页示例
swift
复制代码
import SwiftUI
struct LoginView: View {
@State private var phone = ""
@State private var password = ""
var body: some View {
VStack(spacing: 20) {
Text("登录")
.font(.largeTitle)
.bold()
TextField("请输入手机号", text: $phone)
.textFieldStyle(.roundedBorder)
SecureField("请输入密码", text: $password)
.textFieldStyle(.roundedBorder)
Button("登录") {
// 调用登录接口
}
.buttonStyle(.borderedProminent)
}
.padding()
}
}
7. iOS 项目结构
常见项目结构:
text
复制代码
MyApp/
├── App/
│ └── MyAppApp.swift // App 入口
├── Views/
│ ├── HomeView.swift // 首页
│ ├── LoginView.swift // 登录页
│ └── ProfileView.swift // 个人中心
├── ViewModels/
│ └── LoginViewModel.swift // 页面逻辑
├── Models/
│ └── User.swift // 数据模型
├── Services/
│ └── APIService.swift // 网络请求
├── Assets.xcassets // 图片、图标、颜色
└── Info.plist // App 配置
8. iOS 网络请求
使用 URLSession:
swift
复制代码
let url = URL(string: "https://api.example.com/login")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let error = error {
print("请求失败:\(error)")
return
}
if let data = data {
print("请求成功:\(data)")
}
}
task.resume()
9. iOS 本地存储
类型
技术
用途
简单存储
UserDefaults
token、设置、开关
数据库
Core Data / SQLite
离线数据、复杂对象
文件
FileManager
图片、文件缓存
安全存储
Keychain
密码、token、敏感信息
10. iOS 权限
iOS 权限必须在 Info.plist 中说明用途。
常见权限:
权限
用途
Camera
拍照、扫码
Photo Library
相册
Location
定位
Microphone
麦克风
Bluetooth
蓝牙
Push Notifications
推送
Contacts
通讯录
权限文案必须明确,不要写得太模糊。
例如:
text
复制代码
错误:需要使用相机
正确:用于扫码登录、拍摄头像和上传资料图片
11. iOS 上架简要流程
iPhone App 上架主要通过 App Store Connect。
官方资源:
App Store Connect
Submitting apps to the App Store
TestFlight 官方说明
流程:
text
复制代码
注册 Apple Developer Program
↓
创建 App ID
↓
配置证书和描述文件
↓
Xcode Archive 打包
↓
上传 App Store Connect
↓
TestFlight 测试
↓
填写 App 信息、截图、隐私说明
↓
提交审核
↓
审核通过后发布
四、Android 和 iPhone App 的区别
对比项
Android App
iPhone / iOS App
系统
Android
iOS / iPadOS
语言
Kotlin / Java
Swift / Objective-C
工具
Android Studio
Xcode
UI 框架
Jetpack Compose / XML
SwiftUI / UIKit
设备适配
品牌多、尺寸多、系统版本复杂
设备较少、生态统一
应用发布
Google Play + 国内各大应用商店
App Store
审核
Google Play 和国内市场规则不同
App Store 审核严格
难点
机型适配、权限、厂商差异、备案、软著
证书、签名、审核、订阅内购
打包格式
APK / AAB
IPA
推送
FCM / 厂商推送
APNs
支付
Google Play Billing / 微信 / 支付宝
Apple IAP / Apple Pay
开发成本
设备碎片化成本高
审核和证书管理要求高
五、跨平台 App 开发方案
1. Flutter
Flutter 是 Google 推出的跨平台 UI 框架,使用 Dart 语言。
官方文档:
Flutter 官网
Flutter 官方文档
Dart 官方文档
适合:
场景
是否推荐
企业 App
推荐
电商 App
推荐
工具类 App
推荐
动效复杂 App
推荐
需要多端统一 UI
推荐
高性能复杂项目
推荐
大量调用系统底层能力
中等,需要写原生插件
Flutter 示例:
dart
复制代码
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: Scaffold(
body: Center(
child: Text("你好,Flutter App"),
),
),
);
}
}
2. React Native
React Native 适合已经会 React 的前端开发者。
官方文档:
React Native 官网
React Native 入门文档
React Native 环境搭建
适合:
场景
是否推荐
前端团队开发 App
非常推荐
已经会 React
非常推荐
快速开发 MVP
推荐
中后台移动端
推荐
商城、资讯、社区类 App
推荐
大型高性能游戏
不推荐
对原生能力依赖很深
谨慎
React Native 示例:
jsx
复制代码
import React from 'react';
import { View, Text, Button, Alert } from 'react-native';
export default function App() {
return (
);
}
3. uni-app
uni-app 更适合国内生态,尤其适合 Vue 开发者。
官方文档:
uni-app 官方文档
适合:
场景
是否推荐
小程序
非常推荐
H5
推荐
简单 App
推荐
企业内部应用
推荐
快速开发多端业务
推荐
高性能复杂 App
不优先推荐
4. Kotlin Multiplatform
Kotlin Multiplatform 更适合共享业务逻辑,而不是简单理解为"一套 UI 到处跑"。
常见结构:
text
复制代码
共享层:Kotlin 写接口、数据模型、业务逻辑
Android UI:Jetpack Compose
iOS UI:SwiftUI
适合:
text
复制代码
大型团队
原生团队
希望共享业务逻辑
同时保持 Android / iOS 原生体验
5. 跨平台方案对比
方案
语言
优点
缺点
适合人群
Flutter
Dart
UI 表现强,性能好,跨端统一
要学 Dart,原生插件有门槛
想做高质量跨平台
React Native
JS / TS
前端友好,React 生态
原生依赖和版本问题较多
React 前端
uni-app
Vue
国内生态好,小程序友好
高复杂 App 性能一般
Vue 前端
Kotlin Multiplatform
Kotlin
共享业务逻辑,原生体验好
学习成本高
原生团队
Hybrid WebView
HTML/CSS/JS
迭代快
性能和体验受限制
活动页、内容页
六、前端开发者怎么选择 App 技术路线
如果你是前端开发工程师,可以这样选:
目标
推荐技术
快速做 App
React Native / uni-app
想做高质量跨平台 App
Flutter
已经会 Vue
uni-app
已经会 React
React Native
想深入 Android 原生
Kotlin + Jetpack Compose
想深入 iPhone 原生
Swift + SwiftUI
想找移动端原生岗位
Kotlin + Swift
想自己独立开发产品
Flutter / React Native
想做国内小程序 + App
uni-app
想做复杂系统能力
原生 Android / iOS
推荐学习顺序:
text
复制代码
第一阶段:先理解 App 开发流程
第二阶段:选 React Native / Flutter / uni-app 之一入门
第三阶段:做一个完整项目
第四阶段:学习 Android 打包、签名、权限、上架
第五阶段:补 Android / iOS 原生能力
七、App 开发完整流程
一个完整 App 通常按这个流程开发:
text
复制代码
1. 需求分析
2. 原型设计
3. UI 设计
4. 技术选型
5. 搭建项目
6. 开发页面
7. 封装网络请求
8. 登录注册
9. 状态管理
10. 本地存储
11. 权限处理
12. 接入推送 / 支付 / 地图 / 相机
13. 真机测试
14. 性能优化
15. 打包
16. 应用市场上架
17. 后续版本迭代
1. 需求分析
需要明确:
text
复制代码
App 是给谁用
解决什么问题
核心功能有哪些
是否需要登录
是否需要支付
是否需要定位
是否需要推送
是否需要后台管理系统
是否需要 iOS 和 Android 双端
是否要上架国内市场或 Google Play
2. 原型设计
常用工具:
工具
用途
链接
Figma
UI / 原型设计
打开链接
墨刀
产品原型
打开链接
即时设计
国产 UI 设计工具
打开链接
Axure
专业原型工具
打开链接
3. UI 设计
需要准备:
text
复制代码
App 图标
启动图
首页设计
登录页
列表页
详情页
个人中心
空状态页面
错误状态页面
加载状态
深色模式适配
4. 技术开发
要完成:
text
复制代码
搭建项目
配置路由
封装请求
封装组件
接入状态管理
开发业务页面
联调接口
处理权限
接入第三方 SDK
5. 测试
测试类型:
类型
说明
功能测试
功能是否正常
兼容测试
不同手机、系统版本是否正常
UI 测试
页面是否错位
弱网测试
网络差时是否可用
权限测试
拒绝权限后是否崩溃
登录测试
token 过期、退出登录、重复登录
支付测试
支付成功、失败、取消
性能测试
启动速度、列表滑动、内存占用
安全测试
敏感数据、接口、日志
八、App 项目必须掌握的核心模块
1. 页面开发
常见页面:
页面
功能
启动页
展示 Logo、初始化配置
引导页
新用户引导
登录页
手机号、验证码、密码登录
注册页
用户注册、协议勾选
首页
Banner、列表、分类、推荐
搜索页
搜索记录、热门搜索
列表页
分页、刷新、筛选
详情页
商品、文章、视频详情
个人中心
用户信息、订单、设置
设置页
清除缓存、隐私政策、退出登录
2. 路由导航
App 也有"路由"。
前端中:
text
复制代码
/login
/home
/detail/1
App 中:
text
复制代码
LoginScreen
HomeScreen
DetailScreen
ProfileScreen
常见导航方式:
类型
说明
栈导航
页面一层一层打开
Tab 导航
底部首页、分类、消息、我的
抽屉导航
左侧菜单
Modal
弹窗页面
Deep Link
外部链接打开 App 指定页面
3. 网络请求
App 和后端接口交互,例如:
text
复制代码
POST /api/login
GET /api/user/info
GET /api/goods/list
GET /api/goods/detail
POST /api/order/create
POST /api/upload/avatar
要封装:
text
复制代码
baseURL
请求头
token
请求拦截器
响应拦截器
错误统一处理
登录过期处理
loading
重试
超时
4. 登录注册
常见登录方式:
方式
说明
手机号 + 验证码
国内常见
账号 + 密码
传统方式
微信登录
国内常见
Apple 登录
iOS 常见
Google 登录
海外常见
Token 登录
前后端分离常见
登录流程:
text
复制代码
用户输入账号密码
↓
请求登录接口
↓
后端返回 token
↓
App 保存 token
↓
后续接口请求携带 token
↓
token 过期后重新登录或刷新 token
5. 本地存储
类型
Android
iOS
用途
简单存储
DataStore / SharedPreferences
UserDefaults
token、设置
数据库
Room / SQLite
Core Data / SQLite
聊天记录、离线数据
文件存储
File
FileManager
图片、缓存文件
安全存储
Keystore
Keychain
密码、敏感 token
6. 权限处理
App 经常需要申请权限:
权限
用途
相机
拍照、扫码
相册
选择图片
定位
地图、附近门店
麦克风
录音、语音通话
蓝牙
设备连接
通知
消息推送
文件
上传、下载
关键原则:
text
复制代码
不要一启动就申请所有权限
在用户使用对应功能时再申请
拒绝权限后给出友好提示
隐私政策中说明权限用途
7. 推送通知
常见推送服务:
平台
推送服务
Android 海外
Firebase Cloud Messaging
Android 国内
华为推送、小米推送、OPPO 推送、vivo 推送
iOS
APNs
第三方聚合
极光推送、个推、友盟
使用场景:
text
复制代码
订单提醒
聊天消息
活动通知
系统公告
物流更新
课程提醒
8. 支付功能
常见支付方式:
地区 / 平台
支付方式
国内 Android
微信支付、支付宝
iOS 虚拟商品
Apple In-App Purchase
Android 海外
Google Play Billing
海外
Stripe、PayPal
注意:
text
复制代码
iOS 上卖会员、虚拟币、课程、数字内容等,通常要遵守 Apple 内购规则。
Android 上架 Google Play 时,数字商品通常要遵守 Google Play Billing 规则。
国内支付需要企业资质、商户号、支付回调、订单系统。
9. 图片、文件上传
常见流程:
text
复制代码
用户选择图片
↓
申请相册 / 相机权限
↓
压缩图片
↓
上传到服务器或对象存储
↓
服务器返回 URL
↓
保存到业务数据中
常见问题:
问题
解决方案
图片太大
上传前压缩
上传失败
增加重试和错误提示
权限被拒
引导用户去系统设置打开
Android 版本兼容问题
适配系统文件选择器和 Photo Picker
10. WebView
WebView 用来在 App 中加载 H5 页面。
适合:
text
复制代码
活动页
协议页
帮助中心
文章详情
营销落地页
注意:
text
复制代码
不要把核心复杂功能全部塞进 WebView
注意 JSBridge 安全
注意 H5 页面移动端适配
注意 HTTPS
注意返回键处理
九、实际项目案例:商城 App
一个商城 App 通常包含:
text
复制代码
首页
分类页
商品列表
商品详情
购物车
登录注册
个人中心
订单列表
支付
地址管理
搜索
收藏
消息通知
售后
优惠券
1. 页面模块拆分
模块
功能
首页
Banner、推荐商品、活动入口
分类
一级分类、二级分类
商品列表
分页、筛选、排序
商品详情
图片轮播、价格、规格、评价
购物车
加减数量、选择商品、结算
登录
手机号、验证码、token
订单
创建订单、支付、取消订单
地址
新增、编辑、删除收货地址
个人中心
用户信息、设置、退出登录
搜索
搜索历史、热门搜索、搜索结果
消息
订单通知、系统通知
2. 技术模块拆分
模块
内容
请求封装
baseURL、token、错误处理
路由导航
首页、详情、登录拦截
状态管理
用户信息、购物车、主题
本地存储
token、搜索记录、缓存
权限处理
相机、相册、通知
支付接入
微信、支付宝、Google Pay、Apple IAP
推送接入
订单提醒、活动消息
性能优化
图片压缩、列表分页、缓存
异常监控
崩溃日志、接口错误
3. 商城 App 登录拦截逻辑
text
复制代码
用户点击购物车 / 下单 / 个人中心
↓
判断本地是否有 token
↓
有 token:进入页面
↓
无 token:跳转登录页
↓
登录成功后返回原页面
十、Android 应用从申请到上线完整流程
Android 应用上线不是简单地"打个 APK 上传"。完整流程包括:
text
复制代码
开发完成
↓
真机测试
↓
隐私合规检查
↓
准备应用资料
↓
准备 APP 备案 / 软著 / 特殊资质
↓
生成正式签名包
↓
注册开发者账号
↓
创建应用
↓
上传 APK / AAB
↓
填写应用信息
↓
填写权限、隐私、数据安全说明
↓
提交审核
↓
处理驳回问题
↓
审核通过
↓
正式上线
↓
监控崩溃、评论和数据
↓
版本迭代
1. Android 应用上线常见平台
平台
包格式
特点
Google Play
AAB
海外主流,规则标准化
华为应用市场
APK
国内主流渠道之一
小米应用商店
APK
小米 / Redmi 用户
OPPO 软件商店
APK
OPPO / 一加用户
vivo 应用商店
APK
vivo / iQOO 用户
应用宝
APK
腾讯系渠道
官网下载
APK
自主分发
企业内部分发
APK
企业内部使用
2. Google Play 和国内安卓市场差异
对比项
Google Play
国内安卓市场
包格式
AAB 为主
APK 为主
账号认证
Google 开发者账号验证
个人 / 企业实名认证
审核重点
Data Safety、目标 API、权限、内容政策
实名认证、备案、软著、隐私合规、权限
支付
Google Play Billing
微信、支付宝等
推送
FCM
各厂商推送
备案
通常不是 Google Play 重点
国内市场经常要求
软著
通常不是必需
国内市场常见要求
分发地区
全球
中国大陆设备生态
十一、上线前资料准备
1. 基础资料
资料
说明
应用名称
简短、易记、避免侵权
包名
Android 唯一标识,例如 com.company.appname
应用图标
高清图标,常见 512×512
应用截图
首页、核心功能页、登录页、个人中心等
应用简介
一句话说明 App 用途
应用详细描述
功能介绍、适用人群、特色
隐私政策链接
必须能公网访问
用户协议链接
建议准备
测试账号
如果需要登录,必须提供
联系方式
邮箱、手机号、官网
版本号
versionName,例如 1.0.0
版本码
versionCode,每次更新必须递增
2. 技术资料
资料
说明
APK / AAB 安装包
国内市场多用 APK,Google Play 用 AAB
签名文件 keystore
正式包必须使用正式签名
包名 applicationId
上架后不要随意改
SHA-1 / SHA-256 指纹
登录、地图、支付、推送等 SDK 配置
targetSdkVersion
目标 Android API
minSdkVersion
最低支持 Android 版本
权限清单
相机、相册、定位、通知等
第三方 SDK 清单
统计、广告、支付、推送、地图等
3. 合规资料
资料
是否常见必需
说明
隐私政策
必需
说明收集哪些数据、为什么收集、如何使用
用户协议
推荐 / 常见必需
说明用户使用规则
APP 备案
国内通常需要
面向中国境内提供互联网信息服务的 App 常见要求
软件著作权
国内市场常见要求
证明软件归属
ICP 备案
使用中国大陆服务器、网站或接口时常见
ICP 许可证
经营性互联网信息服务可能需要
特殊行业资质
视业务而定
新闻、医疗、教育、金融、直播、游戏等
十二、开发者账号申请流程
1. Google Play Console 账号申请
官方入口:
Google Play Console 官网
Play Console 帮助中心:开始使用 Play Console
创建并设置应用
申请流程:
text
复制代码
准备 Google 账号
↓
进入 Google Play Console
↓
选择个人账号或组织账号
↓
填写开发者资料
↓
支付注册费用
↓
完成身份验证
↓
进入控制台创建应用
需要注意:
问题
说明
账号类型
个人开发者和组织开发者资料要求不同
身份验证
需要真实身份信息
付款方式
需要可用支付方式
开发者名称
会展示在 Google Play 商店页面
联系邮箱
用户和平台可能通过该邮箱联系你
账号安全
建议开启两步验证
2. 国内安卓应用市场账号申请
常见平台:
平台
官方入口
华为 AppGallery Connect
打开链接
华为应用市场
打开链接
小米开发者平台
打开链接
OPPO 开放平台
打开链接
vivo 开放平台
打开链接
腾讯开放平台 / 应用宝
打开链接
通用申请流程:
text
复制代码
注册开发者账号
↓
选择个人开发者或企业开发者
↓
提交实名认证资料
↓
等待认证审核
↓
认证通过
↓
创建应用
↓
上传 APK
↓
提交审核
3. 个人开发者常见资料
资料
说明
身份证
真实身份认证
手机号
接收验证码和审核通知
邮箱
接收平台通知
银行卡
涉及收益结算时需要
手持证件照
部分平台可能要求
4. 企业开发者常见资料
资料
说明
营业执照
企业主体认证
法人身份证
法人身份认证
联系人信息
平台对接联系人
对公账户
收益结算或认证使用
授权书
非法人操作时可能需要
软件著作权
应用归属证明
行业许可证
特殊行业需要
十三、APP 备案、软著、隐私政策与资质准备
1. APP 备案是什么
APP 备案是指面向中国境内提供互联网信息服务的 App,需要按照相关要求登记主体信息、应用信息、网络接入信息等。
可以简单理解为:
text
复制代码
网站需要 ICP 备案
App 也可能需要 APP 备案
小程序、快应用等也可能涉及备案
官方和云服务商入口:
工信部 ICP/IP 地址/域名信息备案管理系统
阿里云 APP 备案快速入门
腾讯云 APP 备案常见问题
腾讯云 ICP 备案首次备案
2. APP 备案流程
text
复制代码
购买中国大陆服务器或使用接入服务
↓
进入云服务商备案系统
↓
填写主体信息
↓
填写 App 信息
↓
填写域名 / 接入信息
↓
上传证件资料
↓
云服务商初审
↓
短信核验
↓
通信管理局审核
↓
备案通过
↓
获得备案号
3. APP 备案常见问题
问题
解决方案
已有网站 ICP 备案,App 还要备案吗
通常仍需要补充 APP 备案信息,按市场和接入商要求处理
App 没有后端接口,要备案吗
如果不提供互联网信息服务可能不需要;如果有联网、账号、内容服务,建议按平台要求处理
服务器在海外,要不要备案
中国大陆备案通常与大陆服务器接入有关,但国内市场可能仍要求备案或合规说明
备案信息和应用市场主体不一致
尽量保持主体一致,否则准备授权材料
备案号在哪里展示
通常在 App 内"设置 / 关于我们 / 隐私政策"页面展示
备案审核没通过
检查应用名称、主体信息、域名、接入信息、包名是否一致
4. 软件著作权是什么
软件著作权简称"软著",用于证明软件归属权。
国内安卓市场中,以下情况经常会被要求提供软著:
场景
说明
企业正式产品
很多平台建议提供
金融、教育、医疗、工具类
审核更容易要求
包名、应用名称相似
需要证明归属
被平台判定疑似侵权
需要软著或授权证明
多个平台上架
提前准备更稳
5. 软著准备资料
资料
说明
软件名称
建议和 App 名称接近
版本号
一般写 V1.0
源代码
通常需要前后若干页
使用说明书
功能截图和说明
申请人资料
个人或公司资料
授权书
主体不一致时可能需要
6. 隐私政策怎么准备
隐私政策是 App 上架的核心材料。
建议包含:
text
复制代码
1. 我们收集哪些信息
2. 为什么收集这些信息
3. 如何使用这些信息
4. 是否共享给第三方 SDK
5. 第三方 SDK 名称、用途、收集字段
6. 用户如何撤回授权
7. 用户如何注销账号
8. 用户如何删除个人信息
9. 未成年人保护说明
10. 联系方式
11. 隐私政策更新时间
7. 隐私政策常见问题
问题
解决方案
隐私政策链接打不开
使用 HTTPS,确保公网可访问
App 内没有隐私政策入口
登录页、注册页、设置页、关于我们中添加入口
隐私政策没有写第三方 SDK
列出所有 SDK 名称、公司、用途、收集信息、官网链接
App 启动就申请权限
改为使用相关功能时再申请
未同意隐私政策就收集设备信息
首次启动先弹隐私协议并取得同意
权限用途写得太模糊
明确写"用于扫码登录""用于上传头像""用于附近门店推荐"等
8. 特殊行业资质
类型
可能需要的资质
新闻资讯
新闻信息服务相关资质
医疗健康
医疗器械、互联网医院、医疗信息服务资质等
金融借贷
金融牌照、备案、合规说明
教育培训
教育类资质、课程内容证明
游戏
游戏版号、防沉迷、隐私合规
直播 / 短视频
网络文化、视听节目、内容审核机制
电商
营业执照、平台规则、支付合规
社交交友
内容审核、举报机制、用户协议、未成年人保护
十四、Android 项目打包前检查
1. 检查包名
包名是 Android 应用的唯一标识。
示例:
gradle
复制代码
namespace = "com.example.mall"
applicationId = "com.example.mall"
注意:
错误
后果
包名写成测试包名
上架后无法随意修改
不同市场包名不一致
更新、统计、推送容易出问题
包名和别人冲突
可能无法创建应用
包名包含敏感品牌
可能被判定侵权
建议格式:
text
复制代码
com.公司名.应用名
com.zeng.mall
com.company.project
2. 检查版本号
Android 常用两个版本字段:
gradle
复制代码
versionCode = 1
versionName = "1.0.0"
字段
作用
versionCode
给系统和应用市场判断版本高低,必须递增
versionName
展示给用户看的版本号
更新版本时:
gradle
复制代码
versionCode = 2
versionName = "1.0.1"
常见问题:
问题
解决方案
上传新版本提示版本号过低
增加 versionCode
版本名称显示不对
修改 versionName
不同渠道版本混乱
建议建立版本发布表
3. 检查 targetSdkVersion
Google Play 对目标 API 有要求,新应用和应用更新需要满足目标 API 等级要求。
官方文档:
Google Play 目标 API 等级要求
Play Console:Target API level requirements
示例:
gradle
复制代码
android {
compileSdk = 35
defaultConfig {
minSdk = 23
targetSdk = 35
}
}
常见问题:
问题
解决方案
Google Play 提示 target API 太低
升级 compileSdk 和 targetSdk
升级 targetSdk 后权限异常
检查 Android 运行时权限变化
升级后文件读写失败
适配分区存储、Photo Picker 等
通知不显示
Android 13+ 需要通知权限
后台定位被拒
检查定位权限和后台定位声明
4. 检查权限
Android 权限在 AndroidManifest.xml 中声明。
示例:
xml
复制代码
敏感权限:
权限
用途
CAMERA
拍照、扫码
ACCESS_FINE_LOCATION
精准定位
ACCESS_COARSE_LOCATION
模糊定位
RECORD_AUDIO
录音、语音
READ_MEDIA_IMAGES
读取图片
READ_MEDIA_VIDEO
读取视频
POST_NOTIFICATIONS
通知
READ_CONTACTS
通讯录
QUERY_ALL_PACKAGES
获取安装应用列表,审核非常严格
权限处理原则:
text
复制代码
能不用就不用
能用系统选择器就不用读取全部文件权限
用户触发功能时再申请权限
权限说明要和实际功能一致
隐私政策要写清楚权限用途
5. 检查第三方 SDK
上线前整理一张 SDK 清单:
SDK 名称
公司
用途
收集信息
官网
友盟统计
友盟
数据统计
设备信息、使用数据
打开链接
高德地图
高德
地图定位
定位信息、设备信息
打开链接
微信开放平台 SDK
腾讯
微信登录、分享、支付
账号信息、设备信息
打开链接
支付宝开放平台 SDK
支付宝
支付
支付相关信息
打开链接
Firebase SDK
崩溃、推送、统计
设备信息、崩溃数据
打开链接
审核常见问题:
问题
解决方案
SDK 违规收集信息
升级 SDK,关闭不必要采集
隐私政策没写 SDK
添加 SDK 清单
用户未同意前 SDK 初始化
延迟初始化,用户同意后再初始化
SDK 版本过旧
升级到平台推荐版本
SDK 请求权限但功能不用
移除 SDK 或关闭相关能力
十五、签名、APK、AAB 详细讲解
1. 什么是签名
Android App 必须签名才能安装和更新。签名可以理解为 App 的身份证。
官方文档:
Android 官方:为应用签名
如果两个安装包签名不一致:
text
复制代码
同一个包名不能覆盖安装
用户无法正常升级
应用市场可能拒绝更新
第三方登录、地图、支付可能失效
2. Debug 签名和 Release 签名
类型
用途
Debug 签名
开发调试用
Release 签名
正式上线用
不要用 Debug 包上架。
3. keystore 是什么
keystore 是保存签名密钥的文件。
示例文件:
text
复制代码
my-release-key.jks
生成签名文件示例:
bash
复制代码
keytool -genkey -v \
-keystore my-release-key.jks \
-keyalg RSA \
-keysize 2048 \
-validity 10000 \
-alias my-key-alias
需要保存的信息:
text
复制代码
keystore 文件
keystore 密码
key alias
key password
重要提醒:
text
复制代码
正式签名文件一定要备份
密码一定要保存
不要上传到 Git 仓库
不要发给无关人员
4. APK 和 AAB 区别
官方文档:
Android App Bundle 官方说明
上传 App Bundle 到 Play Console
格式
说明
常见使用场景
APK
Android 安装包,可直接安装
国内安卓市场、官网下载、企业内部分发
AAB
Android App Bundle,Google Play 发布格式
Google Play
APK 特点:
text
复制代码
可以直接安装
国内市场支持广
适合企业内部分发
适合官网下载
AAB 特点:
text
复制代码
Google Play 会根据设备生成合适 APK
包体更小
支持动态功能模块
适合全球分发
5. Android Studio 打正式包流程
生成 APK:
text
复制代码
Android Studio
↓
Build
↓
Generate Signed Bundle / APK
↓
选择 APK
↓
选择 keystore
↓
填写密码和 alias
↓
选择 release
↓
Finish
生成 AAB:
text
复制代码
Android Studio
↓
Build
↓
Generate Signed Bundle / APK
↓
选择 Android App Bundle
↓
选择 keystore
↓
选择 release
↓
Finish
6. Gradle 命令打包
生成 Release APK:
bash
复制代码
./gradlew assembleRelease
生成 Release AAB:
bash
复制代码
./gradlew bundleRelease
Windows:
bash
复制代码
gradlew assembleRelease
gradlew bundleRelease
打包产物常见路径:
text
复制代码
app/build/outputs/apk/release/
app/build/outputs/bundle/release/
十六、Google Play 上架完整流程
1. 创建应用
官方文档:
创建并设置应用
流程:
text
复制代码
进入 Play Console
↓
点击 Create app
↓
填写 App name
↓
选择默认语言
↓
选择 App 或 Game
↓
选择免费或付费
↓
勾选声明
↓
创建应用
2. 填写商店详情
需要填写:
内容
说明
应用名称
商店展示名称
简短描述
一句话介绍
完整描述
详细功能介绍
图标
高质量图标
Feature Graphic
商店横幅图
手机截图
展示核心页面
平板截图
如果支持平板,建议上传
分类
工具、教育、购物、生活等
联系方式
邮箱、网站、电话
隐私政策
必须是可访问链接
3. 配置 App Content
官方文档:
准备应用审核:App content
Google Play Data Safety 数据安全表
权限声明表
常见需要填写:
项目
说明
隐私政策
填写隐私政策 URL
Ads
是否包含广告
App access
是否需要登录账号
Target audience
目标用户年龄
Content rating
内容分级问卷
Data safety
数据收集和共享说明
Permissions declaration
敏感权限声明
Financial features
金融功能声明
Health apps
健康类应用声明
News apps
新闻类应用声明
4. 上传 AAB
流程:
text
复制代码
Production / Testing
↓
Create new release
↓
Upload AAB
↓
填写 Release notes
↓
Review release
↓
Start rollout
建议先走测试轨道:
测试类型
用途
Internal testing
内部快速测试
Closed testing
邀请部分用户测试
Open testing
公开测试
Production
正式发布
5. 提交审核前检查
text
复制代码
商店详情是否完整
隐私政策是否可打开
测试账号是否能登录
数据安全表是否和实际一致
权限声明是否合理
AAB 是否正式签名
目标 API 是否满足要求
是否有崩溃问题
6. Google Play 常见驳回原因
驳回原因
解决方案
隐私政策缺失或打不开
提供 HTTPS 可访问链接
数据安全表和实际不一致
按 SDK 和接口真实填写
权限用途不合理
删除非必要权限或补充声明
App 需要登录但没给测试账号
在 App access 提供账号密码和操作说明
应用崩溃
使用 Play Console 崩溃日志、Firebase Crashlytics 排查
目标 API 不符合要求
升级 targetSdk
包名、签名、版本号问题
检查 applicationId、keystore、versionCode
内容分级不准确
重新填写内容分级问卷
侵犯品牌或版权
修改名称、图标、素材,提供授权证明
付款方式违规
数字商品遵守 Google Play Billing 规则
十七、国内安卓应用市场上架流程
国内安卓市场包括华为、小米、OPPO、vivo、应用宝等。不同平台后台不同,但核心流程类似。
1. 华为应用市场流程
官方文档:
华为应用市场接入
华为 AppGallery Connect 发布应用 APK
华为创建 Android 应用
华为应用审核指南
流程:
text
复制代码
注册华为开发者账号
↓
实名认证
↓
进入 AppGallery Connect
↓
新建 Android 应用
↓
填写应用基础信息
↓
上传 APK
↓
填写分发国家/地区
↓
填写隐私声明链接
↓
提交审核
↓
审核通过后上架
注意点:
text
复制代码
应用名称、包名、签名要一致
隐私政策必须能访问
如果接入华为推送、地图、登录等能力,需要配置证书指纹
应用截图要符合规范
敏感行业要提供资质
2. 小米应用商店流程
官方文档:
小米开发者平台
小米应用提交流程
小米应用创建操作指南
流程:
text
复制代码
注册小米开发者账号
↓
完成开发者认证
↓
创建应用
↓
填写应用名称和包名
↓
上传 APK
↓
系统读取包名、版本号、应用名称
↓
填写应用分类、简介、截图、隐私政策
↓
提交审核
↓
审核通过后发布
注意点:
text
复制代码
包名不要填错
版本号要递增
应用截图不要带其他商店水印
隐私政策要和 App 内展示一致
如果 APK 较大,按平台要求使用对应上传方式
3. OPPO 应用商店流程
官方文档:
OPPO 开放平台
OPPO 开发者平台
流程:
text
复制代码
注册 OPPO 开放平台账号
↓
完成开发者认证
↓
进入管理中心
↓
产品列表
↓
移动应用列表
↓
创建应用
↓
创建包名
↓
上传 APK
↓
完善资料
↓
提交审核
↓
发布上线
注意点:
text
复制代码
应用包名创建后要和 APK 一致
应用资料需要完整
隐私政策、权限说明、备案信息要完善
不得包含违规内容、诱导下载、虚假功能
4. vivo 应用商店流程
官方入口:
vivo 开放平台
vivo 创建应用文档
vivo 应用审核规范
流程:
text
复制代码
注册 vivo 开放平台账号
↓
实名认证
↓
创建应用
↓
上传 APK
↓
填写应用基础资料
↓
填写隐私政策和资质信息
↓
提交审核
↓
审核通过后上架
注意点:
text
复制代码
vivo 对审核规范、隐私合规、应用内容、权限使用都比较关注
如果涉及广告、下载、金融、医疗、教育等内容,要提前准备说明和资质
5. 应用宝流程
官方入口:
腾讯开放平台
流程:
text
复制代码
注册腾讯开放平台账号
↓
开发者认证
↓
创建移动应用
↓
填写应用资料
↓
上传 APK
↓
填写隐私政策和资质信息
↓
提交审核
↓
审核通过后上架应用宝
6. 国内市场通用审核重点
审核项
说明
账号主体
是否实名认证
应用名称
是否侵权、夸大、涉敏
包名
是否唯一、是否和 APK 一致
签名
是否为正式签名
版本号
是否递增
隐私政策
是否完整、是否可访问
权限
是否过度申请
SDK
是否违规采集信息
APP 备案
是否填写备案信息
软著
是否能证明应用归属
特殊资质
是否符合行业要求
功能完整性
是否能正常使用
登录账号
审核员是否能进入核心功能
内容安全
是否有违规内容
广告
是否欺骗点击、诱导下载、影响体验
十八、审核常见问题与解决方案
1. 隐私政策问题
问题表现:
text
复制代码
隐私政策链接无法访问
隐私政策内容不完整
隐私政策没有写第三方 SDK
隐私政策和 App 实际权限不一致
App 内找不到隐私政策入口
解决方案:
text
复制代码
1. 使用 HTTPS 链接
2. 确保不需要登录即可访问
3. 在 App 登录页、注册页、设置页加入隐私政策入口
4. 列出所有第三方 SDK
5. 写清楚每个权限的具体用途
6. 写清楚用户注销账号、删除信息、撤回授权方式
2. 权限过度申请
问题表现:
text
复制代码
普通工具 App 申请通讯录权限
不需要定位却申请精准定位
不需要读取全部图片却申请相册权限
启动 App 就申请相机、定位、存储等权限
解决方案:
text
复制代码
1. 删除不必要权限
2. 改为用户点击功能时再申请
3. Android 13+ 图片视频尽量使用系统 Photo Picker
4. 权限弹窗前给用户解释用途
5. 隐私政策中同步更新权限说明
3. 测试账号问题
问题表现:
text
复制代码
审核员无法登录
验证码登录无法收到验证码
登录后没有测试数据
核心功能需要会员或付费
解决方案:
text
复制代码
1. 提供固定测试账号和密码
2. 不要只支持短信验证码登录
3. 给测试账号配置完整权限
4. 在审核备注写清楚操作路径
5. 如果有后台审核功能,提供测试后台或模拟数据
审核备注示例:
text
复制代码
测试账号:test@example.com
密码:Test123456
登录路径:首页 → 我的 → 登录
测试说明:该账号已开通会员权限,可测试课程播放、收藏、评论等功能。
4. 应用崩溃或白屏
常见原因:
text
复制代码
接口地址写错
正式环境证书错误
混淆导致类找不到
缺少网络权限
低版本 Android 兼容问题
WebView 加载失败
第三方 SDK 初始化失败
解决方案:
text
复制代码
1. 使用正式包在多台真机测试
2. 测试 Android 8、10、12、13、14、15 等系统
3. 检查 ProGuard / R8 混淆规则
4. 接入崩溃监控
5. 检查接口 HTTPS 证书
6. 检查 WebView 页面是否支持移动端
7. 检查权限是否动态申请
5. 签名不一致
问题表现:
text
复制代码
新版本无法覆盖安装
应用市场提示签名与旧版本不一致
第三方登录、支付、地图功能失效
解决方案:
text
复制代码
1. 找回原 keystore
2. 检查 alias 和密码是否正确
3. 不要用 debug keystore 打正式包
4. 不同渠道使用同一正式签名
5. Google Play 使用 Play App Signing 时区分 upload key 和 app signing key
6. 版本号问题
问题表现:
text
复制代码
上传失败,提示版本号过低
用户收不到更新
同一个版本重复上传失败
解决方案:
text
复制代码
1. 每次提交都增加 versionCode
2. versionName 按语义化版本管理
3. 建立版本发布记录表
4. 多渠道包保持版本规则一致
版本示例:
发布次数
versionCode
versionName
首次发布
1
1.0.0
修复 bug
2
1.0.1
新增功能
3
1.1.0
大版本升级
10
2.0.0
7. 软著或资质问题
问题表现:
text
复制代码
平台要求上传软著
应用名称疑似侵权
涉及金融、医疗、教育等特殊类目
企业主体和软著主体不一致
解决方案:
text
复制代码
1. 提前申请软件著作权
2. 应用名称和软著名称尽量一致
3. 如果主体不一致,准备授权书
4. 特殊行业提前准备许可证或备案材料
5. 不要使用知名品牌、影视、明星、商标素材
8. APP 备案问题
问题表现:
text
复制代码
平台要求填写 APP 备案号
备案主体和开发者主体不一致
备案信息和应用信息不一致
备案还在审核中
解决方案:
text
复制代码
1. 提前通过云服务商或接入商提交备案
2. 应用名称、主体、域名尽量保持一致
3. 在 App 内展示备案号
4. 隐私政策和关于我们页面同步备案信息
5. 如果主体不同,准备授权证明
9. 第三方 SDK 违规
问题表现:
text
复制代码
未同意隐私政策前 SDK 已收集设备信息
SDK 获取 IMEI、MAC、Android ID 等敏感信息
SDK 申请了多余权限
隐私政策没有列 SDK
解决方案:
text
复制代码
1. 升级 SDK 到合规版本
2. 用户同意隐私政策后再初始化 SDK
3. 关闭非必要采集开关
4. 隐私政策增加 SDK 清单
5. 删除不用的 SDK
6. 使用平台检测工具扫描 APK
10. 图标、截图、描述问题
问题表现:
text
复制代码
截图和实际功能不一致
截图带其他应用市场水印
图标模糊
描述包含违规词
夸大宣传收益、疗效、功能
解决方案:
text
复制代码
1. 使用真实 App 截图
2. 不使用竞品、平台、水印内容
3. 图标使用高清尺寸
4. 描述避免"最强、稳赚、官方、第一"等敏感夸张词
5. 截图展示核心功能,不放无关宣传图
十九、上线后的版本更新流程
上线后还要持续维护。
1. 常规更新流程
text
复制代码
收集用户反馈
↓
修复 bug / 新增功能
↓
修改 versionCode 和 versionName
↓
生成新正式包
↓
内部测试
↓
上传应用市场
↓
填写更新说明
↓
提交审核
↓
灰度发布
↓
正式全量发布
2. 更新说明怎么写
不推荐:
text
复制代码
修复了一些问题。
推荐:
text
复制代码
1. 优化首页加载速度
2. 修复部分机型上传头像失败的问题
3. 新增订单筛选功能
4. 优化登录体验
3. 灰度发布
灰度发布是先让一部分用户升级,观察是否有问题。
适合:
text
复制代码
大版本更新
支付功能更新
登录体系更新
底层 SDK 更新
性能优化版本
如果发现崩溃升高,可以暂停发布,修复后再继续。
4. 上线后要监控什么
指标
说明
崩溃率
是否有大量闪退
ANR
是否卡死
登录成功率
是否登录失败
支付成功率
是否支付异常
接口错误率
后端接口是否稳定
用户评论
是否有明显投诉
卸载率
是否更新后大量卸载
权限拒绝率
用户是否不愿授权
活跃用户
DAU、MAU
留存率
次日留存、7 日留存、30 日留存
二十、上线前检查清单
1. 技术检查
App 能正常安装
正式包不是 Debug 包
使用正式签名
versionCode 已递增
versionName 正确
包名正确
targetSdk 符合目标市场要求
首次启动不崩溃
登录注册正常
主要接口正常
图片、文件上传正常
支付功能正常
推送功能正常
WebView 页面正常
Android 低版本兼容正常
Android 高版本权限适配正常
混淆后功能正常
2. 合规检查
隐私政策可访问
App 内有隐私政策入口
用户协议可访问
首次启动有隐私弹窗
用户同意前不初始化敏感 SDK
第三方 SDK 清单完整
权限用途说明清楚
有账号注销入口
有个人信息删除或联系客服方式
APP 备案信息准备完成
软著准备完成
特殊行业资质准备完成
未成年人相关说明完善
3. 应用市场资料检查
应用名称正确
应用图标高清
应用截图清晰
简短描述准确
详细描述不夸大
分类选择正确
联系邮箱可用
官网或隐私政策链接可访问
审核测试账号可登录
审核备注写清楚
APK / AAB 上传正确
更新说明填写完整
二十一、官方资源和文档链接表
1. Android 官方资源
资源
说明
链接
Android Developers
Android 官方开发文档
打开链接
Android Studio
Android 官方开发工具
打开链接
Jetpack Compose
Android 现代 UI 工具包
打开链接
Compose 入门文档
Compose 官方学习入口
打开链接
Android App Architecture
Android 应用架构指南
打开链接
Android App Bundle
AAB 官方说明
打开链接
App Bundle 格式
AAB 文件格式说明
打开链接
构建和测试 AAB
AAB 测试指南
打开链接
上传 App Bundle
上传 AAB 到 Play Console
打开链接
应用签名
Android 签名官方文档
打开链接
2. iOS / Apple 官方资源
资源
说明
链接
Apple Developer
Apple 开发者官网
打开链接
Xcode
Apple 官方开发工具
打开链接
Swift 官方文档
Swift 语言文档
打开链接
SwiftUI 官方文档
SwiftUI 框架文档
打开链接
UIKit 官方文档
UIKit 框架文档
打开链接
App Store Connect
iOS 应用上架后台
打开链接
提交 App 到 App Store
Apple 上架说明
打开链接
TestFlight
Apple 内测工具
打开链接
3. 跨平台官方资源
资源
说明
链接
Flutter 官网
Flutter 官方网站
打开链接
Flutter 文档
Flutter 官方文档
打开链接
Dart 文档
Dart 语言文档
打开链接
React Native 官网
React Native 官方网站
打开链接
React Native 入门
React Native 官方入门
打开链接
React Native 环境搭建
React Native 环境配置
打开链接
uni-app 文档
uni-app 官方文档
打开链接
Kotlin Multiplatform
Kotlin 跨平台文档
打开链接
4. Google Play 官方资源
资源
说明
链接
Google Play Console
Google Play 发布后台
打开链接
开始使用 Play Console
开发者账号设置
打开链接
创建并设置应用
Google Play 创建应用流程
打开链接
准备应用审核
App content 审核准备
打开链接
数据安全表
Data Safety 填写说明
打开链接
权限声明
敏感权限声明说明
打开链接
目标 API 要求
Target SDK 官方要求
打开链接
Play Console 目标 API 要求
Google Play 帮助中心说明
打开链接
5. 国内安卓应用市场官方文档
平台
说明
链接
华为 AppGallery Connect
华为应用管理后台
打开链接
华为应用市场接入
华为应用分发入口
打开链接
华为发布 APK 应用
华为 APK 发布文档
打开链接
华为创建 Android 应用
华为创建应用文档
打开链接
华为应用审核指南
华为审核规范
打开链接
小米开发者平台
小米应用商店开发者平台
打开链接
小米应用提交流程
小米应用上架流程
打开链接
小米应用创建指南
小米创建和提交审核说明
打开链接
OPPO 开放平台
OPPO 应用发布平台
打开链接
OPPO 开发者平台
OPPO 官方开发平台
打开链接
vivo 开放平台
vivo 应用发布平台
打开链接
vivo 创建应用文档
vivo 创建应用说明
打开链接
vivo 应用审核规范
vivo 审核规范
打开链接
腾讯开放平台
应用宝相关入口
打开链接
6. APP 备案和云服务商文档
资源
说明
链接
工信部备案系统
备案查询和管理入口
打开链接
阿里云 APP 备案
阿里云 APP 备案流程
打开链接
阿里云 ICP 备案流程
阿里云备案流程说明
打开链接
腾讯云 APP 备案 FAQ
腾讯云 APP 备案常见问题
打开链接
腾讯云首次备案
腾讯云 ICP / APP 备案流程
打开链接
7. 推荐辅助工具
工具
用途
链接
Android Studio
Android 开发与打包
打开链接
Xcode
iOS 开发与打包
打开链接
Firebase Crashlytics
崩溃监控
打开链接
Firebase App Distribution
测试分发
打开链接
Google Play Console
Google Play 上架管理
打开链接
Postman
接口测试
打开链接
Figma
UI 设计协作
打开链接
IconKitchen
Android 图标生成
打开链接
App Store Connect
iOS 应用管理
打开链接
二十二、推荐学习路线
1. 前端开发者推荐路线
text
复制代码
HTML / CSS / JavaScript 基础
↓
Vue 或 React 熟练
↓
了解 App 页面、路由、状态、权限、打包
↓
选择 React Native / Flutter / uni-app
↓
做一个完整项目
↓
学习 Android 打包、签名、上架
↓
补 Kotlin + Jetpack Compose
↓
补 Swift + SwiftUI
2. Vue 开发者路线
text
复制代码
Vue3
↓
TypeScript
↓
uni-app
↓
小程序 / H5 / App 打包
↓
Android APK 签名
↓
国内应用市场上架
↓
原生插件开发
3. React 开发者路线
text
复制代码
React
↓
TypeScript
↓
React Native
↓
Expo 或 React Native CLI
↓
导航、状态管理、网络请求
↓
Android / iOS 打包
↓
应用市场上架
4. Flutter 路线
text
复制代码
Dart
↓
Flutter Widget
↓
页面布局
↓
路由导航
↓
网络请求
↓
状态管理
↓
本地存储
↓
原生插件
↓
Android / iOS 双端上线
5. Android 原生路线
text
复制代码
Kotlin 基础
↓
Android Studio
↓
Activity / Lifecycle
↓
Jetpack Compose
↓
ViewModel
↓
Navigation
↓
Retrofit / OkHttp
↓
Room / DataStore
↓
权限处理
↓
打包签名
↓
Google Play / 国内市场上架
6. iOS 原生路线
text
复制代码
Swift 基础
↓
Xcode
↓
SwiftUI
↓
NavigationStack
↓
状态管理
↓
URLSession
↓
UserDefaults / Core Data / Keychain
↓
权限处理
↓
TestFlight
↓
App Store 上架
7. 推荐练手项目
项目
能练到什么
记账 App
本地存储、图表、分类
商城 App
登录、列表、详情、购物车、支付
短视频展示 App
视频播放、列表性能、缓存
笔记 App
富文本、本地数据库、同步
天气 App
网络请求、定位、权限
后台管理移动端
表单、权限、接口封装
个人作品集 App
页面开发、导航、打包发布
课程学习 App
视频、登录、收藏、进度记录
二十三、总结建议
如果你是前端开发工程师,建议路线是:
text
复制代码
第一步:先理解 App 开发整体流程
第二步:选择 React Native / Flutter / uni-app 入门
第三步:做一个完整项目
第四步:学习 Android 打包、签名、权限、上架
第五步:再补 Android / iOS 原生能力
最实用组合:
text
复制代码
React Native + TypeScript + Android 上架流程
或者:
text
复制代码
Flutter + Dart + Android / iOS 双端发布
如果你以后要独立开发并发布 App,必须重点掌握:
text
复制代码
1. 包名不要乱改
2. 正式签名文件必须保存好
3. versionCode 每次更新必须递增
4. 隐私政策必须完整且可访问
5. 权限能少申请就少申请
6. 第三方 SDK 要列清楚
7. 国内市场提前准备 APP 备案和软著
8. Google Play 重点关注 AAB、Data Safety、目标 API、权限声明
9. 提交审核前必须提供可用测试账号
10. 上线后要持续监控崩溃、评论、下载和转化数据
App 开发不是只写页面,也不是只会打包。真正完整的 App 开发能力包括:
text
复制代码
产品理解
+
UI 页面开发
+
接口联调
+
状态管理
+
权限处理
+
本地存储
+
推送支付地图等 SDK
+
性能优化
+
打包签名
+
应用市场审核
+
隐私合规
+
版本迭代
把这些流程打通后,你就能从"会写前端页面"升级到"能独立完成 App 项目开发与上线"的开发者。