使用 SwiftUI 的一大收益就是可以像 Flutter 那樣對 App 進行熱更新,改動了UI的代碼,會直接反映在模擬器或者是真機中,大大提升了編寫用戶界面的效率,不用改1px,運行,各種點擊,然後查看效果的循環往復。但現在使用 SwiftUI 還為時過早,畢竟還是有大量 iOS 12 設備在運行,想要做大眾軟件,那還是要支持的。
那麼,有沒有辦法能讓 UIKit 編寫的軟件也能用上實時[……]
使用 SwiftUI 的一大收益就是可以像 Flutter 那樣對 App 進行熱更新,改動了UI的代碼,會直接反映在模擬器或者是真機中,大大提升了編寫用戶界面的效率,不用改1px,運行,各種點擊,然後查看效果的循環往復。但現在使用 SwiftUI 還為時過早,畢竟還是有大量 iOS 12 設備在運行,想要做大眾軟件,那還是要支持的。
那麼,有沒有辦法能讓 UIKit 編寫的軟件也能用上實時[……]
最近落格輸入法遇到了幾個比較難以復現的問題——關鍵是它不會導致崩潰。這就讓崩潰統計功能根本無效,具體表現為在某些情況下輸入法會突然卡住幾秒,叫人十分惱火。後來我想到,macOS自帶活動管理器中,有個“採樣”功能,可以看到對應進程當前的執行(調用)狀態,那我是不是可以用它來分析錯誤原因呢?
在和用戶溝通後,我得到了一個類似這樣的採樣報告:
[crayon-6948607dea64072032[……]
Python 是個好東西,好多時候我們喜歡用它來寫一些小東西……比如我服務器上的很多服務都是用 Python 寫的( 使用 Supervisor 將你的 Python 程序變成服務 ),日積月累之下,竟然用到了很多依賴包。
可是,這些 Python 的依賴包並不會隨著你的 易於 升級 進行更新,許久之後的今天,我發現某個我正在用的包[……]
首先說這不是一個新技術,它很老,老到幾乎沒人提起它。
這是蘋果 MVC 模式下的產物,最早在沒有 iPhone 的時候就已經誕生了,它是用來配合 Xcode 圖形化設置界面用的——比如 NIB,當然,現在已經變成 XIB了,哦,還有 Storyboard。
現在如果說起要 bind 一個 Storyboard 中的對像到代碼中,你可能查到的都是這樣的:
在左側欄點擊鼠標右鍵打開小窗口[……]
在之前的一篇文章中我為大家介紹了一個同時安裝多個版本 Xcode中 的工具使用 xcode-install 來管理 Xcode 版本但當你的系統中同時存在多個 Xcode 時,就會導致系統困惑,讓 Xcode 的插件無法被識別,主要的體現就是系統偏好設置中根本看不到 Xcode 插件的選項——就好像你完全沒安裝過它們一樣。
總之,我在這裡找到了答案
首先執行命令:
[crayo[……]
之前我曾寫過一篇文章macOS app 實現自動化 notarize 腳本,但並沒有提到使用代碼自動編譯並生成 App 的腳本,畢竟這一步有好多工具可以完成,比如說 fastlane。
我由於在 notarize 之前也沒想過做自動化,而在寫那篇文章的時候 fastlane 還沒有支持 notarized 上傳,於是我就自己寫了,具體的編譯命令是這樣的:
[crayon-6948607de[……]
最近忽然發現磁盤存在大量寫入,打開任務管理器一看,發現一個叫做“lsd”的進程持續佔用 20% – 40% 中央處理器,很奇怪。
經過一番查詢,得知這個進程是 macOS 和 iOS 上的系統進程,全名叫做“Launch Service Daemon”,負責所有 App 文件類型關聯和啟動。但它的數據庫有時候會損壞,這就導致它頻繁讀取和驗證某些數據。
一旦它的數據庫損壞,你就會遇到 lsd[……]
平時,你會在安裝某個 Python 包時遇到這個錯誤,這個包肯定是一個包含了 C++ 代碼的包。
這是由於 macOS 更新後出現的不兼容,一般來說,這個包的維護者應該已經對這個特殊情況做出了兼容:
|
1 2 |
if platform.system() == 'Darwin': extra_compile_args += ['-mmacosx-version-min=10.7', '-stdlib=libc++'] |
這樣在 macOS 上就可以順利編譯通過了。
但如果你使用的是 PyPy,那可能即使維護者包含了這句話,你也無法成功安[……]
最近在做文本統計,用 Python 實現,遇到了一個比較有意思的難題——如何保存統計結果。
直接寫入內存實在是放不下,十幾個小時後內存耗盡,程序被迫關閉。如果直接寫入數據庫吧,每次寫入又太慢了,本來就十幾個小時了,這樣下去就要往星期上數了,也不是個辦法。
最後,我想到了一個兩者兼顧的方案——用內存做緩衝,達到一定量之後一次性將當前所有數據合併到硬盤裡。
但這樣就有一個閾值,如何確[……]
之前我寫過一篇文章,使用 fail2ban 防止 Bind9 被用於 DNS 放大攻擊,萬萬沒想到,原來 WordPress的 本身也可以用來進行放大攻擊,原理就是它的 pingback的 機制。
Pingback 是 Wordpress 的一個網站之間互相通知工具,比如 A 博客引用了一個 B 博客文章的鏈接,那麼 Wordpress 就可以自動幫你通知 B 博客,告訴博主你引用了他的文章。
這[……]
在開發 iOS App 時,很多應用都要根據當前 App 內容顏色來設置 iOS 系統狀態欄 的配色,黑色或者白色——尤其是在 iOS 13 系統支持了黑色模式後。
平時,別人會告訴你這麼做:
|
1 |
UIApplication.shared.statusBarStyle = .default |
但這會觸發警告: 不推薦使用 在 iOS版 9 。那麼有沒有其他辦法呢?有,官方推薦的寫法是[……]
之前我寫過一篇文章:“ 使用 Mailgun 創建你的免費域名郵箱 “Mailgun 有一個很有意思的功能就是收件路由,通過這個功能設定,你可以將任意發來的郵件轉發到你設定好的郵箱當中,這樣就不需要為每一個域名設置一個郵箱服務了,只需要通過 Mailgun 就可以將對應的郵件轉發的需要的郵箱——畢竟,平時我們可能也就使用這些域名郵箱做個基本的驗證。
最近,Mailgun 不再免費了,免費用戶[……]
最近很流行自簽證書進行 HTTPS 解密,然後就有不少人通過修改蘋果的內購回執實現對 App 的破解。實際上驗證購買應該是 App 連接服務器,服務器來和蘋果的服務器進行通信,然後將結果發送給 App 的——但不少開發者(包括個人開發者以及企業開發者)懶得去專門維護服務器,所以直接用 App 和蘋果的服務器進行通信,這就給中間人攻擊提供了機會。
中間人攻擊,就是說當 A 和 B 進行通信[……]