I think my brain cells are shrinking—it is unbelievable how quickly I forget. Such is the life of a software developer, these days.It is amazing how quickly I can forget the details of one programming language detail over another after just a few weeks away—when I see my old code, I amaze myself at how good a programmer I was… last month! Read the rest of this entry »
Archive for the ‘Commentary’ Category
I Just Want to Submit a Frickin’ iPhone App to the App Store! (Part 3)
Way back in in “I Just Want to Create a Frickin’ iPhone App! (Part 1),” I walked you through the logistics of joining the developer program (no, you didn’t miss “Part 2,” I have not written it yet). Fast-forward a couple of months and it’s time to submit to the app store! For a company that has built a reputation on simplicity, Apple has concocted an arcane process and made it worse by not providing any complete nor accurate information to help with the application submission process.  Apple’s minimalistic approach is of no help… you often feel like your flying blind as you try to make your way through the process. I’ll try to give some heads-up and clarity if you, too, are going through this for the first time.
So, let’s hope I can remember all that I went through.
- Create specific App ID: iOS Provisioning Portal →App IDs →New App ID.  (Note: you cannot delete App IDs once they are created).
- Enter a name for this application. This is just for reference; it will not appear to a user.
- Select the “Bundle Seed ID”. Normally you will want to select the one that was assigned to you, in the drop down.
- Define the App ID Suffix. Â This has to match the ID that is bound into the application, so you will probably want to copy the one assigned to the application you’ve been building, lest it be recognized as an entirely new application. This is not critical, but if you have beta testers and you change the App ID, the next update will not overwrite the older version of the app, they will have to delete the old one, explicitly.To find (or change) the current Bundle identifier in Xcode 4.x, select the Target of the project. The Summary tab shows the Bundle identifier in the “Identifier” field; or, in the “Info” tab, it shown as “Bundle identifier”. Of course, these settings come from the project’s
.plist
 file, so you can access its “CFBundleIdentifier” (aka “Bundle identifier”) explicitly. The value in the app should be the reverse domain name, for example, “com.handthingsdown.htdmobile”; do not prefix the “Bundle Seed ID” to the bundle identifier in the app. - This value should match the Bundle Identifier field when creating a new App ID. As noted in the “How To” tab, you can use wildcards for this value; however, a fully qualified ID is necessary to utilize the various services (e.g., Push Notification, Game Center, iCloud).
- Create an App Store provisioning file:  iOS Provisioning Portal →Provisioning →Distribution →New Profile.
- Be sure the “Distribution Method” is set to “App Store”.
- Select the App ID from the previous step to associate with your application.
- You wont have to — or be able to — select devices to include, as you would for ad hoc provisioning.
- Once the profile has been created, download and add it to your Xcode profiles.
- Create an archive build of your application, build for release and utilizing the App Store provisioning profile.
- If you haven’t already, you may want to duplicate the Release build-configuration to “Distribution App Store” (making sure that the target is not selected go to Xcode’s menu: Editor →Add Configuration →Duplicate “Release” Configuration.
- In the project’s target’s go to Build Settings →Code Signing →Code Signing Identity.  Below the build configuration you will use to build the Archive, set the “Any iOS SDK” setting to the provisioning profile you created for distribution to the App Store. (For the build configuration itself, I selected “Don’t Code Sign”; but I do not know if that matters).
- Modify build scheme’s Archive to use the build configuration you configured and build the Archive.
- From the Organizer’s Archive view, select and “Validate…” the binary. This performs (only) some tests of the module before uploading.
- We will jump away from Xcode for a moment….
- So you thought you were done signing up with programs with Apple? First an Apple ID, then the Developer Center, then an iOS Developer, and now iTunes Connect, itunesconnect.apple.com. Go to a web page and set up an account. This is where you will manage the applications that you submit to the App Store.
- Once your account is created, go to “Manage Your Apps” and select “Add New App”.
- Fill in the app name, SKU, and select a Bundle ID. Note that none of these settings can be changed once the app has been accepted by Apple.
- Click the “Ready to Upload Binary” button to start the process. The upload does not occur via the web page.
- Go back to Xcode. Since the Archive was just built, the Organizer window should be open with the Archive view shown. Be sure the correct Archive is selected (at the top of the list).
- Upload your application to Apple. There is the new, complicated way (which I used) and an old simpler way, that should still work—so I hear. So, back to Xcode…
- First, the old, simple way.  Ignore the messages on the iTunes Connect web page about the Application Loader. From Xcode’s Organizer window’s Archive’s view, click the “Submit…” button. That’s it!
- Now the difficult way:
- Click the “Share…” button. to build “iOS App Store Package”
- Select App Store certificate
- Open Application Loader and follow its steps to upload the .ipa file that was created in Xcode.
- Once the module has been submitted, there are additional automated checks that take place. So, wait an hour or so and check back at the iTunes Connect page. The status should change, if the module was accepted. If not, check your email to see what kind of errors may have occurred.
- If it passed the automated checks, you can now wait nervously for actual humans to vette the application. Expect this to take a full week.
Resources
- Apple: iOS Provisioning Portal
- Apple: iTunes Connect
- Stackoverflow:Â Removing App ID from Developer Connection
Startup Life
Do you ever wonder what your entrepreneur friends do all day? Here’s a typical day in the life of a startup entrepreneur. (Cheryl’s day) I like to include a fitness factor in my day to break away from the computer. I normally go to sleep around 2 or 3 am and found out recently, that this isn’t a sustainable long-term practice. I ended up catching a cold/cough over the weekend which forced me to slow down and catch up on much needed sleep.
Snowing in Seattle
Cheryl walking around outside the apartment on experiencing her first snowfall in Seattle.
Did You Already Quit on Your New Years Resolution
We are a week into the new year, have you started working on your New Year’s resolution(s)? If you have started working on your New Year’s resolution(s), are you still following it?
Give up making New Year’s resolutions, they never work, join me in my movement. I’m not a quitter, I just don’t see the point in creating a promise at the beginning of the year that you will break within a week or if you are an over achiever, within a few months.
The problem is that most people make grandiose plans to do a 180 in some area of their lives and this never works. Yes, I’m talking to you, so pay attention. The only way to achieve big goals is to decide on a goal then break it down into little bite size activities which can be done either everyday or a few times a week. The cumulative effects of these baby activities will add up over time and bring you a step closer to achieving your grandiose plan.
Business Goals
- Graduate from the Founder Institute on March 14, 2011 by launching Hand Things Down as a web and mobile app for busy moms to give away or trade the precious things their kids have outgrown.
- Build a solid startup team.
- Grow the monthly active users in the Hand Things Down community to over 50k, within 6 months of launching.
- Generate $250k or better in net income in the first year.
Personal Goals
- Get in bikini body shape by June 30, 2011
- Blog everyday
Be Specific & Give Yourself a Deadline
It’s important to know exactly what you want to accomplish by a given deadline because if you don’t know what you want something to look like, how can you develop a plan to accomplish those goals?
Next up
Plan to accomplish business goals.
Plan to accomplish personal goals – will post this to my personal blog.
Image credit: http://www.flickr.com/photos/bex_x_pi/3157409347/
Web Designers vs Developers
Web Designers vs Web Developers is brought to you by Wix.com. You are welcome to share this infographic with your audience.
the future of applications
no one could anticipate the role that software applications play in the world. starting as isolated applications running on big, expensive metal, then siloed applications running on cheap metal. networking opened up communal demand for interaction with an application, breaking the silo model, somewhat. the internet broadened access to applications and data by the masses. social interaction with applications is the new paradigm. simultaneously, mass adoption of powerful handheld communicating computers arose. today, no application avoid inclusion of social and mobile facets integral to its functionality.
where will this go next?
Catching the Technology Train, After I’d Disembarked
Staying away from programming for too long, things change faster than I’d ever expected. Even with a strong foundation, when things move ahead so quickly, too many things change and it isn’t as easy to hop back on the train, as I would have thought. Today, I am trying to catch up with technology train that is web development. How did I become so disconnected?
The result is that, not only do I need to learn new languages and their nuances, I even need to learn a new workflow, a new way of doing programming. While I am not starting from scratch, a lot of my prior “expertise” is not directly applicable; so it feels like starting from scratch.
I could just stick to the old technologies that I am still expert at, but that isn’t cutting edge. Still I could do that. Then I wouldn’t have anything to be stressed about. And, that wouldn’t be so bad, now would it?
Posted in Commentary