原创 阿里巴巴釘釘技術部門內推,一起構建數字化辦公時代!

今年線上辦公大火,釘釘風頭大盛,前途無限。歡迎各位技術大佬來投簡歷,一起構建數字化辦公的時代! 技術崗位包括 iOS、Android、Mac、Windows、前端、Java、C++。 內推投遞郵箱:weike.zwk@alibaba-inc

原创 打造完備的 iOS 組件化方案:如何面向接口進行模塊解耦?(一) 打造完備的 iOS 組件化方案:如何面向接口進行模塊解耦?

打造完備的 iOS 組件化方案:如何面向接口進行模塊解耦? 關於組件化的探討已經有不少了,在之前的文章iOS VIPER架構實踐(三):面向接口的路由設計中,綜合比較了各種方案後,我傾向於使用面向接口的方式進行組件化。 這是一篇從代碼層面講

原创 打造完備的 iOS 組件化方案:如何面向接口進行模塊解耦?(一)

打造完備的 iOS 組件化方案:如何面向接口進行模塊解耦? 關於組件化的探討已經有不少了,在之前的文章iOS VIPER架構實踐(三):面向接口的路由設計中,綜合比較了各種方案後,我傾向於使用面向接口的方式進行組件化。 這是一篇從代碼層面講

原创 打造完備的 iOS 組件化方案:如何面向接口進行模塊解耦?(二)

繼續上一篇的內容:打造完備的 iOS 組件化方案:如何面向接口進行模塊解耦?(一) 功能擴展 總結完使用接口進行模塊解耦和依賴管理的方法,我們可以進一步對 router 進行擴展了。上面使用 makeDestination 創建模塊是最基本

原创 iOS 逆向指南:動態分析

當靜態分析無法獲取足夠的信息時,就需要進行動態分析,在 app 運行時,追蹤方法調用、查看內存信息。最後找到想要分析的關鍵函數。 這篇文章包括: 環境搭建 反調試 動態調試的思路 lldb 調試命令與腳本 cycript 配置與使用 fr

原创 iOS 逆向指南:靜態分析

靜態分析是指對二進制包進行反編譯,分析靜態的代碼邏輯。 本文內容包括:app 砸殼過程、工具和環境的坑、導出 OC 頭文件、使用 hopper 和 IDA 反編譯、arm 寄存器功能、靜態分析經驗、推薦的 IDA 插件、如何分析系統庫。 對

原创 iOS 逆向指南:界面分析

寫幾篇文章總結一下 iOS 逆向的整個流程,逆向初學者可以作爲入門指南。內容包括逆向工具和環境配置、踩坑點、界面分析、砸殼、靜態分析、動態分析、lldb 調試、推薦 hopper 和 IDA 插件、IDA 插件的編寫、各種分析技巧。 逆向的

原创 iOS VIPER架構實踐(三):面向接口的路由設計

路由是實現模塊間解耦的一個有效工具。如果要進行組件化開發,路由是必不可少的一部分。目前iOS上絕大部分的路由工具都是基於URL匹配的,優缺點都很明顯。這篇文章裏將會給出一個更加原生和安全的設計,這個設計的特點是: 路由時用protocol

原创 iOS VIPER架構實踐(二):VIPER詳解與實現

第一篇文章對VIPER進行了簡單的介紹,這篇文章將從VIPER的源頭開始,比較現有的幾種VIPER實現,對VIPER進行進一步的職責剖析,並對各種細節實現問題進行挖掘和探討。最後給出兩個完整的VIPER實現,並且提供快速生成VIPER代碼的

原创 CFRunloop的多線程隱患

如果你還不瞭解什麼是runloop,可以看這裏的詳解深入理解RunLoop。 蘋果官方文檔中,聲明瞭CFRunloop是線程安全的: Thread safety varies depending on which API you are

原创 iOS Crash分析必備:符號化系統庫方法

如果你有過分析iOS崩潰日誌的經驗,一定經常看到日誌裏出現很多<redacted>的字段。這篇文章就是幫助開發者將這些字段符號化爲對應的系統庫方法名。 如果你已經掌握了這方面的知識,就直接去這裏iOS-System-Symbols,下載我整

原创 iOS逆向:用Xcode直接調試第三方app

一般動態調試app時,都是在終端裏用lldb直接調試,但是用Xcode的Attach to Process也可以連接到真機上的進程進行調試。但是隻能調試用自己的證書籤名的app。 在Xcode上調試的優點: 有UI界面,查看堆棧更直接,可

原创 私有API-修復iOS 10不彈出"是否允許xxx訪問數據"導致app無法聯網的bug

目錄 問題描述 修復方法 彈出授權框 調用方式 讓系統更新蜂窩網絡權限數據 調用方式 出現了玄學 用控制檯跟蹤進程間通信 檢查網絡權限情況 檢測國行機型和是否有蜂窩功能 測試修復是否成功的方法 工具代碼和Demo 參考

原创 約束衝突調試工具:解決iOS7調試難題

功能: 在非調試模式下,獲取出錯的具體約束。 監測約束衝突,並獲取出錯的view和viewController。 監測iOS7上layoutSubViews導致的crash問題。 現狀 iOS7對Auto Layout的支持問題 iO

原创 iOS逆向:在任意app上開啓malloc stack追蹤內存來源

lldb有一個內存調試工具malloc stack,開啓以後就可以查看某個內存地址的malloc和free記錄,追蹤對象是在哪裏創建的。 這個工具可以打印出對象創建的堆棧,而在逆向時,也經常需要追蹤某些方法的調用棧,如果可以隨時打印出某個對