完整 manifest.json

  1. {
  2. "appid": "__UNI__XXXXXX,创建应用时云端分配的,不要修改。",
  3. "name": "应用名称,如uni-app",
  4. "description": "应用描述",
  5. "versionName": "1.0.0",
  6. "versionCode": "100",
  7. // app-plus 节点是 5+App 特有配置,推荐在 HBuilderX 的 manifest.json 可视化界面操作完成配置。
  8. "app-plus": {
  9. // HBuilderX->manifest.json->模块权限配置
  10. "modules": {
  11. "Contacts": {},
  12. "Fingerprint": {},
  13. "Maps": {},
  14. "Messaging": {},
  15. "OAuth": {},
  16. "Payment": {},
  17. "Push": {},
  18. "Share": {},
  19. "Speech": {},
  20. "Statistic": {},
  21. "VideoPlayer": {},
  22. "LivePusher": {}
  23. },
  24. "distribute": {
  25. // Android 与 iOS 证书相关信息均在打包时完成配置
  26. "android": {
  27. "packagename": "Android应用包名,如io.dcloud.uniapp",
  28. "keystore": "Android应用打包使用的密钥库文件",
  29. "password": "Android应用打包使用密钥库中证书的密码",
  30. "aliasname": "Android应用打包使用密钥库中证书的别名",
  31. "schemes": [
  32. "应用支持的scheme,大小写相关,推荐使用小写"
  33. ],
  34. "theme": "程序使用的主题",
  35. "android:name": "自定义程序入口类名",
  36. "custompermissions": "Boolean类型,是否自定义android权限,true表示自定义权限,只使用permissions下指定的android权限,不根据用户使用的5+模块自动添加android权限,false表示自动根据用户使用的5+模块自动添加android权限",
  37. "permissions": [
  38. "要添加的额外的android权限,如<uses-permission android:name=\"com.android.launcher.permission.INSTALL_SHORTCUT\" />",
  39. "<uses-permission android:name=\"com.android.launcher.permission.UNINSTALL_SHORTCUT\" />"
  40. ],
  41. "minSdkVersion": "apk支持的最低版本,默认值为14",
  42. "targetSdkVersion": "apk的目标版本,默认值为21"
  43. },
  44. "ios": {
  45. "appid": "iOS应用标识,苹果开发网站申请的appid,如io.dcloud.uniapp",
  46. "mobileprovision": "iOS应用打包配置文件",
  47. "password": "iOS应用打包个人证书导入密码",
  48. "p12": "iOS应用打包个人证书,打包配置文件关联的个人证书",
  49. "devices": "iOS应用支持的设备类型,可取值iphone/ipad/universal",
  50. "urltypes": [{
  51. "urlschemes": [
  52. "hbuilder",
  53. "必选,程序所支持的自定义协议名称"
  54. ],
  55. "id": "可选,自定义协议的标识",
  56. "icon": "可选,打开程序时显示的图标"
  57. },
  58. {
  59. "urlschemes": [
  60. "http",
  61. "https",
  62. "必选,程序所支持的自定义协议名称,大小写无关,推荐使用小写"
  63. ],
  64. "id": "可选,自定义协议的标识",
  65. "icon": "可选,打开程序时显示的图标"
  66. }
  67. ],
  68. "frameworks": ["使用native.js调用API要引用的库文件名称,如CoreLocation.framework", "QuartzCore.framework"],
  69. "idfa": "true|false,是否使用广告标识符,默认值为false",
  70. "plistcmds": [
  71. "Set :权限 使用权限的原因",
  72. "Set :NSCameraUsageDescription 说明使用用户相机的原因"
  73. ]
  74. },
  75. // HBuilderX->manifest.json->SDK配置
  76. "sdkConfigs": {
  77. "maps": {
  78. // 地图只能选一个,这里选的是百度。
  79. "baidu": {
  80. "appkey_ios": "",
  81. "appkey_android": ""
  82. }
  83. },
  84. "oauth": {
  85. // 微信登录
  86. "weixin": {
  87. "appid": "",
  88. "appsecret": ""
  89. },
  90. // QQ登录
  91. "qq": {
  92. "appid": ""
  93. },
  94. // 新浪微博登录
  95. "sina": {
  96. "appkey": "",
  97. "appsecret": "",
  98. "redirect_uri": ""
  99. },
  100. // 小米登录
  101. "xiaomi": {
  102. "appid_ios": "",
  103. "appsecret_ios": "",
  104. "redirect_uri_ios": "",
  105. "appid_android": "",
  106. "appsecret_android": "",
  107. "redirect_uri_android": ""
  108. }
  109. },
  110. "payment": {
  111. // Apple应用内支付
  112. "appleiap": {},
  113. // 支付宝支付
  114. "alipay": {
  115. "scheme": ""
  116. },
  117. // 微信支付
  118. "weixin": {
  119. "appid": ""
  120. }
  121. },
  122. "push": {
  123. // 推送只能选择一个,这里选的是个推。
  124. "igexin": {
  125. "appid": "",
  126. "appkey": "",
  127. "appsecret": ""
  128. }
  129. },
  130. "share": {
  131. // 微信分享
  132. "weixin": {
  133. "appid": "",
  134. "appsecret": ""
  135. },
  136. // 新浪微博分享
  137. "sina": {
  138. "appkey": "",
  139. "appsecret": "",
  140. "redirect_uri": ""
  141. },
  142. // 分享到QQ好友
  143. "qq": {
  144. "appid": ""
  145. },
  146. // 腾讯微博分享
  147. "tencent": {
  148. "appkey": "",
  149. "appsecret": "",
  150. "redirect_uri": ""
  151. }
  152. },
  153. "statics": {
  154. // 友盟统计
  155. "umeng": {
  156. "appkey_ios": "",
  157. "channelid_ios": "",
  158. "appkey_android": "",
  159. "channelid_android": ""
  160. }
  161. }
  162. },
  163. "orientation": [
  164. "portrait-primary",
  165. "landscape-primary",
  166. "portrait-secondary",
  167. "landscape-secondary"
  168. ],
  169. // HBuilderX->manifest.json->图标配置
  170. "icons": {
  171. "ios": {
  172. "appstore": "必选, 1024x1024, 提交app sotre使用的图标",
  173. "iphone": {
  174. "app@2x": "可选,120x120,iOS7-11程序图标(iPhone4S/5/6/7/8)",
  175. "app@3x": "可选,180x180,iOS7-11程序图标(iPhone6plus/7plus/8plus/X)",
  176. "spotlight@2x": "可选,80x80,iOS7-11 Spotlight搜索图标(iPhone5/6/7/8)",
  177. "spotlight@3x": "可选,120x120,iOS7-11 Spotlight搜索图标(iPhone6plus/7plus/8plus/X)",
  178. "settings@2x": "可选,58x58,iOS5-11 Settings设置图标(iPhone5/6/7/8)",
  179. "settings@3x": "可选,87x87,iOS5-11 Settings设置图标(iPhone6plus/7plus/8plus/X)",
  180. "notification@2x": "可选,40x40,iOS7-11 通知栏图标(iPhone5/6/7/8)",
  181. "notification@3x": "可选,60x60,iOS7-11 通知栏图标(iPhone6plus/7plus/8plus/X)"
  182. },
  183. "ipad": {
  184. "app": "可选,76x76,iOS7-11程序图标",
  185. "app@2x": "可选,152x152,iOS7-11程序图标(高分屏)",
  186. "proapp@2x": "可选,167x167,iOS9-11程序图标(iPad Pro)",
  187. "spotlight": "可选,40x40,iOS7-11 Spotlight搜索图标",
  188. "spotlight@2x": "可选,80x80,iOS7-11 Spotlight搜索图标(高分屏)",
  189. "settings": "可选,29x29,iOS5-11 设置图标",
  190. "settings@2x": "可选,58x58,iOS5-11 设置图标(高分屏)",
  191. "notification": "可选,20x20,iOS7-11 通知栏图标",
  192. "notification@2x": "可选,40x40,iOS7-11 通知栏图标(高分屏)"
  193. }
  194. },
  195. "android": {
  196. "mdpi": "必选,48x48,普通屏程序图标",
  197. "ldpi": "必选,48x48,大屏程序图标",
  198. "hdpi": "必选,72x72,高分屏程序图标",
  199. "xhdpi": "必选,96x96,720P高分屏程序图标",
  200. "xxhdpi": "必选,144x144,1080P高分屏程序图标",
  201. "xxxhdpi": "可选,192x192"
  202. }
  203. },
  204. // HBuilderX->manifest.json->启动图配置
  205. "splashscreen": {
  206. "ios": {
  207. "iphone": {
  208. "retina35": "可选,640x960,3.5英寸设备(iPhone4)启动图片",
  209. "retina40": "可选,640x1136,4.0英寸设备(iPhone5)启动图片",
  210. "retina40l": "可选,1136x640,4.0英寸设备(iPhone5)横屏启动图片",
  211. "retina47": "可选,750x1334,4.7英寸设备(iPhone6)启动图片",
  212. "retina47l": "可选,1334x750,4.7英寸设备(iPhone6)横屏启动图片",
  213. "retina55": "可选,1242x2208,5.5英寸设备(iPhone6Plus)启动图片",
  214. "retina55l": "可选,2208x1242,5.5英寸设备(iPhone6Plus)横屏启动图片",
  215. "iphonex": "可选,1125x2436,iPhoneX启动图片",
  216. "iphonexl": "可选,2436x1125,iPhoneX横屏启动图片"
  217. },
  218. "ipad": {
  219. "portrait": "可选,768x1004,需支持iPad时必选,iPad竖屏启动图片",
  220. "portrait-retina": "可选,1536x2008,需支持iPad时必选,iPad高分屏竖屏图片",
  221. "landscape": "可选,1024x748,需支持iPad时必选,iPad横屏启动图片",
  222. "landscape-retina": "可选,2048x1496,需支持iPad时必选,iPad高分屏横屏启动图片",
  223. "portrait7": "可选,768x1024,需支持iPad iOS7时必选,iPad竖屏启动图片",
  224. "portrait-retina7": "可选,1536x2048,需支持iPad iOS7时必选,iPad高分屏竖屏图片",
  225. "landscape7": "可选,1024x768,需支持iPad iOS7时必选,iPad横屏启动图片",
  226. "landscape-retina7": "可选,2048x1536,需支持iPad iOS7时必选,iPad高分屏横屏启动图片"
  227. }
  228. },
  229. "android": {
  230. "mdpi": "必选,240x282,普通屏启动图片",
  231. "ldpi": "必选,320x442,大屏启动图片",
  232. "hdpi": "必选,480x762,高分屏启动图片",
  233. "xhdpi": "必选,720x1242,720P高分屏启动图片",
  234. "xxhdpi": "必选,1080x1882,1080P高分屏启动图片"
  235. }
  236. }
  237. },
  238. // HBuilderX->manifest.json->启动图配置->启动界面选项
  239. "splashscreen": {
  240. "waiting": true,
  241. "autoclose": true,
  242. "delay": 0
  243. },
  244. "error": {
  245. "url": "页面加载错误时打开的页面地址,可以是网络地址,也可以是本地地址"
  246. },
  247. "useragent": {
  248. "value": "自定义ua字符串",
  249. "concatenate": "是否为追加模式"
  250. },
  251. "useragent_ios": {
  252. "value": "与useragent的value一致,仅在iOS平台生效,当useragent和useragent_ios同时存在时优先级useragent_ios>useragent",
  253. "concatenate": "与useragent的concatenate一致,仅iOS平台生效"
  254. },
  255. "useragent_android": {
  256. "value": "与useragent的value一致,仅在Android平台生效,当useragent和useragent_android同时存在时优先级useragent_android>useragent",
  257. "concatenate": "与useragent的concatenate一致,仅Android平台生效"
  258. },
  259. "ssl": "accept|refuse|warning,访问https网络时对非受信证书的处理逻辑",
  260. "runmode": "normal",
  261. "appWhitelist": [
  262. "Android平台下载apk地址白名单列表",
  263. "iOS平台跳转appstore地址白名单列表"
  264. ],
  265. "schemeWhitelist": [
  266. "URL Scheme白名单列表,如:mqq" //iOS要求预先指定要打开的App名单,不能随意调用任何App
  267. ],
  268. "channel": "渠道标记,可在DCloud开发者中心查看各渠道应用的统计数据",
  269. "adid": "广告联盟会员id,在DCloud开发者中心申请后填写",
  270. "safearea": { //安全区域配置,仅iOS平台生效
  271. "background": "#CCCCCC", //安全区域外的背景颜色,默认值为"#FFFFFF"
  272. "bottom": { // 底部安全区域配置
  273. "offset": "none|auto" // 底部安全区域偏移,"none"表示不空出安全区域,"auto"自动计算空出安全区域,默认值为"none"
  274. },
  275. "left": { //左侧安全区域配置(横屏显示时有效)
  276. "offset": "none|auto"
  277. },
  278. "right": { //右侧安全区域配置(横屏显示时有效)
  279. "offset": "none|auto"
  280. }
  281. },
  282. "softinput": {
  283. "navBar": "auto", //是否显示iOS软键盘上的“完成”导航条
  284. "mode": "adjustResize|adjustPan" //软键盘弹出模式,
  285. }
  286. },
  287. // 快应用特有配置
  288. "quickapp": {},
  289. // 微信小程序特有配置
  290. "mp-weixin": {
  291. "appid": "wx开头的微信小程序appid"
  292. },
  293. // 百度小程序特有配置
  294. "mp-baidu": {
  295. "appid": "百度小程序appid"
  296. },
  297. // 头条小程序特有配置
  298. "mp-toutiao": {
  299. "appid": "头条小程序appid"
  300. },
  301. "h5": {
  302. "title": "演示", //页面标题,默认使用 manifest.json 的 name
  303. "template": "index.html", //index.html模板路径,相对于应用根目录,可定制生成的 html 代码
  304. "router": {
  305. "mode": "history", //路由跳转模式,支持 hash|history ,默认 hash
  306. "base": "/hello/" //应用基础路径,例如,如果整个单页应用服务在 /app/ 下,然后 base 就应该设为 "/app/"
  307. },
  308. "async": { //页面js异步加载配置
  309. "loading": "AsyncLoading", //页面js加载时使用的组件(需注册为全局组件)
  310. "error": "AsyncError", //页面js加载失败时使用的组件(需注册为全局组件)
  311. "delay": 200, //展示 loading 加载组件的延时时间(页面 js 若在 delay 时间内加载完成,则不会显示 loading 组件)
  312. "timeout": 3000 //页面js加载超时时间(超时后展示 error 对应的组件)
  313. }
  314. }
  315. }

更多配置相关的说明,请参考 manifest.json文档说明 中的描述。可能节点的位置与普通的 5+App 有差异,请按照配置的名称进行对应。