通常用戶端産品至少都會有debug和release兩種編譯配置,在編譯release版本中會進行一些優化,以減少最終産品的體積。
由于千牛ios端會有不同版本,分别面向内部開發者、外部isv以及最終使用者。尤其是在內建qap項目後需要提供一個專門的開發調試版本給qap開發者,是以新增了一個qapdistribution scheme,并且這個scheme是從debug scheme複制過來的,是以按道理是可以進行調試、檢視符号資訊的。結果在使用這個scheme進行開發調試的過程中發現符号資訊缺失,控制台輸出如下資訊:
這就給我們排查問題帶來不便。雖然可以切換成debug來調試排查,但由于給isv的版本不是debug的,是以環境不一緻,可能會導緻一些遺漏。于是我再次确認了下編譯配置資訊:
确實和debug是一緻的,這就帶來了困惑。
後來進一步發現在千牛自身代碼中是有符号資訊的,但是跟進到pod依賴中就缺失了,是以懷疑是不是pod工程的編譯配置有問題:
經驗證有效。