Rayor 发表于 2018-8-6 15:59:29

Mac的一些Bash操作整理

本帖最后由 Rayor 于 2018-8-6 16:19 编辑

第一次发帖,展示格式花了些时间,但还是不够,以后会更规范的哈!
security
Security是Mac系统中钥匙串和安全模块的命令行管理工具,(图形化工具为Keychain Access.app)。钥匙串实质上就是一个用于存放证书、密钥、密码等安全认证实体的仓库,在计算机中保存为一个.kenchain的文件,解析mobileprovision文件信息cms编码或解码CMS信息(PKCS#7)


# 查看当前mobileprovision里面的信息,有teamID BundleId supportDevices
security cms -D -i xxxx.mobileprovision
查找认证实体证书(证书+私钥)security find-identitycodesign签名操作先找到需要使用到的签名信息

security find-identity
# 1) 21C1F11A2B3875070FA242210FB714138A4790XX "iPhone Developer: xxxx (XXXXXUH6E9)"
# 2) 7F3DE721EB331F478E55345E3D213E313D14218E "iPhone Developer: Rayor (6CXXXXG523)"


使用codesign进行签名

codesign -s '21C1F11A2B3875070FA242210FB714138A4790XX' testDemo.app
# 或
codesign -s 'iPhone Developer: Rayor (XXXXXUH6E9)'


重签名
通过重签名来覆盖之前签名信息,可以先将.app中的_CodeSignature文件夹删除, entitlements必须要有,否则会出现加密偏移信息不一
codesign -fs '21C1F11A2B3875070FA242210FB714138A4790XX'
--entitlements entitlements.plist
testDemo.app

查看签名信息

# -vv verify verbose -d display详细展示签名的信息
codesign -vv -d TestDemoTask.app

压缩成ipa包
# 会自动生成一个Payload文件夹
# -r 递归操作 -q静态操作
zip -r -q YiShou.ipa Payload -v YiShou.app

ibtool使用
编译、打印、更新和验证interface Builder文件在编译过程中,我们会对storyboard/xib/[.strings]文件进行编译,将其处理成nib文件,然后再进行# 将xib编译成nib文件
ibtool --compile FMLaundAdView.nib FMLaundAdView.xib      

defaults
获取用户默认设置可以查看并编辑用户默认信息# 修改默认显示隐藏的文件信息, 执行完成后杀掉文件夹进程
defaults write com.apple.finder AppleShowAllFiles -bool TRUE; killall Finder
defaults 一般用于使用修改系统自定义专用,如果单纯只是修改plist还是使用plistBuddy
nmnm 命令被用于显示 用于二进制目标文件的符号表nm xxxx
# -A 行首显示文件名
# -D 显示动态符号
# -g 仅显示外部符号
# -r 反序显示符号表示例
nm IDFou | more

00000001000020f0 t -
00000001000020d0 t -
0000000100004460 t -

nm 显示的信息有三列: 内存地址符号类型   符号名称符号类型对于每一个符号来说,如果类型是小写的,则表明符号是local;大写的则表明符号是global的;以下为几个常用的A 该符号的值在今后的链接中将不再改变;
B 该符号放在BSS段中,通常是那些未初始化的全局变量;
D 该符号放在普通的数据段中,通常是那些已经初始化的全局变量;
T 该符号放在代码段中,通常是那些全局非静态函数;
U 该符号未定义过,需要自其他对象文件中链接进来;
W 未明确指定的弱链接符号;同链接的其他对象文件中有它的定义就用上,否则就用一个系统特别指定的默认值符号查找

查找arm64架构下的XXXX符号

nm TestDemo -arch arm64 | grep "XXXX"

file查看文件类型
file TestDemoTask
# TestDemoTask: Mach-O 64-bit executable x86_64

# 不显示文件名
file -b TestDemoTask
# Mach-O 64-bit executable x86_64
plutilplist 操作工具可以用来打印plist信息plutil -p xxx.plistPlistBuddy
# 使用plistBuddy可以对plist进行编辑操作
sudo /usr/libexec/PlistBuddy -c "set :CFBundleIdentifier 23423.com.song.haha" Info.plist






飘云 发表于 2018-8-9 13:40:09

感谢分享,~

hu007 发表于 2018-8-12 10:36:49

小白前来学习关注!

chunwei_2015 发表于 2019-2-28 16:56:25

感谢楼主分享!学习啦!
页: [1]
查看完整版本: Mac的一些Bash操作整理