更新Safari扩展?

9
我正在编写一个简单的Safari扩展程序,并试图弄清楚如何使更新机制工作。苹果的文档在这里非常模糊:https://developer.apple.com/library/archive/documentation/Tools/Conceptual/SafariExtensionGuide/UpdatingExtensions/UpdatingExtensions.html。以下是我根据该文档创建的清单:
<?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>

我不知道如何获得"YourCertifcateID",例如。当我增加CFBundleVersion和CFBundleShortVersionString的值时,它不会触发更新。但我知道Safari正在访问我的清单文件,因为我正在监视HTTP流量。

4个回答

6

团队标识符 应该改为 开发者标识符

开发者标识符取自扩展程序构建器窗口顶部的字符串,Safari Developer: (DEVELOPER_IDENTIFIER) EMAIL


刚刚尝试更改了那个,但不幸的是它没有起作用... 当我增加版本号时,它仍然没有提示更新。 - Ricky Romero
这是我的清单,看起来应该可以工作。http://matsadler.github.com/deanimator/updates.plist开发人员标识符取自Extension Builder窗口顶部的字符串,“Safari Developer: (DEVELOPER_IDENTIFIER) EMAIL”我尝试的另一件事是使用Property List Editor.app打开文件以检查它是否为有效的.plist文件,尽管这对您似乎不是问题。 - matsadler
好的,谢谢你的帮助。我仔细检查了一下,我的标识符不匹配...现在应该可以正常工作了。 :-) - Ricky Romero
我提交了一个文档错误报告... - Wevah
你好,你会在哪里提到这个*.plist文件(用于更新Safari扩展的aml文件)的URL?我们是在info.plist文件中提到吗? - Muthu

1

类似的问题。Safari看到了更新(我已将更新设置为手动),但是当检测到更新时,单击安装按钮没有任何反应。如果我然后勾选“自动安装更新”,更新过程开始并完成,但新版本未安装。我可以看到对Web服务器的流量,所以我知道已经发出了请求。

编辑: 修复了!扩展存储的Web目录权限不正确,修复后可以手动和自动安装。每次重新构建扩展并保存到我的Web服务文件夹中时,都必须设置权限。

第二次编辑: 如果您想查看现有的扩展程序,请下载它或从Safari扩展程序文件夹中获取它,然后将.safariextz更改为.xar,然后使用Pacifist打开/提取以查看代码,如果您想要将其添加到Extension Builder应用程序中。


1

我曾经遇到过同样的问题,PLIST文件与上面的文件类似,以下是我如何解决这个问题的方法:

  • 开发者标识符不正确(5而不是Z)。傻瓜!
  • 权限,在每次更新文件时都会重置:

    chmod 0444 EXTENSIONNAME.safariextz


0

我刚遇到了同样的问题,权限也是我的问题所在。.safariextz文件通过我的主页上的直接链接成功下载,但在Safari自动更新之前,我必须在服务器上将其权限设置为a+x。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接