Reputation: 412
I'm writing a simple Safari Extension, and I'm trying to figure out how to get the update mechanism working. Apple's documentation here is delightfully vague:
And here's my manifest, based on that documentation:
<?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>net.rickyromero.safari.shutup</string>
<key>Team Identifier</key>
<string>TMM5P68287</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>URL</key>
<string>http://rickyromero.net/misc/SafariExtensions/ShutUp.safariextz</string>
</dict>
</array>
</dict>
</plist>
I don't know where to get "YourCertifcateID," for example. And when I increment the values for CFBundleVersion and CFBundleShortVersionString, it doesn't trigger an update. I know Safari is hitting my manifest though, because I'm watching HTTP traffic.
Upvotes: 9
Views: 4478
Reputation: 243
Just had the same problem, and permissions were the issue for me, too. The .safariextz file downloaded fine via a direct link on my homepage, but I had to set its permissions to a+x on the server before Safari would download it as an automatic update.
Upvotes: 0
Reputation: 14125
I had the same problem, the PLIST file was like the one above and here is how I resolved my problem:
Permissions, which are rest every time you update the file:
chmod 0444 EXTENSIONNAME.safariextz
Upvotes: 1
Reputation: 63
Similar issue. Safari sees the update (I have set updates to manual) but clicking the install button when an update is detected does nothing. If I then check the "Install Updates Automatically" the update process begins and completes but the new version is not installed. I can see the traffic to the webserver so I know a request has been made.
EDIT: Fixed! Permissions were wrong on the web directory where the extension was stored, fixed this and it installed manually and automatically. Everytime I rebuild the extension and save to my web serving folder I have to set the permissions.
2nd Edit: If you want to look at an existing extension, download it or get it from your Safari extensions folder then change the .safariextz to .xar then open/extract with Pacifist to view the code and if you want add it to the Extension Builder app.
Upvotes: 1
Reputation: 189
Team Identifier
should be Developer Identifier
The Developer Identifier is taken from the string at the top of the Extension Builder window, Safari Developer: (DEVELOPER_IDENTIFIER) EMAIL
Upvotes: 6