MobileNativeFoundation / XCLogParser

Tool to parse Xcode and xcodebuild logs stored in the xcactivitylog format
Apache License 2.0
1.72k stars 121 forks source link

Remove CryptoSwift dependency #193

Closed feifanzhou closed 8 months ago

feifanzhou commented 8 months ago

(Sorry, I didn't mean to open this PR on this upstream repo — I meant to do it on a fork!)

feifanzhou commented 8 months ago

Actually, any maintainers want to discuss doing this?

CryptoSwift turns out to be the slowest-compiling library in my project, and XCLogParser is the only dependency I have that imports it:

xcodebuild -scheme Visualize -project Visualize.xcodeproj clean build OTHER_SWIFT_FLAGS="-Xfrontend -debug-time-function-bodies" | grep '.[0-9]ms' | sort -nr | tee slow-functions.txt | grep 'CryptoSwift'

Removing CryptoSwift reduces my project's clean build time from 60 seconds to 48 seconds. This seems like a nice win. LogFinderTests verifies that the change doesn't break anything.

The downside to my approach is that it bumps the minimum macOS requirement from 10.13 to 10.15. This is fine for my fork, but I'm not sure if that's acceptable for this upstream. There's probably a way to make this work on older macOSs without depending on Insecure.MD5, but I haven't looked into it.