返回博客
上架指南2025年10月22日安安科技团队阅读时间 9 分钟

应用上架前检查清单:
正式发布前的 必要步骤

别让本可避免的问题毁掉你的应用上架计划。这份全面的检查清单确保你的应用符合所有要求,为在 App Store 成功首发做好准备。

应用上架前检查清单——正式发布前的必要步骤
// 简报

发布应用就像开餐厅——你只有一次机会留下好的第一印象。仓促上架,遗漏要求、留有安全漏洞或性能不佳,可能毁掉数月的开发成果,损害品牌声誉。

我们见过无数应用因为创始人跳过关键的上架前步骤,被应用商店拒绝,或收到毁灭性的差评。好消息是?只要准备充分,绝大多数上架失败都完全可以避免。

这份全面的检查清单涵盖提交应用前需要核实的一切。按照这些步骤,确保顺利上架、收获好评,并从第一天起稳健增长。

01/05

商店要求与合规

应用商店元数据要求

iOS App Store

  • 应用名称(上限 30 个字符)
  • 副标题(上限 30 个字符)
  • 关键词(上限 100 个字符)
  • 描述(上限 4000 个字符)
  • 截图(6.5"、6.7"、12.9" 尺寸)
  • 应用预览视频(可选)
  • 应用图标(1024x1024px)

Google Play Store

  • 应用标题(上限 50 个字符)
  • 简短描述(上限 80 个字符)
  • 完整描述(上限 4000 个字符)
  • 截图(手机、平板、TV)
  • 宣传图片(1024x500px)
  • 应用图标(512x512px)
  • 内容分级问卷

法律文件检查清单

  • 隐私政策: 所有应用均须提供,且必须可通过 URL 访问
  • 服务条款: 列明应用使用条款的法律协议
  • 数据删除政策: GDPR 合规及应用商店指南均有此要求

年龄分级与内容指南

重要:请如实准确填写年龄分级问卷。分级不正确可能导致应用被下架或分发受限。
02/05

技术就绪

应用签名与证书

signing_setup.sh
# iOS Certificate Setup
# 1. Create App ID in Apple Developer Console
# 2. Generate Distribution Certificate
# 3. Create Provisioning Profile for App Store

# Flutter iOS build configuration
flutter build ios --release --no-codesign
# Then sign in Xcode with proper certificates

# Android Signing Setup
# 1. Generate keystore file
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

# 2. Configure android/key.properties
storePassword=your_store_password
keyPassword=your_key_password
keyAlias=key
storeFile=../key.jks

# 3. Update android/app/build.gradle
signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}

buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}

后端配置

  • 环境变量: 将开发、预发布及生产环境的配置分开管理
  • API 端点: 核实所有端点均指向生产服务器
  • 数据库迁移: 运行并测试所有生产数据库迁移

API 安全检查清单

  • 所有 API 端点均已启用 HTTPS
  • 已实施 API 速率限制
  • 身份验证令牌已妥善保护
  • 已启用输入验证及清理
03/05

性能与安全

性能基准测试

性能目标

  • 应用启动时间:少于 3 秒
  • 页面切换:少于 300ms
  • 内存占用:少于 100MB
  • 耗电量:影响轻微
  • 网络请求:少于 5 秒

安全审计

  • 静态数据加密
  • 数据传输安全
  • 身份验证安全
  • API 漏洞扫描
  • 已启用代码混淆

错误处理与监控

main.dart
// Flutter error handling setup
import 'package:firebase_crashlytics/firebase_crashlytics.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // Initialize Firebase Crashlytics
  await Firebase.initializeApp();
  
  // Catch Flutter framework errors
  FlutterError.onError = (errorDetails) {
    FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
  };
  
  // Catch async errors
  PlatformDispatcher.instance.onError = (error, stack) {
    FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
    return true;
  };
  
  runApp(MyApp());
}

// Global error boundary
class ErrorBoundary extends StatelessWidget {
  final Widget child;
  
  const ErrorBoundary({required this.child});
  
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      builder: (context, widget) {
        ErrorWidget.builder = (FlutterErrorDetails errorDetails) {
          return CustomErrorWidget(errorDetails: errorDetails);
        };
        return widget!;
      },
      home: child,
    );
  }
}
04/05

测试与质量保证

跨设备测试矩阵

iOS 测试

  • iPhone SE(小屏幕)
  • iPhone 15(标准)
  • iPhone 15 Pro Max(大屏幕)
  • iPad(平板布局)
  • iPad Pro(大尺寸平板)
  • iOS 16、17、18 版本

Android 测试

  • Samsung Galaxy S 系列
  • Google Pixel 设备
  • OnePlus 旗舰机型
  • 入门级 Android 设备
  • 平板形态设备
  • Android 12、13、14 版本

网络与边缘情况测试

  • 网络环境: 在 WiFi、4G、3G 及离线场景下进行测试
  • 屏幕方向切换: 核实竖屏及横屏模式均正常工作
  • 前后台切换: 测试应用进入后台及返回前台时的行为

用户验收测试

专业提示:招募 10 至 20 位符合目标受众的 beta 测试员。新鲜的目光往往能发现开发者埋头数月后忽略的问题。
05/05

分析与监控

必要的分析设置

analytics_service.dart
// Firebase Analytics setup
import 'package:firebase_analytics/firebase_analytics.dart';

class AnalyticsService {
  static FirebaseAnalytics analytics = FirebaseAnalytics.instance;
  
  // Track key user events
  static Future<void> trackAppOpen() async {
    await analytics.logAppOpen();
  }
  
  static Future<void> trackScreenView(String screenName) async {
    await analytics.logScreenView(screenName: screenName);
  }
  
  static Future<void> trackUserAction(String action, Map<String, dynamic> parameters) async {
    await analytics.logEvent(name: action, parameters: parameters);
  }
  
  static Future<void> trackPurchase(double value, String currency, String itemId) async {
    await analytics.logPurchase(
      currency: currency,
      value: value,
      parameters: {'item_id': itemId},
    );
  }
  
  static Future<void> setUserProperties(String userId, Map<String, String> properties) async {
    await analytics.setUserId(id: userId);
    for (var entry in properties.entries) {
      await analytics.setUserProperty(name: entry.key, value: entry.value);
    }
  }
}

// Usage in app
class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  @override
  void initState() {
    super.initState();
    AnalyticsService.trackScreenView('home_screen');
  }
  
  void _onButtonPressed() {
    AnalyticsService.trackUserAction('button_pressed', {
      'button_name': 'get_started',
      'screen': 'home',
    });
  }
}

推送通知测试

  • 在两个平台上测试通知送达
  • 核实从通知打开的 deep link 正常工作
  • 测试通知权限流程

支付流程验证

  • 测试支付成功的场景
  • 测试支付失败的处理
  • 核实收据验证正常工作

需避免的常见陷阱

  • 元数据缺失: 商店资料不完整会拖延审核
  • 测试不足: 只在旗舰设备上测试会遗漏问题
  • 后端扩容: 开发服务器无法承受上架后的流量
  • 隐私疏忽: 缺少隐私政策会直接被拒
  • 没有错误监控: 看不见的问题就无法修复
  • 时间表过急: 请为应用商店审核预留 2 至 7 天
CHK.01起飞前检查

你的最终上架前 检查清单

商店提交

所有元数据已填妥
截图已优化
隐私政策已发布
年龄分级已完成
应用已正确签名

技术验证

生产后端已就绪
安全审计已通过
跨设备测试已完成
分析工具已接入
错误监控已启用

安安科技如何确保成功上架

我们已成功发布超过 50 款应用。我们全面的上架前流程,确保你的应用符合所有要求,顺利上架。

全面合规审查
安全与性能审计
全面设备测试
分析与监控设置
生产环境部署
上架当日支持
// 放行许可

满怀信心发布你的应用

别因本可避免的问题冒上架失败的风险。我们的专家会按照这份全面的检查清单审查你的应用,确保你准备好在 App Store 成功首发。

准备好成功上架?WhatsApp 联系我们:+852 9332 3868

// 信号放大

分享这份检查清单