MacOS下利用Alfred Workflow批量签名Android APK

最近需要在mac os上搭建完整的生产环境,可是在安卓apk签名的问题上卡了半天。当然,Mac下的Eclipse也是自带签名工具的,但是它只能在工程export时起作用。由于笔者需要向第三方加密平台上传APK,再从这些平台下载加密完的各渠道APK们二次签名。一个高效、漂亮的批量签名工具就显得尤为必要了。

总有一些Terminal神教信徒坚称命令行才是唯一有效率的,视一切GUI为异宗。我虽觉自己尚不够格对此作个评判,但只知道涉及到文件管理时,命令行实在是力不从心。当你面对着十来个待签名的渠道包APK,即使不去在命令行里一行行的敲jarsigner,写个shell每次不厌其烦的输入各种冗长的路径也着实让人头疼。

这里需要介绍的方法是利用小黑帽Alfred 2的Workflow功能。关于Alfred,不了解的童鞋请自行Google,我在这里就不多费口舌了。如果你像我一样为Mac上Total Commander和Listary的缺失而懊恼,那么Alfred总算让我们有点安慰了。知乎传送门: 借助 Alfred 2 的 Workflows 功能可以做哪些好玩的事情?

打开Alfed输入框后,按”⌘ + ,” 进入Preference页面,点击工具栏中的Workflow Tab

AL1

点击Workflow Tab页左下角的”+”号,新建一个Blank Workflow. 不嫌麻烦的话,可以给它拖一个可爱的Logo。

AL2

接下来就是核心部分了。首先我们需要新建一个文件选择器。在新建出的Workflow中点击右上角的”+”, 弹出菜单中选择 Triggers -> File Action。注意勾选Accepts multiple files

AL3

有了文件选择器,接下来就要建立针对被选择文件的处理逻辑了。再次点击右上角的”+”,选择 Actions -> Run Script。

sc

在Script一栏中填入如下脚本

in="{query}"

blah='	' read -a array <<< "$in"

suc_count=0
fail_count=0

for i in "${array[@]}"
do

E=$(jarsigner -keystore /yourkeystorepath.keystore -storepass "keysotre passwrod"  -keypass "alias passwrod" $i aliasname)

if [ -z "$E" ]
	then
		suc_count=$(($suc_count+1))

	else
		fail_count==$(($fail_count+1))
fi

done

echo "Success: $suc_count"
echo "Fail: $fail_count"

这份脚本应该算比较简明了,我简要提两点。开头的两行是作输入解析的,Alfred在工作流中只以{query}作为每个工作单元的输入输出。当涉及多个输入时,query中一般以tab作多个文件名的分隔。suc_count和fail_count保存的是签名结果,用以向下一个工作单元输出。最后两行的echo,将直接输出到下一个工作单元的{query}中。

接下来我们设立一个通知逻辑,以Notification Center的形式用户签名结果。还是在老地方 “+” -> “Outputs” -> “Notification Center”。如下图所示设置

AL5

接下来我们用鼠标拖拽把三个工作单元顺次连结起来

AL6

到这里,此工作流就设立完毕了。现在我们可以去Finder里找几个待签名的APK测试下:

show case

选中待签名APK -> 按下 “⌥⌘ \” (反斜杠)唤起文件触发器,这时应该可以看到我们新建的2SignAPK静静的躺在最下面了。(可以通过输入首字母“2”快速选取到此项),轻敲回车,片刻之后签名完毕。此时应该就可以看到右上角弹出Notification Center的Post消息了。这下总算比冷冰冰的Terminal友好多了吧~

notification

Done >_<

36 thoughts on “MacOS下利用Alfred Workflow批量签名Android APK

  1. 您好,我是百度i wanna be the guy吧大吧主 蛋疼阿有木有。
    很喜欢你的游戏,非常想跟你认识一下
    我也很喜欢自己创作一些游戏,看了一些你的日志,感觉兴趣和你挺像的,希望我们今后可以合作。
    也许你会喜欢我的案子。。
    我的QQ117400023,希望能加一下,记得写一下备注。

  2. 点更多的 游戏进来的。居然 真的可以进来。。 哈哈 那些 只是画个黑白线条 颜色都没上的游戏居然出来骗钱。。 哈哈 作者是将你自己吗。。 (我在steam 买了。。 哈哈)

  3. 更多游戏过来的,没有人知道的大冒险真的好好啊啊啊,干了这杯鸡汤,然后,满怀梦想的打开课本了!!!!!!

  4. 最近正好有开发游戏的想法,无意之中看到了这一个,感触很大,觉得我就是那四个人啊,哈哈,真是没救了。不管怎么样,谢谢你

  5. 前三個大冒險是自己通關來的,《沒人知道的大冒險》是看別人玩的;覺得每一作都很用心,尤其第四作很多場景讓人淚奔。西西弗斯神話鏡頭反復出現,讓我在觀看每個人故事之餘,分出時間反觀自己。
    本來是想了解一下開發者的,結果搜出了blog,蠻意外。

发表评论

电子邮件地址不会被公开。 必填项已用*标注