
最近用SceneKit做了全景看房的功能,現總結下如何實現的。先看下最終的效果: VR圖片全景播放器有以下功能: 360度 手勢滑動,縮放 陀螺儀 分屏(VR眼鏡) 熱點ho...
以下以新創建的app為例。步驟分為8個步驟:1.為App創建Bundle ID 。2.為Bundle ID創建開發模式下的描述文件。3.創建APP。4.添加內購項目。5.添加...
更新:編譯參數添加對靜態庫的說明 一、目的: 實現鏈接時符號混淆參考文檔:https://llvm.org/docs/LinkTimeOptimization.html[ht...
CDClassDump 這個文件是class-dump的一部分,用于檢查Mach-O文件的Objective-C segment getopt_long()類似于getopt...
前言: 編譯階段的優化除了組件二進制化可以實現提前編譯 .O文件外,還有沒有更進一步的優化方案呢? 首先看下 組件二進制化 = 二進制 +.h ,可以看到除了.a文件外還有....
本文通過clang的LibTooling來實現Objective-C源碼中方法名的混淆。 1.準備環境 需要下載Clang和LLVM。簡單說一下,Clang是編譯器的前端,能...
啟動之后首先會去查詢可用的簽名證書,這里用到了NSTask,NSTask是可以在APP里調用終端命令的。而終端是另外一個進程,需要進程間通信,可以使用NSPipe,secur...
Xcode 日志存儲在擴展名為.xcactivitylog。 文件內容是經過一種 SLF 的編碼格式進行壓縮過的。可以通過gzip -cd 展開。在Logs/Build下有一...
clang不止是前端編譯器,更是連接了LLVM整個編譯過程和其他工具的一個驅動程序。 在 clang/include/clang/Basic 目錄下定義了眾多td模版文件,例...
__stdcall、__cdecl和__fastcall是三種函數調用協議,函數調用協議會影響函數參數的入棧方式、棧內數據的清除方式、編譯器函數名的修飾規則等。如下圖所示,可...
本文實現了一種多級 UIScrollView 嵌套的交互,主要解決事件傳遞和手勢沖突問題。 一、效果展示 首先來直觀地看一下要實現的效果。在實現過程中,代碼做到了盡可能的解耦...
1. DWARF與dSYM的關系 DWARF (Debug With Arbitrary Record Format) 標準調試信息格式。單獨保存下來就是dSYM (Debu...
[toc] 一、為什么要符號化? 對應線上app閃退日志,閃退的堆棧都是以下格式 這種信息開發肯定無法找到具體的報錯的地方的,本文就是這將這些轉成下面這種可讀的形式,方便查找...