Ios 获取给定应用程序的元素层次结构
我想制作一个内部应用程序,但不想将其放在AppStore上。其中我有以下场景 我把我的appsay-XApp放在后台。现在,我在foregroundSay YApp中打开另一个应用程序。现在,我想在Xapp中获得YApp的当前元素层次结构。我有Yapp的开发配置文件/证书 如果我运行UIAutomation of instruments并通过.js脚本抛出以下命令,我只需要元素层次结构,几乎与我得到的类似Ios 获取给定应用程序的元素层次结构,ios,instruments,ui-automation,iphone-privateapi,Ios,Instruments,Ui Automation,Iphone Privateapi,我想制作一个内部应用程序,但不想将其放在AppStore上。其中我有以下场景 我把我的appsay-XApp放在后台。现在,我在foregroundSay YApp中打开另一个应用程序。现在,我想在Xapp中获得YApp的当前元素层次结构。我有Yapp的开发配置文件/证书 如果我运行UIAutomation of instruments并通过.js脚本抛出以下命令,我只需要元素层次结构,几乎与我得到的类似 UIATarget.localTarget().frontMostApp().logEle
UIATarget.localTarget().frontMostApp().logElementTree();
简而言之,我需要和上面命令相同的结果,但不需要通过usb电缆将设备连接到任何PC。如果是通过使用私有API或越狱设备,这是可以的。正如我提到的,我不想把它放在App Store上
编辑:
我可以通过运行以下代码找到我自己的应用程序的元素层次结构,即XApp本身
-(void) showViewHeirarchy:(UIView*)v
{
for (UIView *vv in v.subviews)
{
NSLog(@"SubView:%@",[vv description]);
NSLog(@"count:%lu",(unsigned long)vv.subviews.count);
if (vv.subviews.count>0)
{
[self showViewHeirarchy:vv];
}
}
}
在viewDidLoad方法完成其执行后调用上述函数不在viewDidLoad中,并调用它,例如:
UIWindow *v=[[UIApplication sharedApplication] keyWindow];
[self showViewHeirarchy:v];
因此,任何人都知道如何从后台的其他Apprunning获取一个应用程序的UIApplication对象的引用,以便我的工作变得更轻松。是否有必要,XApp是设备上的一个应用程序?也许你可以使用MonkeyTalk之类的东西在YApp中集成一个小型web服务器,以便从外部访问UI层次结构,例如通过WLAN。是的,XApp在设备上,它在后台运行,YApp是已经开发的任何其他应用,我将把YApp放在App Store上。因此,我不能更改YApp的任何代码,我只能做任何事情使用Xapp更改任何代码可能会使用私有API,并希望获得YApp的UI元素层次结构或我开发的任何最前端应用。