Just My Life & My Work

Posts tagged ‘ios’

[iOS] 加速送審App (Expedite App Review)

沒有bug就沒有工作,於是乎自然而然產生bug⋯⋯(笑~)

有時候以為完全沒問題,簡單測試完後送審並上架,結果不到三天,上千用戶陸續使用後,發現要結帳時居然crash⋯⋯為什麼我會知道crash呢?因為FirebaseCrashlytics

原以為問題不大,然而在我家客服收到「無法結帳」的抱怨,始知事情大條啦⋯⋯

(繼續閱讀…)

[iOS] 檢查多國語言檔案 (Check Localization File)

沒想到簡單的多國語言檔案,也能造成App邏輯出現問題呢⋯⋯

這次由於檔案中莫名多了個「看不見的字元」,編譯能過,但卻讓NSLocalizedString(key, comment)出現問題!原本傳key會回value,出了問題後傳key會依然回key⋯⋯

(繼續閱讀…)

[iOS] iPhone 螢幕解析度

智慧手機近年來螢幕越大越有多人想使用,Apple一直是潮流先驅者,當然會緊跟著用戶的心意。2019年9月發布更大尺寸的iPhone,而我也在五年後,把iPhone 6換成iPhone 11[iOS] iPhone 螢幕尺寸.png

之前我也寫過iOS Support Matrix,該圖表作者在2020年表示,因為Apple發佈累積的iPhone裝置太多,已經無法簡單地繪製圖表,於是捨棄較舊的裝置來重新製作~

iPhone-Specs-Matrix-1.0-Dark

iPhone X之後的狀態列變化較大,於是要判斷手機模型來決定預留多少高度,此無最佳解,只能與時俱進囉~

參考:The Ultimate Guide To iPhone ResolutionsiOS DesignSay Hello to the iPhone Specs Matrix

[iOS] 取得導覽列與狀態列高度

iPhone機型越來越多樣,畫面設計需要考量多size,這次遇到要知道狀態列與導覽列的高度,大致上會有三種值,44 px、64 px、88 px,需要怎麼寫程式來獲取?而不必用多種判斷寫死數值。

原來只要這麼寫即可!

CGFloat topbarHeight = ([UIApplication sharedApplication].statusBarFrame.size.height +
(self.navigationController.navigationBar.frame.size.height ?: 0.0));

就乾淨俐落~

[iOS] 棄用API的使用情況 (Deprecated API Usage)

2020年3月開始,上傳ipa檔到App Store,立刻收到上傳成功信,不過有點不太一樣的是,信中提醒有個問題未來必須解決⋯⋯目前可以暫時略過,直到2020年12月後若還沒解決,上傳ipa檔到App Store就會被拒絕!

哇~真是驚為天人,原本已經完美無瑕的功能,現在要被迫更新使用新的API。其實軟體就是如此,會隨著時間演化出更好的效能,與時俱進是較佳的做法,就像公司的產品,若一直是舊有的狀態,極有可能會被時代給遺棄。例如:Feature phone已被Smart phone取代啦~

原本在想只要搜尋本專案中有無關鍵字「UIWebView」,然而查到的解法,是連同所使用的第三方套件都必須一併移除,這可是大工程呢!於是要研究怎麼轉移到「WKWebView」。

(繼續閱讀…)

[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。

(繼續閱讀…)

標籤雲

%d 位部落客按了讚: