HarmonyOS应用上架全流程指南:从开发到发布

一、HarmonyOS应用上架概述

HarmonyOS应用上架是将开发完成的应用程序提交到华为应用市场(AppGallery)的过程。与Android和iOS应用上架相比,HarmonyOS应用上架有其独特的流程和要求。

上架基本流程:

  1. 开发者账号注册与认证
  2. 应用准备与合规性检查
  3. 应用签名与打包
  4. 提交应用审核
  5. 应用发布与运营

二、开发者账号准备

1. 注册华为开发者账号

访问华为开发者联盟官网注册账号

2. 完成实名认证

个人开发者需要身份证认证,企业开发者需要营业执照认证

3. 签署开发者协议

// 示例:检查开发者协议签署状态
public boolean checkDeveloperAgreement() {
    DeveloperService service = new DeveloperService();
    return service.isAgreementSigned(getUserId());
}

三、应用准备与合规性检查

1. 隐私政策合规

所有HarmonyOS应用必须提供隐私政策,示例隐私政策页面:

// PrivacyPolicyPage.ets
@Entry
@Component
struct PrivacyPolicyPage {
  build() {
    Column() {
      Text('隐私政策')
        .fontSize(24)
        .margin({ bottom: 20 })
      
      Scroll() {
        Text('在此处填写您的隐私政策内容...')
          .fontSize(16)
      }
      
      Button('同意并继续')
        .width('80%')
        .margin({ top: 30 })
        .onClick(() => {
          // 记录用户同意状态
          AppStorage.setOrCreate('privacyAgreed', true);
          router.back();
        })
    }
    .padding(20)
  }
}

2. 权限声明

module.json5中正确声明权限:

{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET",
        "reason": "需要网络权限以获取数据"
      },
      {
        "name": "ohos.permission.READ_MEDIA",
        "reason": "需要读取媒体文件"
      }
    ]
  }
}

四、应用签名与打包

1. 生成签名证书

使用DevEco Studio生成或使用现有证书:

keytool -genkeypair -alias "myharmonykey" -keyalg RSA -keysize 2048 -validity 9125 -keystore myharmony.keystore

2. 配置签名信息

build-profile.json5中配置:

{
  "app": {
    "signingConfigs": [
      {
        "name": "release",
        "material": {
          "certpath": "myharmony.p12",
          "storePassword": "yourpassword",
          "keyAlias": "myharmonykey",
          "keyPassword": "yourpassword",
          "profile": "myharmony.p7b",
          "signAlg": "SHA256withECDSA",
          "storeFile": "myharmony.keystore"
        }
      }
    ]
  }
}

3. 构建发布版本

在DevEco Studio中选择:

Build > Build HAP(s)/APP(s) > Build Release APP(s)

五、应用信息配置

1. 创建AppGallery Connect应用

登录AppGallery Connect创建新应用

2. 配置应用基本信息

// 示例:验证应用基本信息
public class AppInfoValidator {
    public static boolean validate(AppInfo info) {
        if (info.getAppName().length() < 2 || info.getAppName().length() > 64) {
            return false;
        }
        if (info.getVersionCode() <= 0) {
            return false;
        }
        return true;
    }
}

3. 上传应用图标和截图

要求:

  • 图标:216x216px PNG
  • 截图:至少3张,尺寸建议450x800px

六、提交应用审核

1. 准备审核材料

  • 测试账号(如有登录功能)
  • 演示视频(可选)
  • 版权证明(如需要)

2. 提交审核API示例

// 模拟提交审核的API调用
async function submitForReview(appId: string, hapPath: string): Promise<boolean> {
    const formData = new FormData();
    formData.append('appId', appId);
    formData.append('file', fs.createReadStream(hapPath));
    
    const response = await fetch('https://connect-api.cloud.huawei.com/api/v1/app/submit', {
        method: 'POST',
        headers: {
            'Authorization': 'Bearer ' + getAccessToken(),
            'Client-Id': getClientId()
        },
        body: formData
    });
    
    return response.status === 200;
}

七、常见审核拒绝原因及解决方案

1. 隐私政策问题

  • 确保隐私政策可访问
  • 包含完整的数据收集声明

2. 功能问题

// 示例:功能检查工具函数
function checkAppFunctionality(): string[] {
    const issues: string[] = [];
    
    if (!checkLoginFunction()) {
        issues.push("登录功能异常");
    }
    
    if (!checkPaymentIntegration()) {
        issues.push("支付集成未正常工作");
    }
    
    return issues;
}

3. 性能问题

  • 启动时间不超过2秒
  • 内存占用合理

八、应用发布后管理

1. 版本更新流程

graph TD
    A[开发新版本] --> B[测试]
    B --> C[打包签名]
    C --> D[提交审核]
    D --> E[发布]

2. 监控与分析

集成华为分析服务:

// 集成华为分析SDK
import hiAnalytics from '@ohos.hiAnalytics';

hiAnalytics.init(context, {
    appId: 'your_app_id',
    channel: 'AppGallery'
});

// 记录自定义事件
hiAnalytics.onEvent('purchase_complete', {
    product_id: '123',
    amount: 9.99
});

九、多设备适配检查

1. 多设备适配验证

// 设备适配检查
function checkDeviceCompatibility(): boolean {
    const systemInfo = device.getInfo();
    
    // 检查屏幕尺寸适配
    if (systemInfo.screenWidth < 720 && !this.isLayoutOptimized) {
        return false;
    }
    
    // 检查API版本兼容性
    if (systemInfo.apiVersion < this.minApiVersion) {
        return false;
    }
    
    return true;
}

2. 响应式布局示例

@Entry
@Component
struct AdaptiveLayout {
  @State currentLayout: string = 'default'

  aboutToAppear() {
    device.screen.onChange((info) => {
      if (info.width >= 1200) {
        this.currentLayout = 'tablet';
      } else if (info.width >= 600) {
        this.currentLayout = 'foldable';
      } else {
        this.currentLayout = 'phone';
      }
    })
  }

  build() {
    Column() {
      if (this.currentLayout === 'tablet') {
        TabletLayout()
      } else if (this.currentLayout === 'foldable') {
        FoldableLayout()
      } else {
        PhoneLayout()
      }
    }
  }
}

十、上架检查清单

  1. 应用图标符合规范
  2. 隐私政策完整且可访问
  3. 所有声明的权限都有合理用途说明
  4. 应用经过充分测试
  5. 无第三方SDK合规问题
  6. 元数据(名称、描述等)准确无误
  7. 截图真实反映应用功能
  8. 支付功能(如有)集成正确
  9. 适配了多种设备类型
  10. 无侵犯知识产权的内容

结语

HarmonyOS应用上架是一个系统性的过程,需要开发者从开发初期就考虑应用商店的各项要求。通过遵循本文指南,您可以:

  1. 避免常见的上架被拒问题
  2. 缩短应用审核时间
  3. 提高应用在AppGallery中的展示效果
  4. 确保应用符合HarmonyOS生态规范

随着HarmonyOS生态的不断发展,上架政策可能会有调整,建议开发者定期查阅华为开发者官方文档获取最新信息。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐