如何开发iOS模拟器插件
Posted
技术标签:
【中文标题】如何开发iOS模拟器插件【英文标题】:How to develop iOS simulator plugins 【发布时间】:2018-11-07 19:22:31 【问题描述】:随着劫持 ios 模拟器的不同应用程序的兴起(例如完美无缺或现在的 sherlock),我很好奇这是如何做到的。
据我所知,有一些基于 SIMBL 的选项,但我认为上面没有使用它。此外还有 Injection (https://github.com/johnno1962/injectionforxcode),它使用 XPC 来注入代码。
我猜有不同的方法(例如 UI 更改是如何完成的?要么是它上面的完美层,要么是 sherlock 中的变量更改)所以如果有人能指出我的正确之处,那就太好了方向。
【问题讨论】:
【参考方案1】:我没用过插件但是:
sherlock 从我阅读的内容中加载由模拟器运行的应用程序中的代码。 (https://www.hackingwithswift.com/articles/131/sherlock-turbocharges-your-ios-simulator)
完美无瑕,但网站上的所有内容都是在模拟器窗口的顶部覆盖一个 UIWindow。即使是单独的应用程序也可以做到这一点。 (https://flawlessapp.io/)
SIMBL 两者都可以,我想说... 但是您也可以通过附加 LLDB 来做很多事情!真的很强大。 (一个很好的例子是https://github.com/facebook/chisel) xcode 的代码注入基本相同(大致;)
=> 模拟器 AFAIK 仍然没有公共/或私有 api
=> 在模拟器中定位应用程序对我来说似乎更容易
(还有其他方法可以通过操纵默认值或玩弄 simctl 进程)
【讨论】:
以上是关于如何开发iOS模拟器插件的主要内容,如果未能解决你的问题,请参考以下文章
用于颤振的 GoogleMaps 插件仅显示 ios 模拟器上的标记