最新Reveal安裝與使用,可以查看任意AppUI布局。


  最近在看iOS逆向的資料,發現了調試UI的工具--Reveal,發現這在實際開發中也是很有用處。當我們需要參照其他App界面布局的時候,使用這個工具可以看他的布局情況。不過這需要手機越獄才行。如果沒有越獄的話,只能調試自己的App,有同學會說,如果是自己的App,那我用自帶就夠了,其實Reveal有個比Xcode自帶的更有用的功能。Reveal提供一個可以即時改布局屬性的功能,即我不需要修改代碼,再重啟App來查看。只需要在右邊約束直接修改數值,回車一下,就能看到相關的布局了,類似於前端通過瀏覽器修改界面,個人覺得非常的方便。

  安裝與使用Reveal的主要步驟:

  1. 安裝Reveal軟件。
  2. 導入RevealServer.framework到項目的根目錄。(記得打包前移除,RevealServer.framework在Reveal應用的Help-->Show Reveal Library in Finder-->iOS Library中獲取,如果是調試自己的App,到這一步就可以了)。
  3. 將libReveal.dylib和libReveal.plist移到iOS設備的目錄/Library/MobileSubstrate/DynamicLibraries。

  1. 安裝Reveal軟件:

    https://blog.csdn.net/Crazy_SunShine/article/details/78843023 這位博主大大提供了破解版。里邊也有其他幾種方式使用Reveal,這里就記錄使用過的最簡單的方式。

  2. 導入RevealServer.framework到項目的根目錄: 

    RevealServer.framework在Reveal應用的Help-->Show Reveal Library in Finder-->iOS Library中獲取。取到后,拖進項目的根目錄。然后在TARGETS中添加RevealServer.framework。

  

    到這一步后,運行項目,打開Reveal,即可看到對應的項目。

    隨便選擇一個即可看到對應的層級結構。到這一步就能調試自己的App了。

  3. 查看其它任意App的布局:

    這一步需要越獄的手機,越獄的方法很多,PP助手、愛思助手都可以。越獄后在Cydia中安裝三個重要的插件:Cydia Substrate、OpenSSH、Reveal Loader。

    安裝好對應的插件后,開始准備工作:

    1. 將libReveal.dylib和libReveal.plist移到iOS設備的目錄/Library/MobileSubstrate/DynamicLibraries。新版的Reveal沒有libReveal.dylib。需要將RevealServer.framework中的RevealServer文件移入時重命名成libReveal.dylib,使用的命令是(將IP地址換成iOS設備的IP地址,主要要保持在一個局域網內):
scp /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/RevealServer.framework/RevealServer root@192.168.2.6:/Library/MobileSubstrate/DynamicLibraries/libReveal.dylib

需要輸入的默認密碼是:apline

      這里我因為試了一下 OpenSSH 能不能成功連上手機。使用了。"ssh root@192.168.2.6"。輸入密碼apline后,成功連接了iPhone的機子,再使用上面命令一直說找不到文件目錄,是因為當前設備主體不對。小小注意一下。另外類似的代碼將libReveal.plist也移入到設備中:

scp xxx/libReveal.plist  root@192.168.2.6:/Library/MobileSubstrate/DynamicLibraries/libReveal.plist 

    plist的內容是你要調試的App的bundle id。如下圖:

 

    這里再貼上一份。獲取手機所有應用的bundle id的代碼。

NSMutableArray *allID = [[NSMutableArray alloc] init];
    Class  LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
    NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];
    NSArray *appArray = [workspace  performSelector:@selector(allApplications)];
    NSString *model = [UIDevice currentDevice].model;
    for (NSString *str in appArray) {
        //轉換成字符串類型
        NSString *string  =  [str description];
        NSRange rg1 = [string rangeOfString:@">"];
        string = [string substringFromIndex:rg1.location + 2];
        if ([model isEqualToString:@"iPad"]) {
            NSRange rg2 = [string rangeOfString:@"<"];
            string = [string substringToIndex:rg2.location - 1];
        }
        NSDictionary *dic = @{@"bundleID":string};
        [allID addObject:dic];
    }
    NSLog(@"allID-----%@",allID);

2. 在iOS設備上設置中 Reveal 的Enabled Applications指定要查看的App。

 

 

到這里就完成了。
接下來打開你要查看的App,再打開Reveal。即可看到對應界面。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM