MobileNativeFoundation / XCLogParser

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

Remove CryptoSwift dependency #193

Closed feifanzhou closed 1 year ago

feifanzhou commented 1 year ago

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

feifanzhou commented 1 year 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.