PicList 现已上架Mac App Store 分享下整个上架过程和遇到的问题
PicList 是一款云存储/图床平台管理和文件上传工具,基于 PicGo 进行了深度二次开发,保留了 PicGo 的所有功能的同时,为相册添加了同步云端删除功能,同时增加了完整的云存储管理功能,包括云端目录查看、文件搜索、批量上传下载和删除文件,复制多种格式文件链接和图片/markdown/文本/视频预览等。
开源地址和软件官网
- Github: https://github.com/Kuingsmile/PicList
- 软件官网:https://piclist.cn
Mac App Store地址
PicList 基于PicGo的图片管理工具 on the Mac App Store (apple.com)
上架前的软件打包
加入开发者计划
第一步当然是加入Apple Developer Program - Apple Developer,这需要99 美元的年费,具体的申请流程直接参考官网跟着走就行。
当收到苹果的欢迎邮件后,就可以准备下一步了。

生成签名证书
这里,我们首先需要生成证书请求文件(Certificate Signing Request,CSR)文件,不同于我在上一篇使用Github actions自动化打包和签名基于electron的mac桌面应用流程分享 - 知乎 (zhihu.com)里提到的,这里的CSR文件需要通过mac os的钥匙串应用生成,不然后面签名时可能会报错。
打开 mac 的钥匙串访问 -> 证书助理 -> 从证书颁发机构请求证书,这里生了 CertificateSigningRequest.certSigningRequest 的文件,这个文件可以被多次用来生成 mac 证书。

前往Certificates, Identifiers & Profiles - Apple Developer,生成Mac App Distribution,Mac Installer Distribution和Developer ID Application这三个证书。当需要上传文件时,就是上传刚才生成的CSR文件。

下载三个证书,导入到钥匙串-登录中。
注册AppId
前往Certificates, Identifiers & Profiles - Apple Developer,生成一个正式的AppId,这里需要选择对应的权限。
生成的AppId需要和项目打包配置里的appId设置一致,否则会被苹果拒绝。
生成配置文件
前往Certificates, Identifiers & Profiles - Apple Developer,添加一个新的配置文件,添加时需要选择刚才注册的appId和第一步生成的证书。
配置打包环境
这里我们需要为我们的项目新增几个打包所需的配置文件,注意我使用的打包软件是vue-cli-plugin-electron-builder,在项目的build目录下新建以下几个文件:
- entitlements.mas.plist
内容参考下面的代码,需要注意的是,你需要根据自己项目的实际情况添加需要的权限:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.cs.allow-jit</key>
<true/>
.....其它权限
</dict>
</plist>
- entitlements.mas.inherit.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.inherit</key>
<true/>
</dict>
</plist>
- entitlements.mas.loginhelper.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
</dict>
</plist>
将刚才生成的配置文件下载下来,也放到build目录下,然后如下修改vue.config.js中的打包配置:
mac: {
target: [{
target: 'mas',
arch: [
'universal'
]
}],
....其它设置
},
mas: {
icon: 'build/icons/icon.icns',
hardenedRuntime: true,
entitlements: 'build/entitlements.mas.plist',
entitlementsInherit: 'build/entitlements.mas.inherit.plist',
provisioningProfile: 'build/placeholder.provisionprofile',
entitlementsLoginHelper: 'build/entitlements.mas.loginhelper.plist'
},
打包
直接使用vue-cli-service electron:build命令进行打包,在打包过程中会自动对软件包进行签名,最后生成一个pkg安装包。
上架
添加APP
前往App Store Connect (apple.com),添加一个新的APP,根据官网的指示填写对应的各种APP相关的信息。
如果APP需要设置为收费的话,还需要去Agreements, Tax, and Banking (apple.com),签署和同意付费APP相关的协议。
上传APP与测试
使用官方软件Transporter on the Mac App Store (apple.com)把之前打包生成的pkg文件进行上传,这时apple会自动进行校验,如果报错的话根据指示修改就可以。
上传完成后,可以在软件的testflight设置页面添加自己为测试员,然后将对应的构建版本加入到测试列表内,再下载TestFlight on the App Store (apple.com),提前进行一下安装运行测试,防止出现bug影响审核。
审核
填写完所有的信息之后,就可以提交审核啦,审核过程中可能会被拒绝,这时候根据apple提供的修改建议进行修改就可以啦,我自己是被拒绝了两次之后才终于通过。。
推荐在提交审核之前,可以录制一个软件使用说明的视频,或者写一个简单的使用说明文档,放在审核附件里,防止审核员不会用你的app。。
PicList 现已上架Mac App Store 分享下整个上架过程和遇到的问题的更多相关文章
- 一个App从创意到最终上架到App Store里的整个过程是怎样的?
一个App从创意到最终上架到App Store里的整个过程是怎样的? 制作App需要什么软件?应该看什么书?需要哪些设备?推到App Store里,需要注册什么网站?是否需要付费?需要什么证书之类的? ...
- Prepare for Mac App Store Submission--为提交到Mac 应用商店做准备
返回 Mac App Store Prepare for Mac App Store Submission 提交到Mac 应用商店之前的准备 Most of your time is spent on ...
- [苹果APP上架]ios App Store上架详细教程-一条龙顺滑上架-适合小白
如何在 2022 年将您的应用提交到 App Store 您正在启动您的第一个应用程序,或者距离上次已经有一段时间了.作者纸飞机@cheng716051来给你讲讲将应用程序提交到 App Store ...
- The Mac App Store isn't working. How to fix?
Q. The Mac App Store isn't working. How to fix? First you must have built-in Ethernet at 'en0'. So, ...
- 使用Mac App Store更新、下载软件时出现未知错误的解决方法
很多果迷在使用 Mac App Store 更新/下载软件时,可能都曾被”未知错误”困扰过,怎么解决也不行.然而,过一段时间不知道做了什么又自己好了.今天我们提供两个解决这个问题的方法,下次遇到这个问 ...
- Start Developing Mac Apps -- Mac App Store Mac 应用商店
Mac App Store The information you’ve read so far focused on how to create an app in Xcode. However ...
- 一张图教你搞定Mac App Store 应用安装包存储路径
还在为找不到App Store 更新应用的安装文件发愁吗?是否有过多个人同时需要更新Xcode,都自己下载一次的痛苦经历? 大家都知道通过苹果服务器下载东西,确实难耐!AppStore 甚至都经常提示 ...
- Mac App Store应用签名和pkg签名(必须签名后才能销售)
App签名 只有用苹果颁发的证书签名的应用才能在App Store上进行销售,所以我们开发的应用必须打上签名. 签名有两种方式,一是使用Xcode,在配置里面设置签名,编译出来的app就有了签名:二是 ...
- Mac App Store应用签名和pkg签名,查看签名
App签名 只有用苹果颁发的证书签名的应用才能在App Store上进行销售,所以我们开发的应用必须打上签名. 签名有两种方式,一是使用Xcode,在配置里面设置签名,编译出来的app就有了签名:二是 ...
- IOS 上架到App Store被拒的常见问题总结
Guideline 2.3.3 - Performance - Accurate Metadata 2017年11月16日 上午12:52 发件人 Apple 2. 3 Performance: Ac ...
随机推荐
- CSS3-animation实现走马灯效果
动画animation 1.先定义动画: @keyframes 动画名称( from{} to{} ) 或者 @keyframes 动画名称( 0%{} 50%{} 100%{} ) 百分号指的是动画 ...
- 项目启用eslint 检测工具
在日常开发中,一个大点的项目会有多人参与,那么可能就会出现大家的代码风格不一,各显神通,这个时候就要祭出我们的eslint. 在这之前磨刀不误砍柴工,我们先来配置一下我们的代码编辑工具,如何在vsco ...
- 挖坑——未完成题目列表QwQ
OI一些的小计划: 日拱一卒,功不唐捐! Unfinished luogu P2814 家谱 Luogu P2076 聚会 luogu P2212 Watering the Fields 草坪上有N ...
- K8s 与 Service Mesh(服务与流量治理)
K8s相关资料可参考链接: Kubernetes简介 1 什么是Service Mesh Service Mesh 是一个专门处理服务通讯的基础设施层.它的职责是在由云原生应用组成服务的复杂拓扑结构 ...
- CSS选择符及盒模型
一.选择符 1.类型选择符(标签选择符) 特点:能选中当前结构里面(全部同名)标签. 应用:统一某一标签样式时或清除某一标签默认样式时. 2.id选择符 特点:(唯一性!)在同一个页面里面,一个id名 ...
- PHP Redis - Set(集合)
Redis 的 set 无序集合,与 list 类似,特殊之处在于 set 可以自动排重,不会出现重复数据 集合中最大的成员数为 232-1 (4294967295, 每个集合可存储40多亿个成员). ...
- jmeter将接口返回写入log
1.添加BeanShell 后置处理程序 2. //拿到响应值 String json = prev.getResponseDataAsString(); log.info("Value为: ...
- Linux deploy 32位系统 怎么安装宝塔怎么安装linux系统安装宝塔后搭建网站
getconf LONG_BIT 获取当前linux系统位数
- ubuntu16.04openssh升级
wget http://zlib.net/zlib-1.2.11.tar.gz tar xf zlib-1.2.11.tar.gz && cd zlib-1.2.11/ ./confi ...
- Vue 加载显示源代码 , Vue 屏幕闪动
1.当网络较慢,网页还在加载 Vue.js ,而导致 Vue 来不及渲染,这时页面就会显示出 Vue 源代码.我们可以使用 v-cloak 指令来解决这一问题. <style> [v-cl ...