Sunny 截图上架 Microsoft Store 及Linux等商店的指北

2024-02-28 16:30

本文主要是介绍Sunny 截图上架 Microsoft Store 及Linux等商店的指北,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简 述: 详细介绍如何上架Windows商店的流程,配上流程图!用自己写的 Sunny 截图 应用软件如何上架到 微软商店 | Microsoft Store 和 Deepin Store 等;

即使现 2024 年,但这份指南的详细程度也是的网上首份的,亦含 Linux 商店的上架流程,敬热爱,敬开源,敬自己;

文章目录

    • 上架 App Store
    • 上架 Microsoft Store 流程
      • 流程图
      • 上架步骤
      • 值得记录的一些重难点
        • ①静默安装
        • ②微软运行时库的静默安装和检测
        • ③ 如何购买代码签名证书
        • ④过五关斩六将之 Defender SmartScreen
      • 展示效果
    • 上架微软驱动
    • 上架 Deepin / UOS Store 流程
      • 上架步骤
      • 展示效果
    • 上架 Speak Store 流程
      • 上架步骤
      • 展示步骤
    • 上架 openkylin Store 流程
      • 上架步骤
    • 系列地址


本文初发于 “偕臧的小站”,同步转载于此。


上架 App Store

写好的 EXE,添加了应用代码签名之后,是很想上架到 应用商店
上一年写了好几个跨平台的桌面应用程序,成功发布之后,添加了应用代码签名之后,接着就是想上架到应用商店

  • 『ThinkyMate』: 一款简洁且易用的 ChatGPT & AI 的桌面应用程序,支持ChatGPT 和星火讯飞大模型,以及语音转文本(STT)和文本转语音(TTS)等功能。官网: https://thinkymate.com/
  • 『Sunny』: 一款简洁且漂亮的截图 & 钉图的软件工具,亦支持图片翻译和OCR,支持 Windows,MacOS,Linux 平台。官网: https://sunny.xmuli.tech
  • 『FLIPPED』: 一款简洁且漂亮的截图 & 钉图的软件工具,定位于隐私安全,无任何联网功能,亦是 Sunny 的上一代。官网: https://flipped.xmuli.tech

上架 Microsoft Store 流程

流程图

一图胜千言,完整的上架审核的流程的重难点和提供解决方案。


上架步骤

注册 Microsoft 开发者账号,个人约 $19,永久买断制度; 企业版本的 约 $99;

可以上架常规的 EXE、 MSI 以及 MSIX,这些等,只需要签名即可。

*.msi 通常是企业用来批量推送静默升级和安装用的; *.msix 是微软商店推荐的打包格式,类似于一个沙盒,对权限等管理的比较严格,属于 UWP 的效果。

必定会遇到的坑🕳有:

  • 准备工作

    • 中文语言注册官网存在 bug,需要 F12 修改下代码

    • 购买代码签名证书,摸索不同类型的 EV / Standard 证书签名;费用:$ 几百-几千🔪/每年

    • 有自己的官网域名,且备案;费用:¥数百

    • 购买对象存储,以及子域名的 DNS 解析,设置 Https 直链下载;费用:¥数百

  • 上传和微软团队审核

    • 确保自己的 https 可以上传和下载无虞
    • EXE 必须支持命令行默认安装
    • 安装之前对于 vc_redist.x64.exe 的检测和静默安装
    • 能够过 Microsoft Defender SmartScreen
      • 首先 Defender SmartScreen 必须不会报毒
      • 满足上一条基础上,其次 Defender SmartScreen 还不能够提示:不知道是否有毒
    • 提供用户隐私保护 和 遇到问题解决得 wiki 得 RUL
    • 软件功能得主功能是没有 bug,且账号类需要提供测试密码等
    • 可能好多天都没有进度,无任何变化

值得记录的一些重难点

①静默安装

Sunny 截图也能够支持静默安装;

# innosetup制作的 exe 静默安装,其参数为 /silent /norestart
# msi 静默安装参数  BasicMSI.msi /qn  需要管理权限运行 CMD Sunny_setup_msvc_1.3.0_x64.exe" /VERYSILENT           # 不会出现安装向导(MS 上架用这个)
Sunny_setup_msvc_1.3.0_x64.exe" /silent /norestart    # 会出现安装向导

Note: url1 url2

②微软运行时库的静默安装和检测

vc_redist.x64.exe 在自己软件安装之前,是必须先检测下,和安装之前默认安装此运行时依赖;

我的解决方案是 通过 Inno Setup 写一段 .iss 脚本

procedure InstallVCRuntime( );
varszAppName, szParam, szExecutable, szArchitecture, szVCRuntimeInstalled, szFileExists: String;nRetCode: Integer;bFileExists, bVCRuntimeInstalled: Boolean; // 定义一个布尔变量beginszArchitecture := '{#MyArchitecture}';if szArchitecture  = 'x64' thenbeginszAppName := 'vc_redist.x64.exe';endelsebeginszAppName := 'vc_redist.x86.exe';end;szExecutable := ExpandConstant('{app}\') + szAppName;bVCRuntimeInstalled := RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{8bdfe669-9705-4184-9368-db9ce581e0e7}');   // x64或x86 均为此 guid 数值bFileExists := FileExists(szExecutable);if bVCRuntimeInstalled thenszVCRuntimeInstalled := 'True'elseszVCRuntimeInstalled := 'False';if bFileExists thenszFileExists := 'True'elseszFileExists := 'False';Log('-->szAppName:' + szAppName + ' szExecutable:' + szExecutable + ' szArchitecture:' + szArchitecture + ' szVCRuntimeInstalled:' + szVCRuntimeInstalled + ' szFileExists:' + szFileExists + ' The value of {app} is: ' + ExpandConstant('{app}'));if bVCRuntimeInstalled then      // 系统若已经安装了 VC_redist 则跳过beginLog('VC_redist is already installed. Skipping installation.');endelseif bFileExists then            // 此文件存在才安装beginLog('VC_redist is install');szParam := '/install /quiet /norestart';Exec(szExecutable, szParam, '', SW_HIDE, ewWaitUntilTerminated, nRetCode);Sleep(100);endelsebeginLog('Executable file not found: ' + szExecutable);end
end;
③ 如何购买代码签名证书

可以参考我写的这篇《分享如何拥有一份私人的『开源代码签名证书』》,已详述购买 EV / Standard / Open Source 的 Code Signing Certificate 🎉🎉🎉过程。还有如何进行签名

④过五关斩六将之 Defender SmartScreen

还要能够过 Microsoft Defender SmartScreen, 里面是一套一套的,初次提交被拒好几次都属正常。若是 EV 企业证书,氪大金,直接过。若是 Standard / Open Source 这类标准证书,需先将 EXE 提交 Submit a file for malware analysis, 重复多提交几次后,虽不会再报毒;但是审核依旧是会被拒绝, WHAT THE FUCK???

对应实际的运行弹窗是这个

唯一解决方案就是等待,待 exe 的下载量和安装量足够多,且数量越多,在微软的积累量信誉越多,过阈值即可被认可,顺利上架 Microsoft Store。

总结:

个人作品上架微软商店的流程很折磨,最后上架成功后也是拨开云雾;

若是文章对你有价值,亦可帮我积累Sunny的微软信誉,甚至感谢🙇‍ ; 截图下载 👉 Sunny_setup_msvc_1.3.0_x64.exe


展示效果

微软商店 GIF 见文章顶部截图,此为 Web 预览的截图:

上架微软驱动

驱动认证,可找一些 WHQL 实验室给过,费用约¥ 1w /次。或者自己买 EV 证书自己过 WHQL,周期会很长 。

验证方式为 Windows Update 驱动中可看到,另外一种是在 catalog.update.microsoft.com 中查询,驱动是否上架了和微软推送了。 驱动上架就不展开讲述了。


上架 Deepin / UOS Store 流程

上架步骤

上架方式分为两种

①若是需要上架到 UOS Stoe ,则需要注册对应开发者账号,官方文档 应用上架指南。额(⊙﹏⊙),但需要实名填写相关信息,通过之后就可以同时上架到 UOS 商业和 Deepin 社区两个版本。

可以在看到历史的每一个包和上架的版本,这一点很棒很有心,且每一种语言的展示也是用 Tab 页显示出来了,体验很出彩。

②若【仅】想要上架 Deepin 社区,突然发现前不久,有新出来了一种简化了的投递流程(2024.02.19),方便多了 社区投递系统使用说明, 基本直接上传应用包即可。

展示效果

已在 Deepin V20.9-V23 上移植完成

上架 深度商店效果

还发现了当初上架的一个开源软件 lfxSpeed,一个简单的 Deepin/UOS
的任务栏网速插件,真时间匆匆~

上架 Speak Store 流程

上架步骤

上架星火商店步骤

  • 【方式一】直接在 https://upload.deepinos.org.cn/index 网页上传 .deb 和截图等信息即可
  • 【方式二】摇人 → spark-app.store

展示步骤

上架成功

Note: 网页上传 .deb 总是错误,解决方案,必须在 Linux 系统下进行上传 .deb 才会成功;


上架 openkylin Store 流程

已移植到 openkylin 1.0.1 等版本,运行效果。

上架步骤

上架规则

需填写《开源软件上架申请表格_V1.0.0.docx》,且对 .deb 的 debian 文件夹的文件有点格式要求;参考如下。符合标准后提交表格和 .deb 即可。

版本镜像下载:openkylin 1.x X86

详细规则参考:

1、 包名_版本_架构.deb,各个字段需要与control文件里的参数保持一致。

2、 包名不能含有中文,只能包含数字字母和三个符号(.±),英文字母必须是小写,版本号必须以数字开头,架构只能为arm64和amd64和misp64el

例如:powerword_1.0_arm64.deb (均为下划线)

3、 软件中文名称、英文名称,各长度小于50个字符。

4、 icon(规范:128像素*128像素);

5、 软件截图(宽/高 1.5 按此长宽比的应用实际截图分辨率即可(至少5张)建议尺寸:1000像素*680像素)

6、 软件分类:精品、办公、开发、图像、影音、网络、游戏、教育、社交、其他、系统。最多选3个,第一个为主分类,后两个为附属分类。


系列地址

QtExamples 欢迎 star ⭐ 和 fork 🍴 这个系列的 C++ / QT / DTK 学习,附学习由浅入深的目录,这里你可以学到如何亲自编写这类软件的经验,这是一系列完整的教程,并且永久免费!

这篇关于Sunny 截图上架 Microsoft Store 及Linux等商店的指北的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/756006

相关文章

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用