一、下载python3.x
https://www.python.org/downloads/
官网下载最新的(我当前用的是3.10)下载完后点击安装,使用默认安装位置(有些版本默认位置不相同,出现路径找不到,自行修改脚本的路径)-
安装完后,查看python版本发现并没有配置
$python —version
-
打开~/.zshrc环境配置文件(bash一样的方式)配置一下:
$vim ~/.zshrc
i 进入编辑模式,粘贴脚本
esc 退出编辑模式
:wq 后回车 保存zsh文件
配置路径,粘贴内容如下,如果是别的版本的,换掉3.10就行
#python 3.10
PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:${PATH}"
export PATH
alias python="/Library/Frameworks/Python.framework/Versions/3.10/bin/python3.9"
- 运行一下zsh文件:
$source ~/.zshrc
- 再查看一下python版本就好了:
$python —version
二、执行修改脚本
提前复制一下源文件便于修改后对比,cd到你图片资源目录,然后执行脚本,XXXXXX替换成你存放资源的根目录
$cd XXXXXX
执行python3脚本, XXXXXX换成你脚本的路径名(拖进去就行了)
$python3 XXXXXX
然后使用脚本查看md5值 XXXXXX换成你的资源(拖进去就行)
$md5 XXXXXX
本脚本如果在打包前修改,打包后Xcode会把你的修改给修正过来导致无效,记得打完包之后在ipa里进行修改一次就行了
脚本如下:
import os
import sys
import struct
# 十六进制转十进制
def hex2dec(str_num):
return int(str_num.upper(),16)
# 获取目录中的所有png文件
def get_png_files(d):
for root,dirs,fs in os.walk(d):
for f in fs:
if f.endswith('.png'):
yield os.path.join(root, f)
# 给png图片末尾写入tag
def write_tag_to_png(f):
offset = 12
tag = 0
with open(f, 'rb') as f1:
while True:
f1.seek(-offset, 2)
t = {}
for i in range(0,3):
t[i] = int.from_bytes(f1.read(4), 'little', signed=False)
# png结束符
if 0 == t[0] and hex2dec('0x444E4549') == t[1] and hex2dec('0x826042AE') == t[2]:
break
else:
offset = offset + 1
# 读取tag
f1.seek(- offset + 12, 2)
tag = int.from_bytes(f1.read(), 'little', signed=True)
f1.seek(0)
data = f1.read()
f1.seek(0)
data2 = f1.read(len(data) - offset + 12)
with open(f, 'wb') as f2:
f2.write(data2)
# 在结尾写入tag + 1
f2.write(struct.pack('L', tag + 1))
print(f + ', write tag: ' + str(tag + 1))
if '__main__' == __name__:
for f in get_png_files('.'):
write_tag_to_png(f)
三、使用工具MD5change批量修改
免费,支持格式种类众多,有前后md5对比功能,很好用(推荐!)
地址: MD5change
提取码: rfri
--END--