Skip to content

项目配置

项目配置是将您的 uniapp 项目与开发工具关联,并设置打包参数的过程。

概述

项目配置包括:

  • 导入 uniapp 项目
  • 配置应用信息
  • 设置打包参数
  • 配置图标和启动页
  • 设置权限和功能模块

导入项目

1. 打开项目

在 uniapp 开发工具中:

  1. 点击"文件" > "打开项目"
  2. 或点击欢迎页面的"导入项目"按钮
  3. 选择您的 uniapp 项目根目录

2. 项目识别

工具会自动识别项目类型:

  • HBuilderX 项目: 包含 manifest.json 文件
  • CLI 项目: 包含 package.jsonvue.config.js

提示

确保项目已在 HBuilderX 或 CLI 中创建并完成基本开发。

3. 验证项目结构

工具会检查项目是否包含必需文件:

your-project/
├── manifest.json         # 应用配置文件(必需)
├── pages.json           # 页面路由配置(必需)
├── App.vue              # 应用入口(必需)
├── main.js              # 入口文件
├── uni.scss             # 全局样式变量
├── package.json         # 依赖配置
└── pages/              # 页面目录
    └── index/
        └── index.vue

应用基本信息配置

1. 应用信息

在"项目配置" > "应用信息"中设置:

基本信息:

  • 应用名称: 显示在设备上的应用名称
  • 应用描述: 应用的简短描述
  • 版本名称: 用户可见的版本号,如 1.0.0
  • 版本号: 内部版本号,必须为整数,如 100

应用标识:

  • AppID: uniapp 应用的唯一标识符
  • Bundle ID (iOS): iOS 应用包名,格式:com.company.appname
  • Package Name (Android): Android 应用包名,格式:com.company.appname

注意

  • Bundle ID 和 Package Name 一旦发布后不应更改
  • 必须使用您拥有的域名反向格式
  • 只能包含字母、数字和点号

2. 示例配置

json
{
  "name": "我的应用",
  "description": "一个优秀的 uniapp 应用",
  "versionName": "1.0.0",
  "versionCode": 100,
  "appid": "__UNI__1234567",
  "ios": {
    "bundleId": "com.mycompany.myapp"
  },
  "android": {
    "packageName": "com.mycompany.myapp"
  }
}

Android 平台配置

1. 基本设置

最低 SDK 版本:

  • 推荐:API 21 (Android 5.0) 或更高
  • 设置过低可能导致某些功能不可用
  • 设置过高会减少兼容设备数量

目标 SDK 版本:

  • 推荐:API 33 (Android 13) 或最新稳定版
  • 影响应用在新系统上的行为

构建工具版本:

  • 推荐:33.0.0 或更高
  • 需要与 Android SDK 中已安装的版本匹配

2. 签名配置

Android 应用发布需要签名。

创建密钥库

使用 keytool 创建密钥:

bash
keytool -genkey -v -keystore my-release-key.keystore \
  -alias my-key-alias \
  -keyalg RSA \
  -keysize 2048 \
  -validity 10000

参数说明:

  • keystore: 密钥库文件名
  • alias: 密钥别名
  • keyalg: 加密算法
  • keysize: 密钥长度
  • validity: 有效期(天)

配置签名

在工具中配置签名信息:

  • 密钥库路径: 选择 .keystore 文件
  • 密钥库密码: 创建时设置的密码
  • 密钥别名: 创建时设置的别名
  • 密钥密码: 密钥的密码

重要

  • 妥善保管密钥库文件和密码
  • 密钥库丢失将无法更新应用
  • 建议使用密码管理工具保存密码

3. 权限配置

选择应用需要的权限:

常用权限:

  • 📷 相机 (CAMERA)
  • 📸 读取相册 (READ_EXTERNAL_STORAGE)
  • 💾 写入存储 (WRITE_EXTERNAL_STORAGE)
  • 📍 位置信息 (ACCESS_FINE_LOCATION)
  • 📞 拨打电话 (CALL_PHONE)
  • 📱 读取电话状态 (READ_PHONE_STATE)
  • 🔔 通知 (POST_NOTIFICATIONS)

提示

只请求应用实际需要的权限,过多权限可能导致用户不信任。

4. 功能模块

选择要包含的 uniapp 功能模块:

  • 地图: 高德地图、百度地图、腾讯地图
  • 支付: 支付宝、微信支付
  • 分享: 微信分享、QQ 分享、新浪微博
  • 推送: uni-push、个推、极光推送
  • 统计: 友盟统计、Google Analytics
  • 登录: 微信登录、QQ 登录、Apple 登录

每个模块可能需要额外配置,如 API Key。


iOS 平台配置

1. 基本设置

部署目标:

  • 推荐:iOS 11.0 或更高
  • 设置过低可能无法使用新 API
  • 设置过高会减少兼容设备

设备类型:

  • iPhone
  • iPad
  • Universal (通用应用)

2. 证书和描述文件

开发证书

用于开发和测试:

  1. 在 Apple Developer 后台创建开发证书
  2. 下载 .cer 文件并双击安装
  3. 在工具中选择对应的证书

发布证书

用于发布到 App Store 或企业分发:

  1. 创建发布证书
  2. 安装到钥匙串
  3. 在工具中选择

描述文件

  1. 开发描述文件: 用于真机调试
  2. Ad Hoc 描述文件: 用于内测分发
  3. App Store 描述文件: 用于 App Store 发布

在工具中:

  • 自动检测已安装的描述文件
  • 或手动导入 .mobileprovision 文件

3. 权限配置

iOS 需要在 Info.plist 中声明权限使用说明:

xml
<key>NSCameraUsageDescription</key>
<string>需要使用相机拍摄照片</string>

<key>NSPhotoLibraryUsageDescription</key>
<string>需要访问相册选择图片</string>

<key>NSLocationWhenInUseUsageDescription</key>
<string>需要获取您的位置信息</string>

在工具中,为每个权限添加使用说明(中英文)。

4. Capabilities

配置应用能力:

  • 推送通知 (Push Notifications)
  • 应用内购买 (In-App Purchase)
  • Apple 登录 (Sign In with Apple)
  • 关联域名 (Associated Domains)
  • 后台模式 (Background Modes)

图标和启动页

1. 应用图标

Android 图标尺寸:

密度尺寸说明
mdpi48x48低密度屏幕
hdpi72x72中密度屏幕
xhdpi96x96高密度屏幕
xxhdpi144x144超高密度屏幕
xxxhdpi192x192超超高密度屏幕

iOS 图标尺寸:

设备尺寸说明
iPhone120x120@2x
iPhone180x180@3x
iPad152x152@2x
App Store1024x1024商店图标

快速生成图标

工具提供图标生成功能:

  1. 准备一张 1024x1024 的高清图标
  2. 点击"生成图标"
  3. 自动生成各尺寸图标

2. 启动页

Android 启动页:

  • 默认启动图:1080x1920 (竖屏)
  • 横屏启动图:1920x1080 (可选)
  • 支持 9-patch 格式

iOS 启动页:

  • 使用 LaunchScreen.storyboard
  • 或提供各尺寸启动图

推荐使用 storyboard,适配所有屏幕尺寸。


高级配置

1. 自定义资源

Android:

  • 添加原生资源文件到 nativeResources/android/
  • 自动合并到打包产物

iOS:

  • 添加资源到 nativeResources/ios/
  • 自动包含在 Xcode 项目中

2. 自定义配置文件

Android Gradle 配置:

编辑 android.gradle 自定义构建参数:

gradle
android {
    defaultConfig {
        // 自定义配置
        manifestPlaceholders = [
            APP_NAME: "我的应用"
        ]
    }
}

iOS Info.plist:

添加自定义键值对。

3. 离线资源

配置是否使用离线资源:

  • 在线资源: 从服务器加载
  • 离线资源: 打包到应用中

配置文件示例

完整的 manifest.json 配置示例:

json
{
  "name": "示例应用",
  "appid": "__UNI__1234567",
  "description": "这是一个示例应用",
  "versionName": "1.0.0",
  "versionCode": "100",

  "app-plus": {
    "modules": {
      "Maps": {},
      "Payment": {},
      "Share": {},
      "Push": {}
    },

    "distribute": {
      "android": {
        "packagename": "com.example.app",
        "minSdkVersion": 21,
        "targetSdkVersion": 33,
        "permissions": [
          "<uses-permission android:name=\"android.permission.CAMERA\"/>",
          "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>"
        ]
      },

      "ios": {
        "bundleId": "com.example.app",
        "deploymentTarget": "11.0",
        "privacyDescription": {
          "NSCameraUsageDescription": "需要使用相机",
          "NSPhotoLibraryUsageDescription": "需要访问相册"
        }
      },

      "icons": {
        "android": {
          "hdpi": "res/icons/72x72.png",
          "xhdpi": "res/icons/96x96.png",
          "xxhdpi": "res/icons/144x144.png",
          "xxxhdpi": "res/icons/192x192.png"
        },
        "ios": {
          "iphone": {
            "app@2x": "res/icons/120x120.png",
            "app@3x": "res/icons/180x180.png"
          },
          "ipad": {
            "app@2x": "res/icons/152x152.png"
          }
        }
      }
    }
  }
}

常见问题

包名冲突

问题: 提示包名已被使用

解决方案:

  • 更改为唯一的包名
  • 使用您自己的域名反向格式

签名验证失败

问题: Android 签名配置错误

解决方案:

  1. 检查密钥库路径是否正确
  2. 确认密码输入正确
  3. 验证密钥别名

iOS 证书不匹配

问题: 证书和描述文件不匹配

解决方案:

  1. 确认证书类型(开发/发布)
  2. 检查 Bundle ID 是否一致
  3. 重新下载描述文件

图标显示异常

问题: 图标在设备上显示模糊或变形

解决方案:

  1. 确保图标尺寸正确
  2. 使用高质量 PNG 图片
  3. 避免透明度过高

配置检查清单

在开始打包前,确认:

  • [ ] 应用基本信息已填写
  • [ ] Bundle ID / Package Name 已设置
  • [ ] 版本号符合规范
  • [ ] Android 签名已配置(发布时)
  • [ ] iOS 证书和描述文件已配置
  • [ ] 权限配置完整且必要
  • [ ] 图标和启动页已设置
  • [ ] 功能模块已选择并配置

下一步

项目配置完成后,您可以:

Released under the MIT License.