PocketBible for iOS is Back in the App Store

Posted on: June 2nd, 2015 by Craig Rairdin 25 Comments

PocketBible iOS IconIt appears this story is old news now. 3.2.3 is available on the App Store. A few of you are still upgrading, so I’ll keep the article here for a while.

On May 18 we submitted PocketBible 3.2.0 to Apple for approval. On Thursday, May 28 they approved it and by Friday night it was being downloaded by our users.

When I saw it was available for me to download to my iPad, I updated my personal copy. I got the message I expected, that my data needed to be updated. I went to Manage My Data as instructed but there was no response from the program. I quickly hooked my iPad up to my laptop and ran the program in the debugger. It turned out the Manage My Data screen was being built, but as soon as it was displayed, it was being dismissed by iOS so the user never saw it.

I tried deleting and re-installing to no avail.

During this process, Facebook notified me of some messages from a couple people who I know to be active PocketBible customers. When I visited Facebook I found there were several users having the same experience I was.

I posted a status update to our Facebook followers instructing them not to download the update to their iPads (the program was working fine on my iPhone). After a few more minutes of testing I realized there was no way to work around this and that I was going to have to stop it from being distributed. Unfortunately, Apple does not offer an immediate “off” switch. I pulled the app from the App Store but it would take 24 hours to fully take effect.

I posted a message on the home page of www.laridian.com and wrote a blog article to explain what I knew about the problem. I set up a response on our tech support ticket system that pointed affected users to the blog article for more information. I pulled the update announcement I had made on Thursday from Facebook and our blog. I posted a status update on Facebook pointing to the blog.

Over the next five or six hours I tracked down two related problems in the Apple code. I was able to fix one of them fairly easily because the 15 places in the code that were affected were all in the same file (or, for you programmers, the same class).

Other problems were related to UIAlertView (messages that pop up in the middle of the screen, usually with an “OK” and a “Cancel” button) and UIActionSheet (windows that pop up from the bottom of the screen and contain a simple caption and a column of buttons). I found these to be used in 294 places in the code. Each of these instances had to be reviewed to see how to best work around the problem. In some cases, I changed the implementation to use an alternative method of doing the same thing. But in most cases there was no better alternative.

After doing some research on the Web (programmers use a site called stackoverflow.com to confer, converse, and otherwise hobnob with their fellow wizards) I found a good work-around that required only a simple change to the code in about a dozen places.

By Saturday afternoon I was ready to put the program in the hands of some beta testers. I posted a call for testers on the blog and on Facebook. I knew this would be tough going into Sunday morning, but I got a small number of testers from around the world to run the program through its paces. (I apologize to my fellow church members for taking a few minutes during the announcements to pull out my laptop, add three new beta testers to the provisioning profile, re-sign the program and upload it to the website.)

Interestingly, the only problems they found were bugs that have probably been in PocketBible since version 2.0 or maybe earlier. I made some effort to fix those but under the circumstances didn’t want to take more time than necessary to get the program back up on the App Store.

By Sunday evening, about 48 hours after discovering these debilitating bugs, I was ready to upload the program to the App Store. At the same time, I filed a request for expedited review with Apple. It took them 10 days to review the last version; they’ve taken as little as 2-3 days in the past. I was hoping they’d agree to expedite it, because even after it was approved it would take 24 hours to propagate to all of Apple’s servers. Apple approved the expedited review on Monday morning and an hour later the app itself was approved.

By Tuesday morning everyone was seeing the update (version 3.2.3) and reporting that it was working.

I apologize for the inconvenience. Here are a few FAQs:

What are the symptoms? “Manage My Data”, “Shop for Bibles and Books” and many other menu items don’t do anything. This is especially problematic, since the program tells you that you need to go to “Manage My Data” to update your data due to the program itself being updated. But Manage My Data doesn’t work. Other selections, such as “Copy Passage” and “Register Now” cause the program to crash.

Version 3.2.0 seems to be working on my iPhone. Should I be worried? The problem seems to be limited to the iPad.

Should I remove the program from my iPad? No. When you download the fixed version (3.2.3), it will overwrite the bad version and everything will still be there (books and user data). It is OK to leave it installed and even run it. It’s just that certain functions are disabled. You might also have it crash if you interact with any pop-up choice boxes like the registration prompt. Just leave it installed for now.

Why does PocketBible require you to go to Manage My Data anyway? Previous versions of PocketBible tried to maintain the integrity of your user data (notes, highlights, bookmarks, etc.) by detecting when you have logged into a different account, then asking you to say how you wanted to handle your existing data with respect to the new account (i.e. replace your local data with the data on the server or merge your local data with the data on the server). Unfortunately, it assumed that simply changing your password meant you were logging into a new account. This new version of PocketBible uses the same technique as PocketBible for OS X, which records the customer ID you use when you sync your data, then compares that customer ID to the one you are logged into. That way you can change your password or even log out and log back in, and PocketBible won’t get confused. Since the old version did not keep track of your customer ID, and since you may have logged in with your email address instead of your customer ID, PocketBible has to log into your account and ask the server for your customer ID. This is quick and painless — unless you can’t get to Manage My Data to do it!

I’m a programmer. What’s really going on? Apple changed the way that UIPopoverController, UIAlertView, and UIActionSheet dismiss their views. In each case, we previously could assume that after dismissing those views we could display another modal view or otherwise act as if the view was gone (whether it was actually gone from the display at this point is irrelevant — I know that takes another cycle through the run loop). But some recent update to the SDK made it so that dismissing UIPopoverController resulted in any modal view displayed after that to be dismissed along with the requested UIPopoverController.

UIPopoverController does not notify its delegate when it is programmatically dismissed, only when it is dismissed by a tap outside its view. So we have no way of knowing when it is done. There are various techniques to discover whether or not the view has been dismissed. I chose a very simple polling technique that doesn’t make assumptions about whether or not it takes only one pass through the run loop, as other solutions do. For UIAlertView and UIActionSheet, I changed the delegate method I use to act on a button press from the “button pressed” delegate method to the “dismissed with button press” delegate method. This assures that the view has been dismissed before we continue.


Tags: , ,

25 Responses

  1. Brien D. says:

    Thank you for promptly and openly acknowledging the problem on the iPad. I am observing the issues you are describing and appreciate being able to quickly confirm the issue is beyond my control. God speed in addressing the fault. My iPad is my favorite way to use Laridian software.

  2. John Coarsey says:

    Thanks for awesome products. I have been with Laridan since Palm days. Introduced to it by my pastor. You have done so much good for God’s people. Every single day I am richly blessed by these products.

    May God bless

  3. Zane says:

    Sounds like you need some help Craig. We’ll pray!

  4. Anita Dmith says:

    Grace, grace and more grace. Praying for you.

  5. Doug Stromberg says:

    Wow. I didn’t realize that the problem was so deep. Thanks for your great post. For those who would like to revert to the previous version on their iPad, since tomorrow is Sunday and if you are like me, you would like to have the broken features in place until Craig gets the program fixed and Apple decides to approve it, there is a word around.

    This is what I did between my Mac and iPad. It is all done within iTunes.

    I synced my iPad with iTunes. Then I navigated within iTunes to my iPad’s apps. I found the iPad “thumbnail” screen shot that has my PocketBible on it. I double clicked the PocketBible icon in order to get the “delete” X on the icon and I deleted the program. I resynced. I then scrolled down the list of apps until I got to PocketBible and clicked the “Install” button. I then synced my iPad again.

    This works ONLY if you haven’t had iTunes update the PocketBible app to the newest version before it was pulled.

    Of course, you have to reload all of your books from Laridian.

    This worked for me.

    • Paul Rabinowitz says:

      Thanks Doug, worked for me. Back up and running with gold old version 3.1.0 (for now). I can wait for the update 🙂

  6. Bill McFarland says:

    Thank you for the update, praying for a quick resolution. I have tested the latest build on the iPhone and it seems to work fine.

  7. Don says:

    Was able to recover 3.1.0 from my TimeMachine backup. A quick hack of the iTunesMetadata.plist (changed the itemId fields to a bogus version number) blocks automatic updates to the app. This allowed me to get back on track until the fix is released.

    Thanks for being “up front” and “on top of” this issue.

    Have you considered getting a Twitter account to be able to communicate updates and issues more quickly? It took about an hour to track down what was happening with PocketBible.

    Anxious to see the fix released.

    • Craig Rairdin says:

      Since you obviously don’t follow us on Twitter, announcing it there would not have helped. 🙂 I put it on our home page and in our blog. I modified the description on the App Store before pulling the app completely. I announced it on Facebook. I tend to not think of Twitter since, well, I just tend to not think about Twitter. 🙂

  8. Mike says:

    When I ran into the problem, it was nice to come here to the website and see that is was being corrected. Making the information available was a big help. Thank you for all that you do. God bless!! MikeE

  9. Don Lambert says:

    I experienced the problem in church this morning.

    It was a pain taking notes but I thought ahead and copied my notes to a Pages document.

    Wish I had checked the web page before I deleted the app and re-installed.

  10. Rod Schrivener says:

    Thanks for all you’re doing to get it right. I will wait for the fix rather than try to get 3,1 back. We are all wishing you the best as you work through this

  11. Joe T. says:

    Stop beating yourself up, Craig. Christians do their work to the glory of God, as you and Laridian have done for many years. None of us is perfect, even though we try our best. I know you are also under deadlines and other time constrains. Things happen! We iPad users will manage for a time without a perfect PocketBible. I used mine this morning, notes, highlights and all; they will eventually sync to the cloud or they won’t, but I could still follow this morning’s sermon with two Bible versions and three commentary notes open. Really, what more can I really ask for? The rest is just icing on the cake and all of God’s magnificent grace. User since Servant Software.

  12. Steve says:

    Not sure if anyone has pointed out yet that using the ‘passage action’ – ‘copy passage’ now crashes the app.
    Thanks for all you do. Been a user since the Palm days..

    • Craig Rairdin says:

      Yep. That’s one of the things we fixed over the weekend. Thanks for letting us know.

  13. James Higgins says:

    The main program still works well so we can be grateful. The Lord is teaching us patience with a few hiccups around the edges 🙂

  14. Because you’ve been so forthright and timely in explaining the issue, I think I’ll treat myself to a new dictionary (MacArthur Topical Bible) knowing I’ll be enjoying it soon on my iPad. Blessings.

  15. Russell Wilson says:

    Thanks for letting us know since I was wondering what was going. As everyone we thank Laridian for the way you serve the saints in knowning our Lord.


  16. Joe T. says:

    WOW!!! Sure was EXPEDITED! Manage My Data on my iPad now works. THANKS!!! Great work Craig.

  17. James Higgins says:

    I just installed 3.2.3 and it installed and synced without a hitch. Thanks for the hard work.

  18. Paul Rabinowitz says:

    Just installed the latest update. iPad is working fine. Thanks so much!

  19. Rod Schrivener says:

    At 9:45PM, I checked and found that my iPad was updated to 3.2.3 and seemed perfectly normal. Thanks to Craig and everybody including Apple for getting it up and running.

  20. Don says:

    Awesome job, Craig. Just got the update and so far, so good!

    Thanks for the hard work.

  21. Doug Stromberg says:

    Way to work through this! Good job. Debugging can be a nightmare.

  22. Susan says:

    Craig (and team): Thanks for your effort to get the fix up so quickly! I used PocketBible as usual to take notes during the sermon at church Sunday, hoping that I would eventually be able to synchronize them. Got the update on Monday, and it’s been smooth sailing ever since. Really appreciate your quick response to the problem.

©2017 Laridian