Burn the App Store

A modest proposal: Apps which have not been updated in over a year should automatically be removed from the App Store.

Read More

How to get rid of the new Dropbox checkmarks on Yosemite

If you've updated Dropbox for Yosemite, you've probably noticed the giant green checkmarks all over all your folders. It's great to know that my files are being synced, but frankly I don't care when it works. The only thing I care about is when it doesn't work (or when when it's actively working, that's nice too). The rest of the time, it's just a folder on my machine, and the Dropbox fairies fly my data around invisibly.

So! To reclaim that invisibility, I've disabled the checkmarks on my machine. And you can too!

 

tl;dr - Change the filename of the checkmark image.

First, find your Dropbox app. Mine is in /Applications/, as yours most likely is. Right click it in Finder, and select Show Package Contents. All you'll see is a single folder, Contents. Open that, then open PlugIns. There will be just one file here, garcon.appex.

Interlude: Garcon is the Dropbox app extension that does the aforementioned fairy magic. It's the piece that makes things sync automatically, and puts the icons next to files to show their status.  

Interlude: Garcon is the Dropbox app extension that does the aforementioned fairy magic. It's the piece that makes things sync automatically, and puts the icons next to files to show their status.

 

So right click on garcon.appex and select Show Package Contents again. Same as before, open Contents, but this time open the Resources folder. Inside, among other files and folders, are four overlay-something.icns files. All you have to do is change the file name of overlay-uptodate.icns to anything else. You can do this by single clicking the file and pushing the Enter key on your keyboard, or by right-clicking it and selecting Get Info.

Personally, I like to rename things like this to whatever-the-real-name-is.old, that way I can just take off the .old if I ever want to undo the change.

garcon.appex Internals

The last step is to restart Finder. Just hold down the Option key on your keyboard (also known as the Alt key) and right-click on the Finder icon in the Dock, then select Relaunch.

There you go! No more crazy checkmarks, but the other icons will show up to let you know when sync is occurring or fails.

Look ma, no checks.

Look ma, no checks.

If you ever want to undo this and get the checkmarks back, you can just rename that file to its original name (overlay-uptodate.icns) and restart Finder as above.

Updating Dropbox will also (probably?) undo this, so you may need to do this again one day.

Cocoapods pch error when updating Xcode

When I updated Xcode (from 6.0 GM to 6.0.1) this morning, my Cocoapods project stopped building with the following complaint:

File '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/usr/include/sysexits.h' has been modified since the precompiled header '/Users/michael/Library/Developer/Xcode/DerivedData/Example_App-fsojmrhygegcdzguhnrtvayaxomy/Build/Intermediates/PrecompiledHeaders/Pods-Example App-FLKAutoLayout-prefix-bwkzwquwvmqedfeasqvdcsmlzrtu/Pods-Example App-FLKAutoLayout-prefix.pch.pch' was built

Exciting stuff! I tried cleaning the project, both the nice way and the mean way (i.e., Clean Build Folder...), but that didn't solve the issue. The solution (which should have been obvious if I'd read the error message a bit closer instead of going straight to Google) was to delete DerivedData, which of course is always the answer. The problem was caused by Xcode updating the iOS frameworks but the pch files being linked against the old frameworks. Not sure why Xcode didn't check that and clear DerivedData for me, but there you go.

The moral of the story here is to read the error messages Xcode provides closely (and to always delete DerivedData).

P.S. Deleting DerivedData is simply deleting the folder ~/Library/Developer/Xcode/DerivedData, or using the excellent plugin DerivedData Exterminator.