自动化脚本iOS教程
Posted Cydia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化脚本iOS教程相关的知识,希望对你有一定的参考价值。
操作前准备:
1.系统版本在ios11~14的苹果手机 2.已安装爱思助手的电脑 3.苹果数据线
开始操作:
(1)使用爱思助手对苹果手机进行越狱,或者使用一切可以把手机越狱的方法(可自行百度),越狱后你会在手机上看到一个叫Cydia的APP,打开APP,找到“软件源”,“编辑”--“添加”--源下载
把免费版的按键精灵安装包
(iOS 按键精灵免费版 1.3.8 1.3.6 旧版本 deb安装包)
放到这个路径中:Cydia安装deb路径 /private/var/root/Media/Cydia/AutoInstall ,到此操作基本完成
只需要重启手机即可完成软件的自动安装,如需免费版的按键精灵(1.3.8.deb),可点我找到,免费版正常可兼容ios11~13,最新版为1.6.0为付费版,可直接通过按键精灵官方源进行下载
Windows上很久以前就有按键精灵,Mac上也可以实现类似功能,
以下一个小demo演示了如何去实现鼠标和键盘操作的自动化。
一、新建Mac应用,代码如下:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
NSButton* button = [[NSButton alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
button.target = self;
button.action = @selector(buttonClick);
[self.view addSubview:button];
[button mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.left.mas_equalTo(100);
make.right.bottom.mas_equalTo(-100);
}];
}
- (void)buttonClick
{
CGPoint pt = CGPointMake(216, 80);
PostMouseEvent(kCGMouseButtonLeft, kCGEventLeftMouseDown, pt);
PostMouseEvent(kCGMouseButtonLeft, kCGEventLeftMouseUp, pt);
sleep(2);
[self writeString:@"Hello" withFlags:0];
}
void PostMouseEvent(CGMouseButton button, CGEventType type, const CGPoint point)
{
CGEventRef theEvent = CGEventCreateMouseEvent(NULL, type, point, button);
CGEventSetType(theEvent, type);
CGEventPost(kCGHIDEventTap, theEvent);
CFRelease(theEvent);
}
-(void)writeString:(NSString *)valueToSet withFlags:(int)flags
{
UniChar buffer;
CGEventRef keyEventDown = CGEventCreateKeyboardEvent(NULL, 1, true);
CGEventRef keyEventUp = CGEventCreateKeyboardEvent(NULL, 1, false);
CGEventSetFlags(keyEventDown,0);
CGEventSetFlags(keyEventUp,0);
for (int i = 0; i < [valueToSet length]; i++) {
[valueToSet getCharacters:&buffer range:NSMakeRange(i, 1)];
CGEventKeyboardSetUnicodeString(keyEventDown, 1, &buffer);
CGEventSetFlags(keyEventDown,flags);
CGEventPost(kCGSessionEventTap, keyEventDown);
CGEventKeyboardSetUnicodeString(keyEventUp, 1, &buffer);
CGEventSetFlags(keyEventUp,flags);
CGEventPost(kCGSessionEventTap, keyEventUp);
}
CFRelease(keyEventUp);
CFRelease(keyEventDown);
}
二、通过AppleScript实现:
activate application "Finder"
tell application "System Events"
tell process "Finder"
click at {15, 2}
end tell
end tell
1. 打码平台:http://www.fateadm.com/
2. 短信验证接收:http://www.51ym.me/
手机模拟器和按键精灵安装完毕后,使用按键精灵助手连接模拟,模拟器授权给精灵就可以正常调试了。
这里也可以安装其他夜神模拟器等,或者直接USB连接手机,如果需要在真机上调试脚本需要手机安装了“按键精灵安卓版”和有ROOT权限。
同时PC的按键精灵手机助手也可以将写好的脚本以及控制的UI界面打包成APK/ipa,目前是需要登录办理会员才可以,如果没有其他要求完全就在模拟器上运行脚本也可以。
实践步骤
1. 获取需要打开APP的包名,以下打开的是趣头条APP。
Dim bundleName
bundleName = Sys.GetFront()
TracePrint bundleName
2. 完全关闭APP后再打开,以下可以理解是重启。
Sys.ClearAppCache "com.baidu.baijia" //先关闭当前百家号APP
Delay 1000
RunApp "com.baidu.baijia" //延时1秒打开百家号
3. 使用“抓抓”找特定图点进入需要跳转的页面。
Delay 3000
Dim intX,intY
FindPic 0,0,0,0,"Attachment:截图1.png","000000",0,0.9,intX,intY
If intX > -1 And intY > -1 Then
TracePrint intX,intY
Tap intX,intY //点击该图的坐标进入
Else
TracePrint "没有找到"
End If
3.1. 打开“抓抓->截图->裁剪->框选区域->确定->保存->存放到电脑某处”。
3.2. 在抓抓中可以区域找图测试截图,结果不是-1一般成功找到坐标,可以复制脚本。
4. 关闭抓抓,先将截图添加到附件,再将复制的脚本粘贴到脚本框。
5. 将对应的截图添加好,脚本做好就可以调试。
Sys.ClearAppCache "com.baidu.baijia"
Delay 1000
RunApp "com.baidu.baijia"
Delay 3000
Dim intX,intY
FindPic 0,0,0,0,"Attachment:截图1.png","000000",0,0.9,intX,intY
If intX > -1 And intY > -1 Then
TracePrint intX,intY
Tap intX,intY
Else
TracePrint "没有找到"
End If
Delay 9000
Dim intX1, intY1
FindPic 0,0,0,0,"Attachment:截图2.png","000000",0,0.9,intX1,intY1
If intX1 > -1 And intY1 > -1 Then
TracePrint intX1,intY1
Tap intX1, intY1
InputText "13922895736"
Else
TracePrint "没有找到"
End If
6. 屏幕自动向下滑动。
//用300毫秒的时间,从点100,100划动到点200,200
Swipe 300, 400, 300, -5000, 50
//Delay 100
//以下是多点触控的例子
//TouchDown 100, 200, 1//按住屏幕上的100,100坐标不放,并设置此触点ID=1
//TouchMove 300, -600, 1, 200//将ID=1的触点花200毫秒移动至300,300坐标
//TouchUp 1//松开弹起ID=1的触点
附:如果完全自动化登录或自动化注册,就需要上面的一个打码或者短信验证码接收了,
如果是短信就接入后面的输入手机号请求接口获取短信验证码然后输入再请求。
如果是图形验证码需要接入打码平台通过上传验证码图片后获取图形码再请求,
如果是滑块验证网上有实现的案例。
iOS自动化教程群
以上是关于自动化脚本iOS教程的主要内容,如果未能解决你的问题,请参考以下文章