在開發 iOS App 時,很多應用都要根據當前 App 內容顏色來設置 iOS 系統狀態欄 的配色,黑色或者白色——尤其是在 iOS 13 系統支持了黑色模式後。
平時,別人會告訴你這麼做:
1 |
UIApplication.shared.statusBarStyle = .default |
但這會觸發警告: 不推薦使用 在 iOS版 9 。那麼有沒有其他辦法呢?有,官方推薦的寫法是[……]
在開發 iOS App 時,很多應用都要根據當前 App 內容顏色來設置 iOS 系統狀態欄 的配色,黑色或者白色——尤其是在 iOS 13 系統支持了黑色模式後。
平時,別人會告訴你這麼做:
1 |
UIApplication.shared.statusBarStyle = .default |
但這會觸發警告: 不推薦使用 在 iOS版 9 。那麼有沒有其他辦法呢?有,官方推薦的寫法是[……]
之前我寫過一篇文章:“ 使用 Mailgun 創建你的免費域名郵箱 “Mailgun 有一個很有意思的功能就是收件路由,通過這個功能設定,你可以將任意發來的郵件轉發到你設定好的郵箱當中,這樣就不需要為每一個域名設置一個郵箱服務了,只需要通過 Mailgun 就可以將對應的郵件轉發的需要的郵箱——畢竟,平時我們可能也就使用這些域名郵箱做個基本的驗證。
最近,Mailgun 不再免費了,免費使用者[……]
最近很流行自簽證書進行 HTTPS 解密,然後就有不少人通過修改蘋果的內購回執實現對 App 的破解。實際上驗證購買應該是 App 連接服務器,服務器來和蘋果的服務器進行通信,然後將結果發送給 App 的——但不少開發者(包括個人開發者以及企業開發者)懶得去專門維護服務器,所以直接用 App 和蘋果的服務器進行通信,這就給中間人攻擊提供了機會。
中間人攻擊,就是說當 A 和 B 進行通信[……]
不少人在開發中都會遇到 EXC_BAD_ACCESS ,很遺憾,這一次 Xcode 不會給出任何詳細的解決方案。
通常來說,這是由於內存錯誤造成的。簡單來說就是你創建了對象 A,但在後來訪問的時候,內存裡 A 這塊區域已經被系統挪做他用了,比如放了對象 B 在這裡——你的 A 只剩下指針,實際內容已經不存在了。
這時就會出現類似這樣的崩潰:
[crayon-679[……]
處理時間和日期是軟件開發中很常見的操作,幾乎所有的編程語言都提供了對應的 API 來方便開發者對時間日期進行處理,Swift 也不例外,比如 DateFormatter ,使用它你可以將任意 日期 轉換成自定義格式的文本字符串。
——但是,[crayon-6792aa1ed404f700[……]
不少朋友都是用 Flask 框架來寫小服務器的,方便又快捷,還能一鍵運行,很舒服。不過,如果你真的想把你的服務部署到服務器上,那你就會發現其實還有一些功課要做,這篇文章裡,我們主要來談談如何將寫好的程序在服務器上變成一個服務而不是終端裡執行的命令。
如果我們用 Python 寫了一個網站應用,那麼它就需要一直運行來監聽 HTTP 請求,如果在終端直接執行
[crayon-6792aa1ed[……]
之前我曾經寫過macOS app 實現自動化 notarize 腳本,由於我的輸入法使用微軟的 HockeyApp 進行崩潰統計,所以我還需要把 app 上傳到這裡進行一次“發布”,好讓 HockeyApp 能夠收到對應版本的錯誤統計。
如今,微軟的 HockeyApp 已經更新成了 AppCenter,自動化命令也十分友好,其實這個操作也可以加入到你的自動化腳本里邊,一步到位。
在此之前,我一直是這樣在 macOS 上安裝和使用 pip 的:
1 2 3 |
sudo easy_install pip3 pip3 install my_package |
後來,這個方法失效了,變成了這樣:
1 2 3 4 |
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py pip install my_package |
終於有一天,pip 提示我它需要更新,於是:
1 2 3 4 5 6 7 |
pip3 install --upgrade pip3 ... ... TypeError: 'module' object is not callable |
查詢後,發現原來 Python 是要這樣安[……]