How to have multiple iTunes Connect accounts, and submit apps

iTunes Connect is a bag of hurt sometimes, especially if you have clients that you work with. One of the biggest frustrations that I have (and hopefully this will be changing in the future) is when you need to submit builds and you cannot use an email for an Apple ID in iTunes Connect to manage your client’s Apps, TestFlight, Users, etc.

While there is no easy way to accomplish this yet, at least there is this post by mokagio that helps ease some of the pain…

How to have multiple iTunes Connect accounts, and submit apps

TL;DR You can’t! There is no Apple way to do it, and this is yet another frustration of working in this platform. The steps described below are just a workaround to handle multiple iTunes Connect accounts in a sane-ish way.

While I don’t love using the Application Loader, at least it works. Also, creating email addresses for Apple IDs with the “+clientname” trick works great if you use a Gmail-based email system, and I’m fine with having my clients use this method when they add me to their iTunes Connect accounts.

Customize the background color and title of a UINavigationBar and the status bar

Here’s an example of how to customize the background and title color of a UINavigationBar without having to use an image (in this case, a blue background with a white title AND white status bar):

    // Set the navigation bar to blue
    [[UINavigationBar appearance] setBarTintColor:[UIColor blueColor]];
    [[UINavigationBar appearance] setTranslucent:NO];

    // Set the navigation bar's title text to white
    [[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];

    // Here's where it gets a little weird: we set the barStyle property to *UIBarStyleBlack* to achieve a *white* status bar.
    [[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];

Strange Case of the non-scrolling-to-top UITableView

Earlier today I had a situation in which the gesture to scroll a UITableView to the top by tapping on the iPhone status bar was not working.

Strange and annoying.

On doing some investigation, I found a clue on StackOverflow which pointed me in the right direction. It turns out that if you have a nested scroll view whose scrollToTop property is set to YES (the default), it will prevent the containing UIScrollView (or in this case a descendent thereof, UITableView) from recognizing and responding to that gesture.

In fact, in the documentation for UIScrollView, it says the following under “Special Considerations”:

Special Considerations
On iPhone, the scroll-to-top gesture has no effect if there is more than one scroll view on-screen that has scrollsToTop set to YES.

In my case I have a UIScrollView inside each UITableViewCell, which was defaulting to YES for scrollsToTop. Once I programmatically set that property to NO, the UITableView began responding to that gesture again!

Case Closed!

 

Xcode Tip: Open multiple projects at once

I discovered this one accidentally since I really did want to open three projects at the same time after opening Xcode.

It turns out that the “Open Project…” dialog in Xcode supports multi-select! So you can Shift-Down/Up to select more than one project, hit Return and all three projects will be opened simultaneously!

I pretty much stumbled on this one when I did an “I wonder if this works” kind of thing at that dialog, and sure enough, it opened all three.

Score!!!

 

 

Developing for Bluetooth Low Energy and iOS – Now at Cloud City Blog!

As you may or may not know, I currently work for the software development consulting company, Cloud City Development in San Francisco. They kindly asked me to write a blog post on the subject of Bluetooth Low Energy and iOS, and of course I jumped at the chance!

The great news is that the first part of the three-part series was published yesterday!

cc-zero-to-ble

Many thanks to the entire team at Cloud City Development for allowing me to work on this very interesting and informative series (and for publishing it!). I will post again when parts two and three are up. Look for them in the next few weeks!