« September 2008 | Main | November 2008 »

October 15, 2008

iPhone Live!!!

I'm speaking at the iPhone Live conference with my friend Noah Gift. I'm happy to announce that Aaron Hillegass from the Big Nerd Ranch has just agreed to sponsor the talk. Thanks Aaron!

Today is the last day for attendees to save $125 off registration. Additionally, people who register can save an extra 20% by entering ip08gd20 at checkout - bringing the early reg total to a cool and reasonable $500.

iPhoneLive San Jose, CA -- November 18, 2008 Redefining Mobile Computing

October 07, 2008

The fun iPhone SDK 0xE8000001 error message

radar://6273520 is the appropriate number for the "can't copy the app to the phone" report I made. Hopefully, there haven't been a bunch of "me too" bugs filed. If you did file a "me too" bug, please ammend it with that number. Thank you to the Apple employee who pointed this out to me.

I've been hit by this one as have (it seems) a fair number of other developers. Here is what I've found is the problem in my case.

( radar://6273520 )

After signing (successfully, by the way) my app to install for debugging on the iPhone, the application (for which there is an apparently valid provision profile on the iPhone) will not copy to the iphone with the following errors from Xcode:

MobileDevice: copy_symlink: Could not create symlink on device: 16 MobileDevice: transfer_package: Could not copy /Volumes/Docs/Users/jonathan/svnCheckouts/priv//trunk//build/Debug-iphoneos/.app to PublicStaging/.app on the device: (null)
MobileDevice: AMDeviceTransferApplication: Could not copy package to device via AFC: kAMDUndefinedError

When I delete the application from the iPhone through the XCode interface, then I (ahem) ssh into the iPhone and delete everything in the PublicStaging directory, the app then installs and runs just fine. If I leave either copy of the app there (in the PublicStaging directory or in the directory where it is run by the iPhone), it won't install, giving the 0xE8000001 error that some of us have somewhat inexplicably hit. This happens on my other iPhone (a virgin 3G, in this case) that has *never* been touch by grubby jailbreaking hacking with the same console errors from Xcode.

It looks like the iphone/Xcode stages the application into the /private/var/mobile/Media/PublicStaging folder first, then copies it into the "live" folder. Sometimes (I'm not sure why, yet), the iPhone seems to lock Xcode from writing to that staging directory when an application of a given name is already there. The funny thing is that I can reinstall the OS on the phone and then install the application ONCE (probably because the PublicStaging directory is empty at that time). I wonder what is causing that directory to be unwritable. It doesn't happen for *all* of my apps, though I have had experience with this error suddenly appearing for a given app after having run it on the phone several times in the past. I wonder if rebuilding my certificate chain would help. If I have any time during this or next week (unlikely), I'll do just that and let you all know if that has solved my version of this issue.

Has anyone had success with rebuilding the certificate toolchain in mitigating the misery?

If you're not sure *why* the 0xE8000001 error message is coming up, running Xcode from the Terminal and watching the error messages there might bring some clarity. I would be interested in knowing if my own underlying error is pervasive or if I'm some kind of an outlier here.

I hope that this has thrown a little more light on the error and do please feel free to let me know (privately, if that's more appropriate) if you have had the same or some other error message in the console.

I can be reached at MYFIRSTNAME(AT)MYDOMAIN.com.

This was posted also to the ranchero.com iphone-dev list in partial response to others who are having this problem.

Rarely, people in government can impress

Congressman Braley

Just a quick note from a former (and probably future) Iowan currently living rather too near the cesspool that is Wall street that your comments and conduct during today's hearings has been very impressive to me. You're explanation of the present financial problem, after which the gentleman formerly of the SEC commented that he wished that he could have put it so clearly, has the kind of clarity that many of your constituents and much of America needs to hear. I am happy to see men such as yourself in office. Should you ever run for public office wherein I would be one of your constituents (either by my moving back to Iowa or by virtue of your continuing success in national politics) let me say, sir, that I would be happy to vote for you.

Yours sincerely,
Jonathan A. Saggau
B.M. Music Composition - Iowa State University
M.A. Music Composition - New England Conservatory of Music
Founder and C.E.O. - Sounds Broken inc.

------------------------------------------------------------------------

Understandably, Congressman Braley's web site does not allow those residing outside of his home state to send him email, so I've chosen to place this on my blog as an open letter. J

October 01, 2008

iPhone NDA -- some thoughts

When the news came out today that Apple has chosen to lift the iPhone NDA, I (like many developers) breathed a sigh of relief. I would like to take a moment to thank my peers for being so outspoken and to thank Apple for finally deciding to make my life as an iPhone developer excedingly easier by allowing the members of the development community to do as they so often and so unselfishly do to help one another with various recurring difficulties that crop up in our craft. The Mac OS X software community that I've had the pleasure of getting to know over the last couple of years continues to astound me. I'm proud to count myself among them. They are, to a person, a wonderful, well-meaning, honest, and interesting group of people who, as evidenced by the recent brouhaha over the aforementioned NDA, are very vocal about their beliefs and try to treat others as they expect to be treated. I've decided to take a page from that book and voice a belief of mine: A contract is a contract.

Having had the pleasure of arguing over contracts (including several of my own), intellectual property, personal liberty, and many similar topics with more than a few software developers, attorneys, students, musicians, my astonishingly intelligent parents, and various other people I have admired over the years, I've come to a few conclusions. One of the fundamental principals I try to follow in my own dealings with others is, I'm told, a basic brocard of civil law -- Pacta sunt servanda ("agreements must be kept").

When you enter into a legal contract, you do so willfully. If you want to develop for the iPhone you must also click that little check box on Apple's website indicating that you agree to be bound by their NDA. Clicking that check box is tantamount to a signature, thanks to The Electronic Signatures Act. If you have chosen to download the SDK you have also chosen to enter into a legal contract with Apple that, very generally, allows you access to their tools for the iPhone provided you don't share any information related to them that Apple hasn't chosen to otherwise make public with anybody. There are a few exceptions to this in the NDA, but that's the basic gist. Traditionally, Apple drops the corresponding NDA when it releases software to the public. In the case of the iPhone NDA, they chose for quite some time not to do so. It was their choice to make.

I disagree with Apple's decision to keep the NDA in place for as long as they did. It stifles my own creativity in a very frustrating way to know that I am spending valuable time solving a problem concurrently with several of my peers. It further saddens me to see my peers waste their own valuable development time when I discover something I could contribute. The NDA hurt Apple by slowing innovation on the iPhone platform and by stifling the sort of vibrant community that has grown around their other products. I think that it was a mistake to have been so secretive and I'm glad that they've changed the policy and dropped the NDA.

Many of my peers chose to point-out the problems that the NDA caused and to speak out against this move. I'm ever so glad that they did. Thanks, guys. Apple seems to have gotten the message that the iPhone developer community wants to remain a community and it appears to have taken vocal criticism and the resulting negative public opinion to change that policy. Hopefully the foggy and inconsistent policies relating to inclusion in the app store will be the next to go.

Prior to its being dropped, some of my peers chose to break the NDA. Some have chosen to simply ignore it. I think that's wrong. It saddens me to see some of my peers break contractual obligations. I'm certain that no one did so lightly, and I believe that everyone in this community has the best intentions. I know that I have found myself close to that line on a number of occasions and I may have inadvertently broken the NDA at some point, though that was never my intention. I certainly hope that I didn't. While I am surprised and somewhat irked to have seen Apple keep the NDA in place after they would have traditionally dropped it, I recognize that it was Apple's prerogative. As vibrant and outspoken a community as we are, we really should keep the promises we make, even if we don't think others expect us to keep them. It should be a part of who we are. The NDA didn't include an official expiration date when we each signed it and we, as members of a civil society and as members of a community of artists and engineers who make our living generating intellectual property, should not allow broken promises to pass silently.

Today is a good day for our community. We're relatively little. Apple is relatively big. We were a squeaky wheel and Apple has changed its tune. We can always express our concerns loudly and even "vote with our feet," if needs be, but I think we go too far when we intentionally break our contractual obligations. Today could have been a great day for us, but I'm not sure it was. [Redacted] NDA or not, I think we ought to carefully follow any agreements we chose to sign and respect our obligations to people and companies large and small, including those who we don't feel are treating us particularly well. Otherwise, how are we to be trusted?