Just My Life & My Work

Posts tagged ‘xcode’

Xcode 12 與 M1

今年11月初,Apple發表自家的Mac核心晶片M1,我以為只是個噱頭,沒想到居然比intel還要強!?

是最新5nm製程,擁有8CPU8GPU

(繼續閱讀…)

安裝Xcode空間不足

一如往常,在Apple釋出iOS 14後不久,身為開發者的我就會更新Xcode 12(每年更新一個版本號),不過這次遇到奇妙的問題,明明筆電的可用空間大於軟體容量,安裝時居然還會跳出「空間不足」,而且也沒說不足多少,使得我必須不斷清理出空間,像是移除鮮少使用的軟體,甚至刪除前同事帳號裡的非必要的檔案,來下載Xcode 12。

在App Store上看Xcode 12容量有11.2G,我騰出15G可用空間應該就足夠了才是,不過就是提示空間不足。

App Store上Xcode評分只有2.3(滿分5),就可知道許多開發者在抱怨⋯⋯

直到我硬擠出30G可用空間,還是給我裝傻空間不足⋯⋯

(繼續閱讀…)

[Git] 更新Mac OS無法使用Git問題

使用Git當版本控制來開發App已經超過8年,有些問題一再遇到,可是一直都沒能直接解決問題,還是得Google找答案。這次我特地開篇文章來記載,其實我只是更新Mac OS就無法使用Git⋯⋯

在終端機上如平常般git pull,居然顯示:

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

好在很快用關鍵字去Google,得到一行指令就能輕鬆解決!

xcode-select –install

安裝完工具,能正常工作囉~

此刻,公司的Macbook Pro升至版本10.15.5

我發現好多應用軟體會重新要求權限,看來更新作業系統時,會同時清除非必要的資料或檔案,包含權限設定如推播通知。

參考:

[iOS][Xcode] 專案自定義變數 (Project User Defined Variable)

為了避免上架時把開發的東西誤上傳,那麼一開始最好就定義好DebugRelease,其實Debug和Release在Xcode中已有定義,包版本釋出預設就是Release,而開發的時候透過Xcode編譯到手機,預設則是Debug,不過其實可以改成Release來測試,如此方便!

透過Xcode可以讓專案自定義變數 (Project User Defined Variable),這樣一來就算忘了有什麼是測試還是正式,都不用擔心會上錯啦~

(繼續閱讀…)

[iOS] 改善Xcode編譯速度

專案已經開發超過一年半,累積的檔案數量已將近2500個(可見文章:專案檔案數遞增),想必日後編譯速度將會越來越慢,會深刻地影響我們開發的效率,尤其是在要了解前人所寫的程式碼,我們總是會稍微修改一下變數/參數來嘗試是否為增修的關鍵目標,所編譯頻率相當大,三不五時就要按Command+R

我嘗試過許多改善開發效率的方法,其中有三個可以嘗試:

  1. 提高XCode編譯時使用的執行緒數
  2. 將Debug Information Format改為DWARF
  3. 將Build Active Architecture Only改為Yes

1和3在我們的專案早已設定完畢,只剩下2可以嘗試,沒想到效果超好,提升幾乎10倍快的編譯速度!

(繼續閱讀…)

[iOS] 專案檔案數遞增

本週輪到我第二次「文字探討」,這一次我分享進階除錯技巧,關於XcodeLLDB。首先我表明為何需要學習進階除錯技巧,因為我們公司開發產品,歷時一年五個月專案檔案數遞增有目共睹,我特別透過Git回溯各時期的版本,來指令算出專案有多少個檔案。

檔案數隨著時間呈現性成長!

為何要查詢專案檔案數?這跟編譯時間有很大的關係呀!

(繼續閱讀…)

[Xcode][iOS] 清除警告訊息 (Clear Warning Message)

功能需求都已經開發完畢,在等待偉大的QA測試完前,有空的時候就可以來清除警告訊息 (Clear Warning Message)

天吶~從2018年2月開始開發到現在,剛滿一年就累積了230個警告訊息,不過也還好,先前我所開發過有破千的紀錄!不過那是因為接案的性質,我維護過至少有五個工程師陸續經手的案子,裡頭的警告訊息我壓根不想動XD~

現在因為是做自家產品,肯定要做得非常盡善盡美!儘管感覺好像在做繁瑣的雜事,好在還能學到些新技術與工具,讓我有些成就感囉~

警告訊息目前遇到的類型有包含:

  • User-Defined Issue
  • Validate Project Settings
  • Documentation Iusse
  • Deprecations
  • Semantic Issue
  • Value Conversion Issue

猜猜看哪個最難處理?

(繼續閱讀…)

[Xcode] Time Profiler (時間分析器)

我家產品HappyStyle開發到尾聲,需求上的功能已全數完成,接下來的時間可以來優化各個功能。若想要讓使用者體驗 (User Experience)變得更優,那麼勢必要提升App運作的流暢度。

像是在滑內容清單,若能無「卡頓」現象會是優良的體驗,那麼如何來減少卡頓狀況?我們可以利用Xcode內建的工具Time Profiler (時間分析器),顧名思義就是利用它來分析各個方法 (Method)函式 (Function),所執行的時間狀況會在界面上清楚呈現,除了可以觀察自訂的也能探索內建的。

(繼續閱讀…)

[iOS] APP啟動時間測量

現在做產品跟以往做代工不太一樣,代工只要將功能完成就能交差了事,而產品則除了完成功能外,還要進一步優化性能,包含使用者體驗 (User Experience)

在此我們先來測量APP啟動時間,如上圖啟動時間中的pre-main time。我發現以不同的裝置來使用同一個App,啟動時間都不一樣呢!當然這跟裝置規格有關係,等等就來測量差異多少~

(繼續閱讀…)

[Xcode] 主線程檢查器 (Main Thread Checker)

我所使用的整合開發環境是Xcode,每年更新都會釋出新的功能,來幫助開發人如我者更有效率地工作!2018年Xcode即將邁入第10版,這裡我想要來介紹主線程檢查器 (Main Thread Checker)

回想2012年我還是個初學者的時候,還不知道主線程的重要性,以致於有時候發生不預期的反應,實在摸不著頭緒!基本上要記住,改變畫面的動作要在主線程實現,不然會發生什麼事?有時候有反應,有時候沒反應,這種狀況debug超級困難呢!

[Xcode] 主線程檢查器 (Main Thread Checker)1

好在Xcode已經能從語法分析來得知,哪些程式碼會跑到非主線程,若改變畫面的元件在非主線程操作,Xcode就會有紫色的提示。上圖表示Label一定要在主線程使用 ([UILabel text] must be used from main thread only)。

(繼續閱讀…)

標籤雲

%d 位部落客按了讚: