2012-11-06 91 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」必須出現在標識符中。