免越狱钉钉远程打卡
无需越狱,解决 iOS 版钉钉远程打卡
折腾记录,备忘
准备动态库
准备好DingTalkHelper.dylib和libsubstrate.dylib
备注:DingTalkHelper.dylib可以去 http://cydiaupdates.com 下载 com.kevll.dingtalkhelper.deb 用 patcherplus 生成
创建mobileprovision描述文件
去 苹果开发者后台 随意创建一个 # App ID,并创建iOS Provisioning Profiles下载到电脑
生成 entitlements.plist
security cms -D -i path/to/downloaded.mobileprovision > provision.plist
/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' provision.plist > entitlements.plist
安装optool
去 https://github.com/alexzielenski/optool 下载源代码
下载代码
git clone https://github.com/alexzielenski/optool --depth=1
下载git依赖项目
git submodule update --init --recursive
编译项目
打开Xcode编译项目 或者运行命令
xcodebuild -project optool.xcodeproj -configuration Release ARCHS="x86_64" build
把生成的 optool可执行文件拷贝到bin 目录
cp optool /usr/local/bin
编译报错解决
去项目工程设置Building Settings修改Base SDK为最新macOS
下载砸了壳的 ipa
可以去某助手下载,或者从已越狱的 iPhone 上导出,iOS 11 上可使用 CrackerXI导出
重签名 ipa
解压
unzip DingTalk.ipa
插入动态库到钉钉二进制文件
install_name_tool -change /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate @loader_path/libsubstrate.dylib DingTalkHelper.dylib
cp libsubstrate.dylib DingTalkHelper.dylib Payload/DingTalk.app
删 watch 相关文件
optool install -c load -p "@executable_path/DingTalkHelper.dylib" -t Payload/DingTalk.app/DingTalk
删除旧签名信息
rm -rf Payload/MyApp.app/_CodeSignature
替换旧描述文件
cp path/to/MyProfile.mobileprovision Payload/MyApp.app/embedded.mobileprovision
重签名二进制文件和动态库
codesign -f -s "iPhone Developer: your certificate" --entitlements entitlements.plist Payload/DingTalk.app/Frameworks/*
codesign -f -s "iPhone Developer: your certificate" --entitlements entitlements.plist Payload/DingTalk.app/libsubstrate.dylib
codesign -f -s "iPhone Developer: your certificate" --entitlements entitlements.plist Payload/DingTalk.app/DingTalkHelper.dylib
codesign -f -s "iPhone Developer: your certificate" --entitlements entitlements.plist Payload/DingTalk.app
重新打包
zip -qr DingTalk-resigned.ipa Payload
PS : security find-identity -p codesigning 查看可用证书
运行ipa
新建 MonkeyDevapp 项目, 把生成的 DingTalk-resigned.ipa 放进 TargetApp,修改 Bundle identifier 为 com.laiwang.DingTalk ,修改  Bundle display name 为 钉钉,运行安装到手机即可。
使用插件
打开 钉钉 – 设置 – 钉钉小助手,低调使用。