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系统中磁盘分区、格式化和挂载的基本操作步骤和命令,包括MBR和GPT分区表的区别、fdisk和gdisk命令的使用、常见的文件系统格式以... 目录一、磁盘分区表分类二、fdisk命令创建分区1、交互式的命令2、分区主分区3、创建扩展分区,然后

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

Linux内核之内核裁剪详解

《Linux内核之内核裁剪详解》Linux内核裁剪是通过移除不必要的功能和模块,调整配置参数来优化内核,以满足特定需求,裁剪的方法包括使用配置选项、模块化设计和优化配置参数,图形裁剪工具如makeme... 目录简介一、 裁剪的原因二、裁剪的方法三、图形裁剪工具四、操作说明五、make menuconfig

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

Linux限制ip访问的解决方案

《Linux限制ip访问的解决方案》为了修复安全扫描中发现的漏洞,我们需要对某些服务设置访问限制,具体来说,就是要确保只有指定的内部IP地址能够访问这些服务,所以本文给大家介绍了Linux限制ip访问... 目录背景:解决方案:使用Firewalld防火墙规则验证方法深度了解防火墙逻辑应用场景与扩展背景:

Linux下MySQL8.0.26安装教程

《Linux下MySQL8.0.26安装教程》文章详细介绍了如何在Linux系统上安装和配置MySQL,包括下载、解压、安装依赖、启动服务、获取默认密码、设置密码、支持远程登录以及创建表,感兴趣的朋友... 目录1.找到官网下载位置1.访问mysql存档2.下载社区版3.百度网盘中2.linux安装配置1.

Linux使用粘滞位 (t-bit)共享文件的方法教程

《Linux使用粘滞位(t-bit)共享文件的方法教程》在Linux系统中,共享文件是日常管理和协作中的常见任务,而粘滞位(StickyBit或t-bit)是实现共享目录安全性的重要工具之一,本文将... 目录文件共享的常见场景基础概念linux 文件权限粘滞位 (Sticky Bit)设置共享目录并配置粘

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip