前言:
自从进入公司做游戏插件开发, 到目前为止大约有两个星期都在寻找如何注入第三方SDK的方法, 这里稍微提一下历程: 刚开始以自己掌握的知识, 仅是注入自己创建的SDK, 我就用同样的方法, 将第三方SDK拖入工程, 链接, 拷贝到Frameworks目录下, 一步一步操作, 使用 yololib 将库注入到mach-O文件中, 替换target文件夹下app包里的二进制文件, 运行崩溃......
这里省略5万字......
然后回到之前的操作步骤, 拷贝是否有漏勾选, 注入路径是否正确... 好吧,没有问题, 那就网上找答案, 搜索找到的很多都是注入自己工程创建的SDK, 千篇一律... 没有作用; 于是在各大技术群请教, 还是无果, 经历了辗转两个星期之后我把庆哥的wiki再仔细看了几遍, 琢磨尝试(其实是自己没细心查看到), 终于找到解决办法, 于是尝试, 成功了......
正言:
第一种方式:
1. 使用pod导入第三方SDK
如果你要导入的SDK还尚未集成到pod, 网上搜索, 有很多文章讲述 通过cocoapods集成SDK
pod init
先创建podfile文件, 在文件中修改如下配置
pod install
执行安装
2. 导入头文件
打开项目,新建一个头文件或者直接在 *.xm文件中导入
3. 在hook代码中写入想要实现的代码
在hook的某个方法里面实现代码
在修改保证代码正常编译后,运行,到这里注入第三方SDK就已经成功了
如果想将应用打包成ipa包,供别人下载, 可看篇外话
第二种方式:
1. 使用添加target方式导入
这种方式适用于文件夹或者未上传到pod的sdk, 应用起来很灵活将目标文件夹或者sdk复制到此路径下, 打开工程
添加成功之后, 在其他类导入就可以调用了
同样运行, 将app包压缩成ipa就 可以给他人下载
篇外话
将项目打包成ipa包
- 运行项目, 找到app包
右击 show in finder, 将.app 包复制到桌面新建的Payload文件夹中
- 压缩生成ipa包
zip -ry xxx.ipa Payload
使用命令压缩成ipa包,放到蒲公英上就可以直接扫码下载了
重点是你通过pod导入的SDK也在hook中起效了。。。
希望对大家有帮助