Question

I'm trying uploading my Safari Extension to Gallery. Every time I did it, I get error message after a few days of waiting:

During our review, we found that you still have not enabled automatic updating for your extension.

Cool! But I did it, exactly according the docs. When I submitted ext, I mentioned this URL: http://up.thefreedictionary.com/Info.plist as my Update Manifest. Here is content:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">
<dict>
<key>Extension Updates</key>
<array>
<dict>
<key>CFBundleIdentifier</key>
<string>dictionary</string>
<key>Developer Identifier</key>
<string>SZ9T8BXLWC</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>URL</key>
<string>
http://up.thefreedictionary.com/TheFreeDictionary.safariextz
</string>
</dict>
</array>
</dict>
</plist>

No idea, what may be wrong here. And why I can't publish it, ever without automatic updates?

P.S. CFBuldleIdentifier is "dictionary". It corresponding my app bundle id. Is it problem?

Was it helpful?

Solution

I found it!

The problem was that I didn't mentioned URL to update.plist in my info.plist (which is part of extension). I simple didn't know, that I have to. I mentioned this URL in submission form and expected that this is enough.

I checked the docs, and it literally says "include the URL of the file in the Update Manifest field of Extension Builder". If only it says instead: "add URL of the file to your info.plist, which is part of your extension" I would definitely did it. But, as soon as I personally didn't develop extension (I give this work to another programmer in my team), I confused "Extension Builder" with submission form.

OTHER TIPS

The documentation page says:

  • Create a text file with the .plist file extension and put it on a web server
  • Include the URL of the file in the Update Manifest field of Extension Builder

I assume you did the second step.

As for the CFBundleIdentifier, it should follow the reverse DNS format, as described here:

The bundle ID string must be a uniform type identifier (UTI) that contains only alphanumeric (A-Z,a-z,0-9), hyphen (-), and period (.) characters. The string should also be in reverse-DNS format. For example, if your company’s domain is Ajax.com and you create an app named Hello, you could assign the string com.Ajax.Hello as your app’s bundle identifier.

The examples in the documentation use com.yourCompany.safari.firstExtensionName as identifier. I don't think "safari" must appear in the identifier, though.

There are a couple of problems with your Update.plist. Here's one of mine for reference.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Extension Updates</key>
    <array>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.canisbos.ccnotepad</string>
            <key>Developer Identifier</key>
            <string>ZANVZTSER6</string>
            <key>CFBundleVersion</key>
            <string>104</string>
            <key>CFBundleShortVersionString</key>
            <string>1.0.4</string>
            <key>URL</key>
            <string>http://dl.dropbox.com/u/23990/Canisbos/ccNotepad.safariextz</string>
        </dict>
    </array>
</dict>
</plist>

You seem to be missing the XML and DOCTYPE declarations at the top, but more importantly the string paired with the CFBundleIdentifier key is incorrect. It needs to be the same as the one in your Info.plist, and it probably can't be "dictionary".

EDIT: I just noticed that you seem to have named the file Info.plist, when it should be Update.plist -- though I'm not sure if this is required.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top