Archive for the ‘Random Ramblings’ Category

Get your permissions right!

Wednesday, March 30th, 2011

Thought I’d post about this little developer experience because it was incredibly frustrating and not at all obvious. Maybe this will save someone else the headache that I’ve been through.

Background: When preparing an application for release on the Mac App Store, you code sign your application, then bundle it into an installer pkg which is also code signed (using either Xcode organizer or the productbuild command line tool). When the application is installed, it gets extracted from that .pkg file, the user runs it, and it checks for a Mac App Store receipt. If there’s no receipt, OS X checks to make sure that the application is signed correctly, then contacts the Mac App Store to get your receipt.

Problem: This would all work for me as advertised except that when the receipt check failed, OS X would complain that my application wasn’t code signed, and therefore wouldn’t contact the App Store to get the receipt. From a user’s perspective, the app would just fail to launch.

I’d followed all the instructions. I double- and triple-checked to make sure the application was signed before I built the .pkg file. I tried building the .pkg using both the Xcode organizer and productbuild – they both worked with no problems or error messages. Yet when the application came out of the .pkg file on the other end, it was always unsigned! I deleted all of my certificates, regenerated them, and redownloaded them from Apple’s developer site (several times). I checked every step along the way in my build process – they were all working. It was incredibly frustrating because the signed app went into the ‘black box’ of the .pkg file just fine, but came out on the other end without its code signature.

Solution: After tearing my hear out for a while, googling for answers, and checking the developer forums, I finally tracked down the solution. I had a single image file in my application’s resources that had its permissions set to 640 instead of 644, meaning that it was not readable by everyone. That threw the entire game off – apparently when the installer unpacked the .pkg file, it ran into this problem file and either stopped short of installing the code signature, or invalidated the signature.  Either way, the application it installed was useless.  Simply changing the permissions on that one tiff file fixed the problem I’d been fighting with for days.

Soooo….  If your app builds and runs fine UNTIL you package it, and then comes out unsigned on the other end, check the permissions on the resources in your application.  And Apple, please emit some kind of warning when hapless developers feed productbuild a file with the wrong permissions that’s gonna screw up the whole process.

Tip: There’s a really cool developer utility called Cong, written by Stephane Sudre.  It checks your application for all kinds of minor errors, from localization goofs in .strings files to incorrect Info.plist entries to missing files in your package.  I’ve contacted Stephane and checking file permissions is now on his To-Do list for Cong.  If you’re a developer, get a copy of Cong – a simple drag-and-drop could save you a lot of time and trouble!

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Replacing Apple Downloads with the Mac App Store

Tuesday, December 21st, 2010

Apple has long had Apple Downloads, a section of Apple.com that lists third-party software.  It’s been a popular place for users to browse and sample the wealth of Mac software available from both large and small developers, including St. Clair Software. We get a significant amount of web traffic from Apple Downloads.

I recently received an email from Ron Okamoto, Vice President of Worldwide Developer Relations at Apple, notifying developers that Apple Downloads will be going away, replaced by the new Mac App Store. Because both Default Folder X and App Tamer do not meet the Mac App Store guidelines, this is a big cause of concern for us. We’ll lose a lot of customer visibility, and won’t be able to replace it by putting our apps in the Mac App Store.

I wrote Ron this reply:

Thanks for your notification – I can’t say that I’m surprised as Apple’s support for the Downloads section of Apple.com has been waning for quite a while.  I fully expected Apple Downloads to just go away without even getting a notification, so I applaud your professionalism in actually letting us know.
As a long-time Apple developer (I’ve been doing this since 1988) I’ve become accustomed to changes in direction, forced rewrites as Apple has adopted or invented new technologies, and sometimes capricious decision making on Apple’s part. As in the past, I’ll deal with what comes my way and work to keep my business healthy, but shutting down a primary traffic source for our web site is going to make things quite a bit more difficult.
In your letter, you say “the Mac App Store will be the best destination for users to discover, purchase, and download your apps,” but that doesn’t apply to my two best-selling applications, nor to those of many other developers.  The guidelines put in place for the Mac App Store disqualify Default Folder X and App Tamer from inclusion in the App Store, despite their popularity and utility.  I’m left to reinvent my products and company (again) as they don’t fit Apple’s vision of what a Mac application should be.  There are numerous developers in my position. We make useful – some would say essential – products that users will now have a more difficult time finding as Apple drives customers and market focus to the Mac App Store.
For small developers with applications that don’t fit the guidelines, is there some avenue that we can pursue for getting exposure on the new Mac App Store?  Some kind of advertising / comarketing that we can participate in to get into an “other great apps” section where users can at least see that our products are available?  If such an “Apple Downloads for the App Store” were an option, I certainly wouldn’t argue with giving Apple a percentage in return for what I anticipate will be a lot of traffic.
I’m running a business, and I understand that you’re running yours.  I know that you need to have restrictions for apps in the Mac App Store in order to ensure that users have a seamless, trouble-free experience and I respect that. It’s what will ultimately make it a big success. But as a developer of applications that won’t be allowed in the store, I’d like to see alternatives that would let me focus on keeping those applications alive and vibrant.
Thanks
- Jon Gotow, President, St. Clair Software
Quick follow-up: It looks like I need to address a few questions based on the tweets I’ve been been getting:
Default Folder X and App Tamer aren’t going away – this affects how much time we spend developing vs. marketing. The more we have to work at getting users to see our products the less time we have to develop them.
Why can’t Default Folder X and App Tamer be in the App Store? Click here to see a PDF of the Mac App Store guidelines. Default Folder X fails to meet item 2.15 (it installs a Scripting Addition) and may also violate item 6.5, since it creates floating windows around file dialogs that could be construed as “changing native user interface elements.” App Tamer violates 2.27 because it asks for your admin password (and needs to).
[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Indie+Relief: Help Haiti AND Get Great Software

Wednesday, January 20th, 2010

The earthquake in Haiti has nearly destroyed what was already a fragile country. Please join us in assisting in the relief effort.

On Wednesday, January 20 St. Clair Software and 100+ other developers are donating all sales to help provide medical care and supplies for Haitian earthquake victims. Please visit the Indie+Relief web site and purchase any products you need, think you might need or have even considered buying. All revenue will be donated to charities that benefit Haitian earthquake relief.

Even if you don’t purchase anything, donate to the charity of your choice.  Skip that latte and send water to people that desperately need it.  Skip that dessert and provide food or medicine. Or keep your lifestyle exactly the same and just donate a few dollars – it all adds up.  If you’re unsure which charity to give to, visit Charity Navigator, which breaks down the benefits (and costs incurred) for most major charitable organizations.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Default Folder X 4.3 Is Available!

Monday, August 17th, 2009

Default Folder X 4.3 sports Snow Leopard compatibility and a number of other enhancements and fixes.  You can get it from the Default Folder X release page.

IMPORTANT: There’s a bug in older versions of Default Folder X that can cause crashes while you’re using the hierarchical path menu if you’re running Mac OS 10.6.  Make sure to install this update before you upgrade to Snow Leopard!

And now that we’ve got that dire warning out of the way, there are a couple of geeky little additions in this release that I’m partial to:

  • You can globally set a minimum file dialog size and column width. Use these commands in terminal to set the values:

    defaults write com.stclairsoft.DefaultFolderX minimumSize.width 800

    defaults write com.stclairsoft.DefaultFolderX minimumSize.height 600

    defaults write com.stclairsoft.DefaultFolderX minimumSize.columnWidth 250

    Change the numbers at the end of the commands to the sizes you want to use (in pixels).

  • You can list items in hierarchical menus chronologically rather than alphabetically by holding down the Control key.

Take a look at the release page for details about all of the changes.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

BikeTown Africa Spin-a-thon

Friday, March 27th, 2009


And now for something completely different…

Some of you may already know that I’m an avid mountain biker – I have almost as many bikes as I do Macintoshes (which is a little scary).  Well, the gym I belong to is sponsoring a spin-a-thon to support the BikeTown Africa Project.  On Sunday, we’ll have a gym full of people pedaling like mad on stationary bikes for four hours to raise awareness and money for BikeTown Africa.

What’s BikeTown Africa?

Founded in 2005 by the Kona Bicycle Co., the Bristol Myers-Squibb Secure the Future Foundation, and Bicycling Magazine, the BikeTown Africa Project provides new, well-built, low-maintenance Kona AfricaBikes to home health care workers in sub-Saharan Africa to facilitate the treatment of HIV/AIDS patients.  Just $100 covers the cost of donating one bike, including training its user on maintenance and repair.  Using a bike, a health care worker can visit eight or more patients per day instead of one!

What can you do?

The Weight Club and Virginia Tech University Honors are holding the spin-a-thon on Sunday.  I’m participating and raising money from sponsors because I think this is a very worthwhile cause – it’s putting long-term, practical resources on the ground to help combat a huge health issue.

I’ve set up a page so you can sponsor me for the spin-a-thon here:

http://store.eSellerate.net/stclairsoft/biketown

You can give as little as $5, or as much as you want in $5 increments by buying more than one of the ‘donations’.  I’m personally covering the payment processing cost, so your entire donation will be given to the BikeTown Africa Project.  The spin-a-thon is this Sunday, so please make your donation before noon on Sunday.

Update: Well, the spin-a-thon is over (hence the crossed out donation link) but thanks to readers here and to the dedication of a a lot of folks at the Weight Club and VT University Honors, we raised $7440 for BikeTown Africa!  Thank you!!

- Jon

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]