An error occured in retrieving update information

Asked by Colin Worth

I can't seem to get my first Sparkle updated App to update. I get

"An error occured in retrieving update information"

when I update from the App Menu, and the auto update when the App starts seems to be switched off (or failing to find a valid update so not saying anything?)

Here is my appcast file (currently posted on colinspage.net/MiroVideoConverter/mac/SparkleAppCast.xml but this site is mostly down due to it being my linux/mac/windows box).

SparkleAppCast.xml:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/">
   <channel>
      <title>Miro Video Converter for Mac OS X Changelog</title>
      <link>http://colinspage.com/MiroVideoConverter/mac/SparkleAppCast.xml</link>
      <description>Most recent changes with links to updates.</description>
      <language>en</language>
         <item>
            <title>Version 1.1</title>
     <sparkle:releaseNotesLink>
       http://colinspage.com/MiroVideoConverter/mac/1.1.html
     </sparkle:releaseNotesLink>
            <pubDate>Wed, 12 Mar2010 11:00:00 +0000</pubDate>
            <enclosure url="http://colinspage.com/MiroVideoConverter/mac/Miro Video Converter-1.1.dmg"
         sparkle:version="1.1"
         sparkle:dsaSignature="MCwCFDHg/uf8xO992r8PjzwTav5dukldAhQT6jdOiy7BZUeFoAPxjoB9LuiF+A=="
         length="50049024"
         type="application/octet-stream" />
         </item>
   </channel>
</rss>

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

Here are my sparkle entries in info.plist:

Miro_Video_Converter-Info.plist:
SUPublicDSAKeyFile:dsa_pub.pem
SUFeedURL:http://colinspage.com/MiroVideoConverter/mac/SparkleAppCast.xml

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

The dmg is a compressed dmg containing only the folder Miro\ Video\ Converter.app from my project's build/Release directory. The size of the .app directory is:

worthlaptop:miro cworth$ du -sk build/Release/Miro\ Video\ Converter.app
48876
worthlaptop:miro cworth$ calc 48876*1024
50049024

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

When I run sign_update.rb on the dmg, I get:

worthlaptop:miro cworth$ ruby /Developer/Sparkle\ 1.5b6/Extras/Signing\ Tools/sign_update.rb Miro\ Video\ Converter-1.1.dmg dsa_priv.pem
MCwCFDHg/uf8xO992r8PjzwTav5dukldAhQT6jdOiy7BZUeFoAPxjoB9LuiF+A==

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

Any idea what is going wrong ?

Question information

Language:
English Edit question
Status:
Solved
For:
Sparkle Edit question
Assignee:
No assignee Edit question
Solved by:
Andy Matuschak
Solved:
Last query:
Last reply:
Revision history for this message
Andy Matuschak (andymatuschak) said :
#1

Sparkle should have logged some more information to the console. See anything useful?

Revision history for this message
Colin Worth (jamaicaplain2002) said :
#2

Great, thank you. The problem as reported in Applications/Utilities/Console (I am relatively new to Mac OS X devel) was Bad URL. What happened was the Info.plist SU url string when shown in the xcode viewer looked okay, but when I looked in the xml file it had a lot of trailing whitespaces and \n's.

Updates are working, (v1.0 -> v1.1), however if I ask for another update it says, "New version available 1.1(1.1). You currently have 1.1(1.0)", even though I have already updated to the latest version. I remember something about this in the readme's

Thanks for the help
Colin

Revision history for this message
Colin Worth (jamaicaplain2002) said :
#3

Upon further reflection, I'm still having trouble understanding the version numbers. So the relevant quantities I can find are
in Info.plist
1) Info.plist - Bundle versions string, short = "1.0"
2) Info.plist - Bundle version = "1"

When I first compiled the app, I set the above values in the plist and copied to my Applications directory.

Then, I created a new version, changing Bundle versions string to "1.1" and setting
sparkle:version = "1.1" in the appcast.xml file.

Then I update my App and it asks if I want to update from 1.0 -> 1.1 and I say yes.

Why then when I update again, does it ask if I want to update from 1.1(1.0) to 1.1(1.1) ?

I think I don't want these parenthetical values at all but I am not sure how to "disable" them ?

Thanks again,
Colin

Revision history for this message
Best Andy Matuschak (andymatuschak) said :
#4

Ah, I think this is due to a misunderstanding of the CFBundle strings.

CFBundleVersion is the machine-readable version string (supposed to just be a number); CFBundleShortVersionString is the user-visible version string.

Sparkle uses the former for version comparisons and the latter for display when present. This is the same as what the rest of OS X does.

Sparkle displays "X (Y)" as a version when the two *user-visible* version strings (represented by X) are the same. It adds on Y (the *machine-readable* version string) to clarify.

So long as you're not doing anything weird, you should just store your version numbers in CFBundleVersion, not CFBundleShortVersionString, and all will be well.

Revision history for this message
Colin Worth (jamaicaplain2002) said :
#5

Ah, I see. Thanks for the quick response - I think this should wrap it up.

Revision history for this message
Colin Worth (jamaicaplain2002) said :
#6

Thanks again for the fast responses. Everything is working correctly. In case you are interested, Sparkle is now officially a part of the new miro video converter (@mirovideoconverter.com)

Revision history for this message
Colin Worth (jamaicaplain2002) said :
#7

Thanks Andy Matuschak, that solved my question.