Archive for category Software Development

Amazon e-Book share to fall from 90% to 35%, Analyst Says

Thoughts started by Wall Street Journal’s blogger Matt Phillips’ article.

Always interesting to try and predict what the future holds… My opinion: eBooks will be BIG. Now why?(disclosure: I am an iPhone developer. I gave my science-teacher wife a Kindle for her birthday.)

Have we any reason to think that paper prices won’t keep increasing? Aren’t paper prices heavily influenced by energy prices, labor prices and plain old demand? (Retail price of 1 sheet of cheap copy paper is nearing 1 cent in my area.) Just the raw paper material and shipping it around will make it more expensive.

Isn’t much of the book industry basically an impulse-driven market? eBooks are fantastic for such a market. The trivial shipping costs of internet data may it easy to give away free sample chapters and give instant gratification to buyers. People who Read the rest of this entry »

Tags: , ,

iPhone Ad-Hoc distribution problems

Well,  an interesting bit of problem-solving today.

I sent a revision of an app to a client with ad-hoc distribution.  It installed just fine on one device, but would not install on the other. (The one that was going to be used to demo the product.) I double-checked that both device IDs were properly included in the provisioning profile.

After some quick re-reading, I thought the (cryptic) error might be that I forgot to send the .mobileprovision file along with the app.  One of the instruction lists showed installing the profile manually.  But when the file was emailed and isntalled, iTunes asked if it should replace the existing provisioning profile. It probably came from the app (which has a embedded.mobileprovision file in it.)

iTunes doesn’t show any information about installed profiles (that I could find) so it wasn’t clear if the provisioning profile was actually on the device.  A quick download of the iPhone Configuration Utility cleared that up.  It showed information similar to  XCode’s organizer, including the provisioning profile.

As it turns out, you can’t just send a .zip of your app straight to a Windows computer like you can on the Mac.   I haven’t seen an explanation anywhere, but it might be that the bundle contains files or folders with names that are not Windows-friendly.  Both contain a symlink file, but they seem the same.

The solution it seems is to process the app bundle into an .ipa file.  The easiest way to do this is to drop the bundle on iTunes. It will process the bundle into an ipa file.  Just control-click on the app to pull up the contextual menu and choose “Show in Finder”.   (Or go find it in the iTunes folder.)  Send that ipa file to your ad-hoc Windows users and they can drop it into their iTunes.

The errors from the iPhone log:

unknown mobile_installationd[1347] <Error>: 00808a00 install_embedded_profile: Skipping the installation of the embedded profile
unknown mobile_installationd[1347] <Error>: unrecognized status -67068 from codesigning library
unknown mobile_installationd[1347] <Error>: 00808a00 verify_executable: Could not validate signature: e8008001
unknown mobile_installationd[1347] <Error>: 00808a00 preflight_application_install: Could not verify /var/tmp/install_staging.Pav7Nw/foo_extracted/Payload/appname.app/appname
unknown mobile_installationd[1347] <Error>: 00808a00 install_application: Could not preflight application install
unknown mobile_installation_proxy[1346] <Error>: handle_install: Installation failed
unknown mobile_installationd[1347] <Error>: 00808a00 handle_install: API failed
unknown mobile_installationd[1347] <Error>: 00808a00 send_message: failed to send mach message of 64 bytes: 10000003
unknown mobile_installationd[1347] <Error>: 00808a00 send_error: Could not send error response to client

Tags: , ,

SQLite Missing Functions in iPhone 2.x

While trying to improve my app’s memory usage, I tried to add a call to SQLite’s routine to release memory cache: sqlite3_release_memory().   But when I tried to build it, I got the following error:

ErrorDot“_sqlite3_release_memory”, referenced from:
-[AppDelegate applicationDidReceiveMemoryWarning:] in AppDelegate.o
symbol(s) not found
collect2: ld returned 1 exit status

Read the rest of this entry »

Tags: ,

Mysterious iPhone status bar icon?

Last night I was attending the iPhone SIG of the Florida Macintosh Users Group (FLMUG).

One of the members was asking about an icon in his status bar he couldn’t identify.  It looked like a landline telephone’s receiver with a keyboard underneath.  We scratched our heads for a minute until Phil said “wait, that’s gotta be the TTY setting”.  He quickly looked in Settings under “Phone” and yes, the TTY setting was on.  The icon went away when the setting was turned off.

Kudos to Phil for deducing the answer based on the “phone” and “keyboard” clues.

So today, I had to go lookup the other icons which may be displayed, just in case. :-)  They are listed by Apple as “status icons” here: http://support.apple.com/kb/HT1558

Walt

Tags: ,

iPhone App Approval Took 12 Days

I got my first iPhone app,  ChronoGami, approved for download on the App Store.  And, the approval process did take 12 days from submission to approval.

There’s a lot more to the story than that of course.  I have worked on apps for other people that have shipped out through the App Store before ChronoGami.  But I began work on ChronoGami before I worked on those, so I still think of it as my first app.  I use it myself to track time on various bits of work and my life.   (I’ve got several upgrades to deliver when I finish testing already.)  I intend to be using ChronoGami exclusively for this in the near future. Adjusting to the iPhone keyboard still proves to be a challenge for note-taking.

An ironic part of the story that makes me laugh:  I checked the status of ChronoGami just before leaving for an interview to talk about possible Mac and iPhone work.  Late in the interview, during a break, I got online and checked again.  It had been approved!  Now I had one more point to talk about in the rest of the interview.  :-)

Tags: ,

Getting to Build Options in XCode for iPhone Projects

Choose one of the "Base SDK" members.

Choose one of the "Base SDK" members from the "Overview" popup in the project window.

Been frustrated with getting the proper compiler options turned on and off for iPhone projects because they don’t show up in the build settings?  Me Too.

Many thanks to Rick Maddy for posting the answer to this on iPhoneDevSDK.com so I can finally access the “GCC 4.0 – Code Generation” and “GCC 4.0 – Language” sections correctly.

To see these entries in the settings window,  you must first go to the “Overview” popup menu in the project window and select one of the entries that correspond to the “Base SDK” as specified in the build settings.  If your project’s “Base SDK” (wording used by XCode 3.1.3) is a device, you must select one of the device entries.

Note that for XCode version 3.1.2.  this was referred to as  “(Project Setting)”.  If later or previous versions have different wording, please let me know and I’ll update this.

If any other entry from the popup’s “Active SDK” section is chosen, you will not see these through either method of accessing the build options.   This is typically my problem as the selection spends most of the time on a “Simulator” setting during development.

With another entry, you may see some flags show in the “User Defined” section at the bottom of the build options.  You can still set options with these (as I did before finding out this information.)

The "Base SDK" project setting.

The "Base SDK" project setting.

This is just what I needed to address problems like:

“error: ‘for’ loop initial declaration used outside C99 mode”

Tags: ,

I told XCode to forget it, but it can’t

Another XCode bug brought to light thanks to the product “Little Snitch” (mentioned in my phone-home post),  I sometimes see a notice that XCode is trying to connect to the SSH port on an IP address I no longer use.   I can’t make it stop.   I just hope that whoever has the address now doesn’t track me down and send the Feds.  (That would be like worrying about a snowflake in a blizzard I’m sure.)

XCode was once setup to connect to my home IP address to get to the Subversion server I had there.  At a certain point I stopped using that server and started using repositories on my laptop because now I’m often unable to connect back to the house. (And because I wanted to shutoff the massive tower to lower my massive electric bill. )

I removed the IP address from my list of repositories under SCM Preferences, and the address is not listed under the SSH tab in that preference pane either.  A search of the XCode preference file turned up empty.  But somewhere that address is still remembered by XCode.

Tags: , , ,

XCode Crashes if it can’t phone-home

I’ve had trouble lately with XCode crashing immediately after an error trying to communicate with Apple’s servers.

I don’t know quite what’s happening, but i have Little Snitch installed on my Mac and I often work in Starbucks or bookstores where paid WiFi is available.   Somehow, being denied its chat with Apple makes XCode crash.

Little Snitch is a cool piece of software.  I bought it in one of those bundle deals from MacHeist or MacUpdate.  But its alert every time an unexpected communication attempt is made can be quite eye-opening.   However, I learned quickly to not deny XCode when it tries to talk to Apple.  The first time I did that, XCode crashed immediately and took my text changes with it.  (Not much work lost thankfully.)

I still make Little Snitch ask for permission for all XCode communications so I can see when they happen.  If I don’t press the “Allow” button before the attempt times out, XCode may or may not crash. I give permission as fast as possible so it won’t crash.

In the past few days though, XCode has still crashed, even with permission given in under 5 seconds.  I’ve begun to wonder if it might be a problem with router used by stores to get logins before allowing traffic out to the internet.  If XCode is denied at that point, will it still crash?  I don’t know yet.   But since such WiFi spots allow the computer to connect, it may look like you are on the internet when you aren’t.  Communications will fail.

Thankfully, it doesn’t try very frequently.  If it did,  it would be too frustrating to deal with all the crashes.  I also note that the XCode Console output shows a crash report submitted to Apple,  so I assume they don’t need another bug report on it.

Tags: , , ,

Helping XCode find its files

I started moving files around in my project folder recently.   I wanted to re-organize code and non-code files into different folders.

Once the files had been moved and the project re-opened, there are many source files displayed in red, meaning XCode does not know where they are.

To help XCode find missing files, try this:  select the red file,  perform “Get Info”, select the “General” tab and click the “Choose…” button.   You can then find and pick the file.  You can even change the file if you like.

Warning:  when you are doing this with a missing file, it is possible to substitute a folder for the file.   If you manage to do this, you won’t be able to just re-choose the file.   You’ll have to delete the folder and re-add the file.

Tags: , , ,

default.png won’t display

Funny one today:  my default.png file would not display.  My application launched with a black screen zooming out instead.  A quick look at another app that did work properly showed the only difference: the “D” was capitolized.  A quick check and sure enough, it worked if the D was upper-case.

That was a surprise to me, being so used to the case-insensitive file system on the Mac for so long.

Tags: ,