Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 获取给定应用程序的元素层次结构_Ios_Instruments_Ui Automation_Iphone Privateapi - Fatal编程技术网

Ios 获取给定应用程序的元素层次结构

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

我想制作一个内部应用程序,但不想将其放在AppStore上。其中我有以下场景

我把我的appsay-XApp放在后台。现在,我在foregroundSay YApp中打开另一个应用程序。现在,我想在Xapp中获得YApp的当前元素层次结构。我有Yapp的开发配置文件/证书

如果我运行UIAutomation of instruments并通过.js脚本抛出以下命令,我只需要元素层次结构,几乎与我得到的类似

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元素层次结构或我开发的任何最前端应用。