unused.rb
Searches for unused swift functions, and variable at specified path
cd <path-to-the-project>
<path-to-unused.sh>/unused.rb
Item< func loadWebViewTos [private] from:File.swift:23:0>
Total items to be checked 4276
Total unique items to be checked 1697
Starting searching globally it can take a while
Item< func applicationHasUnitTestTargetInjected [] from:AnotherFile.swift:31:0>
Item< func getSelectedIds [] from: AnotherFile.swift:82:0>
To integrate this into Xcode, simply add a "New Run Script Phase" and use the following code:
file="unused.rb"
if [ -f "$file" ]
then
echo "$file found."
ruby unused.rb xcode
else
echo "unused.rb doesn't exist"
fi
![Screenshot 2024-02-08 at 12 05 28](https://private-user-images.githubusercontent.com/45998744/303272254-9098f9ce-34b2-4b77-91c2-f7308a9d4365.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODQzNzQsIm5iZiI6MTczOTE4NDA3NCwicGF0aCI6Ii80NTk5ODc0NC8zMDMyNzIyNTQtOTA5OGY5Y2UtMzRiMi00Yjc3LTkxYzItZjczMDhhOWQ0MzY1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDEwNDExNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZhZjQ5NzliNWFmNWYwNGY4YmZiZjBmOTViY2I3NmJlMzc5OTQ4ZTgwODI4ODMwNzI5ZmIwMmRlNGE0NmU5NWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Lgs6B_wPIOy1BF_DwIY5qZdUkpi360o-yVt6sdnyXL8)
- Fully text search (no fancy stuff)
- A lot of false-positives (protocols, functions, objc interoop, System delegate methods)
- A lot of false-negatives (text search, yep)