Quantcast
Viewing all articles
Browse latest Browse all 301

手把手教你编译Simulatetouch

@yuzhouheike wrote:

写在前面的话.为什么要编译这个?因为想做个模拟点击,提供给做测试岗位的未来女朋友使用,解放测试小姑娘们的双手,但是自己很菜又搞不懂苹果底层的点击是怎做的.搜索了一下发现韩国人写的这个simulatetouch可以达到要求,但是人家已经不维护了.所以需要修改他的代码.目前只发现了这一个开源代码,可以直接手机上每一个角落,所以需要在这个基础上开发自己的模拟点击,也看到了其他人的模拟点击比如PPFaketouch,ZSFaketouch但是这两个都需要注入别人的App才能点击,考虑到大多数厉害点儿的App都会做防注入,所以放弃,继续研读simulatetouch源码.期望与有共同需求的爱好者一起讨论

开发环境

  1. Xcode9.4.1
  2. iOS8
  3. macOS10.13.6

接下来做好不断失败的准备,因为在论坛搜了一下大多数都是求助无果的帖子

0x1 下载源代码

git clone git@github.com:iolate/SimulateTouch.git

git submodule init

git submodule update

0x02 tree一下

0x03 编译

make

0x04 在电脑找一下这个文件,发现找不到

sudo find / -name IOKit/hid/IOHIDEvent.h

0x05 去github找找

0x06 不会了,你会不会?

  • 在论坛搜,大佬们都在闷声发大财,解决了也不分享下.

0x07 去theos的git下载他们的SDK放在/opt/theos/sdk目录下

  • 修改下Makefile文件 先编译lib因为编译其他两个要用到它.编译成功后放大到/opt/theos/lib目录下
include ${THEOS}/makefiles/common.mk

export TARGET = iphone:clang:11.2:8.0
# export SDKVERSION=5.1
# export CURRENT_VERSION = 0800
# TARGET = iphone:11.0:8.0
# TWEAK_NAME = SimulateTouch
# SimulateTouch_FILES = SimulateTouch.mm
# SimulateTouch_PRIVATE_FRAMEWORKS = IOKit
# SimulateTouch_LDFLAGS = -lsubstrate -lrocketbootstrap

LIBRARY_NAME = libsimulatetouch
libsimulatetouch_FILES = STLibrary.mm
libsimulatetouch_LDFLAGS = -lrocketbootstrap
libsimulatetouch_INSTALL_PATH = /usr/lib/
libsimulatetouch_FRAMEWORKS = UIKit CoreGraphics

# TOOL_NAME = stouch
# stouch_FILES = main.mm
# stouch_FRAMEWORKS = UIKit
# stouch_INSTALL_PATH = /usr/bin/
# stouch_LDFLAGS = -lsimulatetouch

include $(THEOS_MAKE_PATH)/tweak.mk
include $(THEOS_MAKE_PATH)/library.mk
include $(THEOS_MAKE_PATH)/tool.mk

0x08 这样不就成功了.此刻觉得大佬们不分享可能因为觉得太简单了

0x09 接下来继续编译完整的项目

include ${THEOS}/makefiles/common.mk

export TARGET = iphone:clang:11.2:8.0
# export SDKVERSION=5.1
# export CURRENT_VERSION = 0800
# TARGET = iphone:11.0:8.0
TWEAK_NAME = SimulateTouch
SimulateTouch_FILES = SimulateTouch.mm
SimulateTouch_PRIVATE_FRAMEWORKS = IOKit
SimulateTouch_LDFLAGS = -lsubstrate -lrocketbootstrap

LIBRARY_NAME = libsimulatetouch
libsimulatetouch_FILES = STLibrary.mm
libsimulatetouch_LDFLAGS = -lrocketbootstrap
libsimulatetouch_INSTALL_PATH = /usr/lib/
libsimulatetouch_FRAMEWORKS = UIKit CoreGraphics

TOOL_NAME = stouch
stouch_FILES = main.mm
stouch_FRAMEWORKS = UIKit
stouch_INSTALL_PATH = /usr/bin/
stouch_LDFLAGS = -lsimulatetouch

include $(THEOS_MAKE_PATH)/tweak.mk
include $(THEOS_MAKE_PATH)/library.mk
include $(THEOS_MAKE_PATH)/tool.mk



由与SDK版本等各种环境问题你可能会遇到以下问题

  1. 提示下面
  • 解决方式就是注释代码STLibrary的这些代码
// typedef enum {
//     UIInterfaceOrientationPortrait           = 1,//UIDeviceOrientationPortrait,
//     UIInterfaceOrientationPortraitUpsideDown = 2,//UIDeviceOrientationPortraitUpsideDown,
//     UIInterfaceOrientationLandscapeLeft      = 4,//UIDeviceOrientationLandscapeRight,
//     UIInterfaceOrientationLandscapeRight     = 3,//UIDeviceOrientationLandscapeLeft
// } UIInterfaceOrientation;
//
// @interface UIScreen
// +(id)mainScreen;
// -(CGRect)bounds;
// @end

虽然说是手把手,但是好多细节我也忘记了,因为编译这个花费了两三天时间了,如果您在编译的过程中遇到什么其他问题,可以在评论里面问我,

Posts: 8

Participants: 3

Read full topic


Viewing all articles
Browse latest Browse all 301

Trending Articles