❶ ios 如何检查ipa是被重签名过的
方法一、终端命令:sigh resign
1. 明白两个东西:想要重签名的证书和描述文件
开发证书或者企业证书,即你想要重签名的证书、provision描述文件。我是个人账户。没交钱的那种。(Xcode中自动管理会生成证书和描述文件)。
注意⚠️:每一个重签版本都需重新申请一个 appid 和 provisoning profile,不然同appid的会覆盖。
mac电脑的开发环境配置
安装 homebrew,命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装 ruby,命令:brew install ruby更新 ruby 版本
安装 sigh,命令:sudo gem install sigh
如果出错那就换成gem install sigh安装过程是漫长的。(在安装 sigh 之前,你得检查 gem的镜像源,现在一般为https://gems.ruby-china.org)
准备好需要重签名的 ipa 包
自己的ipa 不用多说。编译一下在工程的Proct 文件件下就有。也可以通过爱思助手下载具体教程:Mac 如何下载ipa
开始重签名
第一步,把我们要重签名的 ipa 包和我们下载下来安装的embedded.mobileprovison放在同一文件夹目录下,同级
第二步,终端 cd 到这个 ipa 的文件夹目录下,执行sigh resign或者fastlane sigh resign命令
第三步:这时候,sigh 会直接弹出下面这个指令要你输入:Signing Identity这个就是你的证书的十六进制串,输入之后回车,然后等待见证奇迹的时刻吧。
此方式会自动分析 provisoning profile描述文件中的东西,所以不用我们自己填写变更的bundle id
验证得到ipa 直接在爱思助手中的:我的应用->中一拖就可以了。
这个方式亲自试了,比较简单方便。
结论:
但是最后重签名之前的能正常打开,重签名之后的都是一而退。暂时不知道什么原因。
❷ iOS 逆向----otool命令入门
首先可以拿自己的ipa包进行尝试。
选择你的ipa包,然后把后缀名改为zip,解压缩得到Payload文件夹,里面就是你的APP。
打开终端,直接cd到你的xxxx.app目录下。具体做法,输入cd,然后把xxxx.app直接拖到终端里打个回车。
然后输入otool,会显示如下内容:
有兴趣的同学可以仔细研究一下每个命令是干吗用的,这里介绍几个常用命令:
可执行文件的名称可以右键xxxx.app文件,选择显示包内容,然后找到里面的exec文件,把名字打进去。一般来说这个文件的名字跟xxxx是一样的
然后奇迹就出现了。。。
是不是很熟悉?这个命令列出了你使用的所有库的名字。
查看ipa包是否加壳:
其中cryptid代表是否加壳,1代表加壳,0代表已脱壳。我们发现打印了两遍,其实代表着该可执行文件支持两种架构armv7和arm64.
这里给大家推荐一个自动化检测的神器:
MobSF
根据Document的提示自行研究一下吧。
❸ 苹果系统运行命令
苹果系统同样拥有命令执行程序,就是打开苹果系统的终端命令窗口,现在我就教大家苹果系统怎么运行命令,希望可以帮助到各位喜欢苹果系统的朋友。
苹果系统运行命令 方法 一:
1、我们这里先介绍通过图形方式打开
那么,我们先打开点击“finder”程序。
2、点击“应用程序”
在finder中的窗口右侧找到“应用程序”并点开它。
3、点击“实用工具”
在 应用程序列表中找到“实用工具”并双击打开它。
4、实用工具列表的最下面,找到“终端”并打开它
使用鼠标左键双击“终端”即可打开!
苹果系统运行命令方法二:
1、同样打开finder
然后点开“应用程序”,在搜索栏中输入“终端”,如果你的是英文版的mac那么输入“Terminal”搜索
2、如果你是经常要使用终端程序,那么建议你打开终端后
在终端的Dock上面的图标上点击鼠标右键。
3、把鼠标移动到“选项”--->在Dock中保留
这样,当你下次需要使用的是候就能直接使用终端了!
❹ 记录ios项目运行、编译的错误
1.Pods-xxxxxxx-resources.sh: Permission denied
解决办法:打开项目中xx/Pods/Target Support Files/Pods-xx文件夹,cd到该目录下
输入终端命令:chmod a+x Pods-xx-resources.sh
chmod 用户 操作 权限 文件名用户:
"a" 表示全部用户操作
"+"表示增加权限权限
"x"表示可执行权限文件名
2.Reason: image not found
首先翻译一下字面意思:找不到图片(镜像)了,这里指的是名为Qucore-ThirdParty.framework寻找不到镜像了。
查阅资料,发现framework的Status非为两种:
Required:强引用(一定会被加载到内存)
Optional:弱引用(在被需要的时候才会被载入到内存)
在遇到错误,例如:ld:Library not found......的时候,说明你的某些/个Framework不应该被强引用(例如:你的某个Framework是在iOS8.0+之后可用,那如果你运行到iOS7.0的手机上,你就需要把这个Framework的Status设置为Optional)。
如果使用了Cocoapods后,且Library Binary With Libraries中没有该FrameWork只需要将pod.FrameWork设置为Optional
注:如pod.FrameWork在Library Binary With Libraries中不存在,只需要在终端cd到项目文件夹后pod install下,就会在Library Binary With Libraries中出现。