Monthly Archives: September 2015

Malware on the (Chinese) App Store

Here is a comment I wrote regarding the recent discover of apps containing malware on the Chinese App Store.

1. This is the first such event in over 7 years (and Billions of downloads) of the App Store’s existence, unlike the almost daily occurrence on other platforms.

2. You correctly didn’t echo the false and sensationalized comments of an “attack” on the App Store, as there was no attack.

3. This was limited to Chinese developers circumventing several Apple safeguards. Not that Apple shouldn’t be able to (ultimately) catch this, and they did, but developers should know better than to turn off Gatekeeper, download Xcode from unauthorized servers, and then not check it’s authenticity. Any of these measures would have prevented such an occurrence.

4. Not making excuses but given the security measures within the iOS environment, these apps did virtually no damage. Here’s a quote: Palo Alto Networks Director of Threat Intelligence Ryan Olson claims the impact was likely negligible, with no reports data theft, or “other harm.”

Solving iTunes 3014 Error

For whatever reason, probably because I do iPhone development and am always installing “stuff” on my computer and iOS devices, I’ve run into the dreaded iTunes 3014 error consistently when trying to restore my iPhone/iPad to put a new OS on it. I swear I tried this before and it didn’t work but I just followed the steps below and everything is updating nicely. iOS 9 GM!

  1. Open Terminal and cd to the /etc folder.
  2. Using your editor of choice, mine is nano, open the hosts file (sudo nano hosts).
  3. Enter your password.
  4. Add the following line to the bottom of the file:
  5. Write out/save the hosts file and exit (ctrl-O then ctrl-X for nano).
  6. Finally, flush the DNS cache with this command: dscacheutil -flushcache
  7. All done!

Encoding a URL in iOS 9

The typical way to encode URLs (e.g. turn spaces into %20) was to use NSString’s


As you may have noticed, that method has been deprecated in iOS 9. You now need to use


which takes an NSCharacterSet as it’s argument. What NSCharacterSet am I supposed to use you may ask. I recently ran into this and found the following worked for me:

[NSCharacterSet URLFragmentAllowedCharacterSet]

The relevant Apple documentation can be found here.