Generating a Mac Iconset

You’ll need to create PNG assets with the following sizes and filenames:

[cc]
icon_16x16.png
icon_16x16@2x.png
icon_32x32.png
icon_32x32@2x.png
icon_128x128.png
icon_128x128@2x.png
icon_256x256.png
icon_256x256@2x.png
icon_512x512.png
icon_512x512@2x.png
[/cc]
All of those assets should go into a folder named ‘Icon.iconset’.
Afterwards, just fire Terminal and type the following command:

[cc]
iconutil -c icns
[/cc]

If all went well, you should have a .icns file right there!.

Reference: Apple’s Guidelines.

Waiting until two async blocks are executed (Version #2)

This is a nice variant to this other post. It gives you… way too much flexibility!

[cc lang=”objc”]
dispatch_group_t group = dispatch_group_create();

dispatch_group_enter(group);
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
NSLog(@”Block1″);
[NSThread sleepForTimeInterval:5.0];
dispatch_group_leave(group);
NSLog(@”Block1 End”);
});

dispatch_group_enter(group);
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
NSLog(@”Block2″);
[NSThread sleepForTimeInterval:8.0];
dispatch_group_leave(group);
NSLog(@”Block2 End”);
});

dispatch_group_notify(group, dispatch_get_main_queue(), ^ {
NSLog(@”Group Notify Block3 :: %d”, [NSThread isMainThread]);
});
[/cc]

Waiting until two async blocks are executed

The following snippet of code.. which is super interesting, is based on this post. This allows to dispatch a block, on Main Thread, once two async operations are completed.

[cc lang=”objc”]
dispatch_group_t group = dispatch_group_create();

dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
NSLog(@”Block1″);
[NSThread sleepForTimeInterval:5.0];
NSLog(@”Block1 End”);
});

dispatch_group_async(group, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^ {
NSLog(@”Block2″);
[NSThread sleepForTimeInterval:8.0];
NSLog(@”Block2 End”);
});

dispatch_group_notify(group, dispatch_get_main_queue(), ^ {
NSLog(@”Block3 :: %d”, [NSThread isMainThread]);
});

dispatch_release(group);
[/cc]

New iPhone Jailbreak Released

It’s been a while since the last iPhone jailbreak was made public. But all evil comes to an end, sooner rather than later. A couple days ago, a hacking group named evad3rs, published a brand new Jailbreak tool for iOS 6.x.

It’s claimed to be able to jailbreak any iOS device: iPod / iPad / iPhone / iPad Mini. I’ve tested it myself on two devices: iPhone 4s and iPhone 5. The results were impressive. They managed to combine at least 3 different exploits to make things work.

The process is quite seamless. You simply download the app, run it, and follow the instructions onscreen. The binary is available for OSX, Windows and even Linux.

You can download it here. What to do once the device is jailbroken?. You can perform an incredible amount of customizations, that are not available in the pristine version of iOS.

iPhone Jailbreak

If, on the contrary, you’re still running an old version of iOS, we suggest you check out this site. They’ve got a nice repository of information with the previous jailbreaks that were made available… who doesn’t remember BlackRa1n, LimeRa1n… JailbreakMe or GreenPoison?.

Those were golden times, but Apple has spent a lot on hardening iOS security (no wonder why they’re now providing devices to the US Government, while RIM is directed right ahead to chapter eleven).


By the way.. we do not encourage the usage of hacked / cracked software. If you like an app, please, support the devs!.

Checking the UUID of a DSYM file

So… you’ve got a crashlog, and you don’t know if a given DSYM actually matches with the original executable?. Well, there is a super easy way to verify this. Simply type the following, in your console:

[cc lang=”bash”]dwarfdump -u Project.app.dSYM/Contents/Resources/DWARF/Project[/cc]

Ideally, mdfind should help you locate the matching DWARF. But sometimes… symbolication requires extra debugging.