最近写了一个arc资产管理工具,用来打包壳子。
0x00 有什么用?
在写谱过程中,每次测谱都需要手动把各种文件复制过去,然后用压缩软件打包。开发AAM的出发点就是解决这个问题。同时,通过计算需要的文件,AAM会报告可能被遗漏的文件,从而减少闪退的发生。
0x01 使用方法
一个典型的使用流程
介绍一下借助AAM导谱的流程。
0. 打开软件
点击“加载Assets”即可载入资产文件夹。所谓的“资产文件夹”需要包含img
,songs
等目录,对于ipa包来说一般是/Payload/Arc-mobile.app
,对于apk包来说一般是/assets
。
1. 导入歌曲
在载入文件夹后是这样一个显示歌曲信息的界面(这里用官包举例)。
不过这个不是很重要。接下来通过“文件”(Mac上是标题菜单)>“导入”>“歌曲(链接模式)”来导入曲目。点了之后就可以选择你的谱面文件夹了(多选也行!)。“谱面文件夹”需要包含songlist
、曲封、ogg音频、谱面等。
非常重要的一点是,一定要包含songlist
,因为AAM通过songlist
知道你需要哪些文件。而且你的songlist
格式应该是这样的:
{
"songs": [ // 曲目信息需要用{ "songs": [] }包起来
{
"id": "zhilishiid",
// 各种字段
"difficulties": [
{
"ratingClass": 0,
"chartDesigner": "",
"jacketDesigner": "",
"rating": -1 // 注意这里,我们约定不需要处理的谱面rating小于0
},
{
"ratingClass": 1,
"chartDesigner": "",
"jacketDesigner": "",
"rating": -1 // 这样pst和prs就会被当成不存在了
},
{
"ratingClass": 2,
"chartDesigner": "",
"jacketDesigner": "",
"rating": 0, // 随便标个什么,其实0就可以!
"ratingPlus": true
}
]
}
]
}
通过这种方式导入有一些好处:
a. AAM会记住你从哪导了歌,并且会在打包的时候自动复制,这在测谱的时候很有用。
b. AAM会复制你需要的东西,包括谱面、曲封、音频。
c. AAM不会复制多余的东西,包括但不限于Arcade
文件夹。
在导入之后,你一般能在曲目列表的最后看到刚导进去的歌,歌名旁边会有一个“外”标识,表明AAM在导入的时候记录了原始路径,并且会在每次打包的时候自动更新。
2. 验证依赖
在打包之前,建议先确认一下有没有漏掉东西。使用“生成”>“验证依赖”来检查包里的资源有没有问题。结果会像下面这样。
其中,[W]
开头的是警告,[E]
开头的是错误。你可能需要更多地关注“错误”的部分。为了强调这一点,“错误”会显示在“警告”上面。
3. 打包
通过“生成”>“生成...”菜单来打包。AAM并不能确定包的种类,所以需要在打包的时候选择。
这个地方有点重要,所以需要再确认一次。确认之后耐心等待就好。
顺利的话,就能找到打好的包了。之后再签名安装什么的就行。
其他功能
- 如果不想要每次打包都复制,用“导入”>“歌曲”就行。
- 如果需要导背景,可以用“导入”>“背景”。
0x02 QA部分
是不是应该有...功能
如你所见,AAM处在一个相当早期的阶段,而且这整个东西属于为了“方便测谱”这碟醋包的一盘饺子。
可以提建议,更多功能可能会加也可能不会(
链接模式的链接记到哪了
songlist
(笑
arc并不会理会多余的字段,所以直接写到里面了。
复制的时候漏文件了!
目前会自动复制的:
base.ogg
base(_256).jpg
- 难度>=0的
.aff
audioOverride
和jacketOverride
不会复制的:
- 音效天键用的音效
- 背景
- 其余我还没想到的东西
有bug
写的很糙,请见谅。并且我主要是在Mac上测的。
直达链接:Issues
好大啊。
electron是这样的(逃离