2012-11-06 54 views
0

我正尝试将我的Safari扩展上传到图库。每次我做到了,我收到错误消息后等待几天:Safari扩展的自动更新阻止了Safari Gallery中的发布扩展

在审查过程中,我们发现您还没有启用自动更新 您的扩展。

酷!但我做到了,完全按照docs。当我提交分机时,我提到了这个URL:http://up.thefreedictionary.com/Info.plist作为我的更新清单。这里是内容:

<?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> 

不知道,这里可能是错的。为什么我无法发布它,甚至没有自动更新?

P.S. CFBuldleIdentifier是“字典”。它对应我的应用程序包ID。 这是问题吗?

回答

1

我发现它!

问题是我没有在我的info.plist中提到update.plist的URL(这是扩展的一部分)。我简单不知道,我必须。我以提交的形式提到了这个URL,并预计这足够了。

我查了文档,它字面意思是“包括扩展生成器的更新清单字段中输入文件的URL”。如果只是它说:“将文件的URL添加到您的info.plist,这是您的扩展的一部分”我肯定会做到这一点。但是,只要我个人没有发展的扩展名(我把这个工作另一个程序员在我的球队),我糊涂“扩展生成器”以提交表单。

+0

我将我的扩展程序上传到safari商店。现在更新我的扩展程序什么所有程序我应遵循?我必须创建任何更新清单文件吗?我应该在“Extension Builder”的更新清单字段中提到什么? – Muthu

+0

应该是什么这一领域,在这里我们不得不提到update.plist网址的关键,因为info.plist中已位于有我们写extz的URL命名的关键URL。 – user5821368

0

Update.plist有几个问题。这是我的一个参考。

<?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> 

你似乎在顶部失踪的XML和DOCTYPE声明,但更重要的是与CFBundleIdentifier键配对的字符串是不正确。它需要与Info.plist中的一样,并且可能不能是“字典”。

编辑:我只是注意到,你似乎已经命名文件Info.plist,当它应该是Update.plist - 虽然我不知道这是否是必需的。

+0

如果你检查我的.plist(http://up.thefreedictionary.com/Info.plist)的链接,你会看到的地方XML和DOCTYPE。我只是没有将它复制到这个问题的源代码中。 CFBundleIdentifier键对应于Info.plist中的值。如果你知道它不能成为“字典”的原因让我知道。我真的很喜欢它只是“字典”。此外,当我将表单提交给Safari图库时,此包名称通过了验证。苹果帮助中没有提到名称“Update.plist” - 你从哪里得到它的?还有其他建议吗? –

+0

另一个潜在的问题是''''' CFBundleVersion '''实际上应该是'1.0.0',这样当你增加到'1.0.1'时它会检测到自动更新。我们发现这很难。当我们尝试'2'时,它不起作用。只有当我们从像1.2.6这样的3位数字转到1.2.8时,它才能工作。与往常一样,你可以彻底之前通过只是不同版本号的建造和检查'的Safari>首选项>扩展> Updates'页启动您的应用测试自动更新。 –

+0

下面是字段定义的引用(未从样品中的plist页!!联的):https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html –

1

文档页说:

  • 创建具有的.plist文件扩展名的文本文件,并把它在Web服务器上
  • 包括在扩展生成器
  • 的更新清单字段中输入文件的URL

我假设你做了第二步。

至于CFBundleIdentifier,它应该遵循反向DNS格式,如所描述here

束ID字符串必须只包含字母数字(AZ,AZ,0均匀类型标识符(UTI) -9),连字符( - )和句点(。)字符。该字符串也应该是反向DNS格式。例如,如果您公司的域名是Ajax.com,并且您创建了一个名为Hello的应用程序,则可以将字符串com.Ajax.Hello指定为您应用程序的捆绑包标识符。

文档中的示例使用com.yourCompany.safari.firstExtensionName作为标识符。不过,我不认为“safari”必须出现在标识符中。