iPad 2 Bluetooth problems and Awesome Apple Support

No Comments

My iPad 2 is awesome.  I really enjoy using it, for pretty much anything and everything.  Recently however, I found a problem with it, specifically with the bluetooth radio.  I have used bluetooth with this iPad before, binding it to wireless keyboards and such without any problems.  However, now the iPad’s bluetooth is stuck in the “off” position, and can not be turned on.  In fact, the UISwitch view doesn’t even render, just an activity view that never stops.  See below:

iPad2 bluetooth setting

I discovered this when I went to pair the iPad 2 with an iCade system I had recently picked up after being heavily discounted.  Everything else on the iPad was fine: wireless, 3G, etc – just freak’n bluetooth.  I tried restarting the iPad the “nice way” using the swipe to shut down option.  That didn’t work.  I then tried a “hard” reset of the device by holding down the top button and power button until the device resets.  No dice.  I even went as far as doing a full blown restore via iTunes* (after backing everything up of course).  Still a no go. Damn, this sucks.  I have this nice shiny iCade to play with, not to mention $10 worth of apps I purchased to go along with it, and I can’t get the damn bluetooth to work on my iPad 2.  WTF?

Step 2 – console.

I write apps, so I have Xcode etc on my mac(s).  So, what I did next was to plug the iPad in, fire  up Xcode, open Organizer, select my iPad and view the console.  If you didn’t know, this is a super handy way viewing what is going on inside your iDevice.  Once hooked up, it didn’t take long to spot the problem:

Feb 14 10:29:24 unknown kernel[0] <Debug>: BTServer[64] Builtin profile: BlueTool (sandbox)
Feb 14 10:29:24 unknown com.apple.BTServer[64] <Notice>: bluetooth reset was pulsed 100 ms
Feb 14 10:29:24 unknown com.apple.BTServer[64] <Notice>: bluetooth wake is now ON
Feb 14 10:29:24 unknown com.apple.BTServer[64] <Notice>: Issued HCI Reset
Feb 14 10:29:24 unknown com.apple.BTServer[64] <Notice>: DeviceTree speed = 3000000
Feb 14 10:29:35 unknown com.apple.BTServer[64] <Notice>: Chipset.cpp:109 runBlueTool Default Error HANG: Waited 10 seconds for BlueTool to run boot
Feb 14 10:29:35 unknown com.apple.BTServer[64] <Notice>: PowerManager.cpp:168 powerInitEvent Core Critical Init failed, still in high power – BM3 STATUS 1
Feb 14 10:29:35 unknown com.apple.BTServer[64] <Notice>: Device not open yet, use ‘device’ to open it.
Feb 14 10:29:35 unknown com.apple.BTServer[64] <Notice>: Opening com.apple.uart.bluetooth @ 115200 baud.

Here is a link to a paste bin of the log if you need it.

So, from this log, you can easily see the device was failing to start the necessary components required to use the bluetooth radio, which sucks.  I further verified this by comparing this to a console log of another iPad that had a working bluetooth radio.  Given the results of this log, and the methods of repair attempted thus far, this likely indicates a hardware problem.  This was pretty much my guess after a full restore failed to fix it, but now it is confirmed.

Step 3 – Apple Support

Well, unfortunately it seemed to me that this was going to beyond my ability to repair since it seems to be a hardware issue.  Time to contact Apple Support.  If you have never called Apple support before, you should know that they seriously rock.  Apple really has the entire process down pat.  For this instance, I started on their web site and entered my iPad’s serial number (found on the back of the iPad among other places).  After clicking continue, Apple tells you the status of your support.  Since I had NOT purchased AppleCare, my iPad had already expired for phone support, but the device itself was still eligible for hardware support.  I continue through the process which is just a couple of clicks.  At the end, Apple will call you.  That is right.  You don’t even have to pick up the damn phone, they will call you so you don’t have to wait on hold.  Talk about epic.  You can pick from having them call immediately (which I did), or at a scheduled time.  It was about 20 seconds from the time I hit the button to call me now from the time the phone rang.  I was seriously impressed.

It only took a few minutes for the Apple rep to verify that the problem was indeed a hardware issue, and that they would send me a new iPad. This is awesome because the nearest Apple Store is about 3 hours away.  The rep informed me I would need to take the iPad to the nearest UPS store, and they would package it and mail it for me, pre-paid.  However, the rep went one step further.  He looked to find how close the nearest UPS store is.  This happens to be about 15 miles away.  The rep informed me of this, and said since it was “so far away” that he would just have a UPS box delivered to me along with a pre-paid label and I could just drop it off at any UPS drop off location.  That my friends is service.  As disappointed as I am that my iPad is having some issues, I was totally blown away at the level of customer service I received.

Most companies have a 90 day warrantee (if that) on consumer electronics.  Apple’s standard is one year.  Then, if you want to double that, you can purchase Apple Care.  With their level of customer service, it is well worth it.  I’ve waited on hold with numerous companies over the years, and have never had customer service as good as I have from Apple.

Conclusion

Apple is replacing my iPad for me, for free.  Apple support rocks.  Hard.

 

 

* After doing the restore, I set the iPad up as a “new” device instead of restoring from my backup to ensure it wasn’t something to do with my configuration / profile.

How to redeem an app promo code

No Comments

I continue to be amazed at how many people simply have no idea how to use promo codes for iOS apps, even when told it is the same exact way you would redeem an iTunes gift card.  Regardless, I’m tired of sending the same instructions over and over again, so will explain how to redeem app promo codes in this post, and hopefully save another developer from having to do the same.

From your iPhone/iPod/iPad:

Step one: Open the app store app

App Store Icon

Step 2: Tap featured on the bottom tab bar, and if it isn’t already selected, tap either “New” or “What’s Hot” on the top tool bar.  Then scroll to the bottom, and tap “Redeem”.

Redeem promo code step 2

Step 3: Enter your promo code!

Redeem promo code step 3

One you have submitted your code, the app will automatically download to your iOS device.  The app will usually install to the first available space you have on the device OTHER than the first page.  So, if you have an open spot on page 2, then it will be there, if page 2 is full, then it will be on 3, etc etc.

If you entered a code from an iTunes gift card instead of a promo code from a developer, then the sum of that giftcard will be applied to your iTunes account, which you can then use to buy some cool apps.

From iTunes

If you happen to be at your computer with promo code (or iTunes gift card) in hand, you can also enter it in iTunes.

Step 1: Open iTunes, and click “Store”

iTunes Store

Step 2: Find the “Quick Links” section on the right hand side of the iTunes app, and click “Redeem”

iTunes Menu

Step 3: Enter you code, and click Redeem

iTunes Redeem

This will start downloading the app if it was a promo code, or apply the cash value to your iTunes account if it was a gift card.  The only drawback about doing it this way for promo codes, is that you have to sync your device with iTunes before it will be installed on your device, which kinda sucks.  The easiest way by far for promo codes is to enter the code on your device.

UDID Tool for iOS

No Comments

If you ever want to work with an iOS developer in order to beta test their application, the first thing they will most likely ask for is the UDID of your device.  The UDID is a unique id that is on every iOS device.  Developers needs this ID in order to provision your device for a special “pre-release” ad-hoc build.  Getting the UDID of the device is not hard, but the typical way of getting it involves plugging your device into your computer, launching iTunes, etc etc.  Luckily, there are a ton of apps in the app store that are both free and can grab that ID for you.  I’ve looked at a number of them, and most either contain ads (really? for a one time use app?), or have other features you don’t need or care about.  After all, I just want the damn UDID to send to the developer after all.

After doing some searching and testing a number of apps, I ran across an app  (appropriately named “UDID Tool“) that met all my requirements:

  • Straight and to the point, show’s me the UDID immediately, no having to tap another button to get it
  • Can send an email with the UDID from the app OR copy to the clipboard
  • Clean interface, not something I’d be hesitant or embarrassed to send to a client.
  • Designed to run on the iPhone, iPod, and the iPad

While true, an iPhone app can run on the iPad, it sure is nice to have an app that is already designed for the iPad and not look like crap when blown up to 2x.  The other big thing for me was to have an app free of branding, spam, ads, etc that I could send to potential beta testers or clients, and this app fits the bill.  It’s clean, looks like a tool, and does exactly what it advertises, and is free.

If you are in need of a tool to send to beta testers, or are a beta tester that needs a quick way of finding your UDID to send to the developer, this is the tool for you.

You can download UDID Tool from Apple’s app store by clicking this link: http://itunes.apple.com/us/app/udid-tool/id377602501?mt=8

Invalid certificate for certificate signing request

1 Comment

Part of the process of setting up iOS apps for push notifications involves signing and submitting certificate signing requests in Apple’s iOS Provisioning Portal.  Typically, if you can read and follow directions, this is not too big of a deal.  However, if you do end up getting the dreaded “The Certificate file is invalid.  Please check the file and try again.” error, then the cause may just have nothing to do with you, and everything to do with your browser.

I have run into this a couple of times now, and both times it was because I was using Google’s Chrome browser.  For whatever reason, Chrome can’t seem to play nicely with the iOS provisioning portal and screws up the upload.  If you switch over to Safari, you should have no problems submitting the certificate signing request.  If you are still getting an error, then the problem is some where else.

If you get this screen and are using Chrome:

fail sauce

Switch to Safari and you should get this:

Much Win

Moral of the story:

Xcode – key value coding compliant error

No Comments

If you have ever come across the following error, it can be pretty frustrating if you don’t know where to look:

*** Terminating app due to uncaught exception ‘NSUnknownKeyException’, reason: ‘[<SomeViewController 0x13e190> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key someObjectView.’

Nearly every time I’ve seen this so far, it has been because I had removed a view (UIButton, UILabel, etc) and had forgotten to remove the connection in Interface Builder.  So, if you are seeing this error and your code looks fine, remember to check IB!

Older Entries