Just My Life & My Work

Archive for the ‘教學’ Category

[iOS] iOS 13 Device Token 問題

某天老闆心血來潮,要推播促銷活動,發現奇怪的問題⋯⋯查詢後原來是iOS 13 Apple推播通知回傳的Device Token改變了規則~

我立馬測試我們家App取得的Device Token,結果如下:

Xcode 11編譯跑在iOS 13

Printing description of deviceToken:
<a9df8591 f9be281b 45b7fd30 c452c298 05d04532 1c8e5e93 83079040 2efd1b83>
Printing description of deviceTokebStr:
{length=32,bytes=0xa9df8591f9be281b45b7fd30c452c298…830790402efd1b83}

Xcode 11編譯跑在iOS 11

Printing description of deviceToken:
<f144b48d 96957ab9 16717a2e e36d56a3 e91c0f7f 48623985 021173dd c4097c0e>
Printing description of deviceTokebStr:
f144b48d96957ab916717a2ee36d56a3e91c0f7f48623985021173ddc4097c0e

可以看到原本該是64字元的字串,變成有length和bytes,於是乎要再另外處理。

(繼續閱讀…)

[iOS] Object 轉換成 JSON

在iOS中有兩種常用的容器Object,就是DictionaryArray,而現在資料傳輸到伺服器幾乎都在使用JSON,於是就有很多機會要將Object 轉換成 JSON

註:

JSON(JavaScript Object Notation,JavaScript物件表示法,讀作/ˈdʒeɪsən/)是一種由道格拉斯·克羅克福特構想和設計、輕量級的資料交換語言,該語言以易於讓人閱讀的文字為基礎,用來傳輸由屬性值或者序列性的值組成的資料物件。儘管JSON是JavaScript的一個子集,但JSON是獨立於語言的文字格式,並且採用了類似於C語言家族的一些習慣。

JSON 資料格式與語言無關,脫胎自JavaScript,但目前很多程式語言都支援 JSON 格式資料的生成和解析。JSON 的官方 MIME 類型是 application/json,副檔名是 .json。

(繼續閱讀…)

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

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

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

(繼續閱讀…)

[iOS] 一次性驗證碼欄位 (One Time Code Textfield)

現在申請或註冊任何服務,非常多都需要透過收發簡訊驗證碼,來確認是否為真實的使用者!過去一直都能在Android收到驗證碼後自動填入畫面欄位,而iOS終於在WWDC 2018開始支援呀XD~它建造一個叫做一次性驗證碼欄位 (One Time Code Textfield)

(繼續閱讀…)

[iOS] 取得第一響應者 (Get First Responder)

最近需要得知第一響應者 (First Responder)是哪個元件,可惜iOS SDK並沒有直接取得的Method,網路上有的是Private API解法,若使用的話很大可能送審會「悲劇」,於是乎就有其他替代方法出現⋯⋯

若想體驗看看悲劇的話,可以使用這Private API:P~

UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
UIView *firstResponder = [keyWindow performSelector:@selector(firstResponder)];

審核人表明:

The non-public API that is included in your application is firstResponder.

(繼續閱讀…)

現學現賣 Shell Script

由於Jenkins中需要寫Shell Script來陸續執行某些動作,簡單的都已經打好收工,不過就在要Git Pull下來Release Branch時發生問題,其實就只是想要獲取特定的Branch,只是需要寫點邏輯流程。若是使用最熟悉的Objective C語言肯定沒問題,現在得以Shell Script來實現,不太曉得語法規則的我,只好現學現賣 Shell Script:P~

想要嘗試寫Shell Script?好在現今網路發達,Bash Shell Script Online信手粘來就能邊寫邊執行。

網址:https://www.jdoodle.com/test-bash-shell-script-online

Shell Script主要用途就是用來協助使用者在UNIX or Linux環境上,以更方便、更自動化的方式來執行想要執行的指令,它也可以很快速的協助使用者 or 管理者大量地執行重複性的動作與指令。做為一個系統管理者,學會Shell Script絕對可以事半功倍。

想起研究所時代,為了實驗影像處理演算法,在Windows上寫簡單的指令。

(繼續閱讀…)

[iOS] 改善Xcode編譯速度

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

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

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

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

(繼續閱讀…)

標籤雲

%d 位部落客按了讚: