轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/78265540 本文出自 "【趙彥軍的博客】" 在前面我介紹了插件開發的基本流程 "【Android Studio 插件開發詳解一:入門練手】" "【Android Studio 插件 ...
轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/78265540
本文出自【趙彥軍的博客】
在前面我介紹了插件開發的基本流程
【Android Studio 插件開發詳解三:翻譯插件實戰】
在經歷的前面的3篇文章,我相信大家都可以掌握Android 插件工具的開發了,開發完插件以後,我們需要將插件上傳至插件市場,然後別人就可以通過插件市場安裝我們的插件了。在我做插件上傳至市場的過程中,遇到了很多坑,今天就來梳理一下,把遇到的坑都填平。
插件打包
比較簡單,直接在頂部主菜單欄中選擇 Build | Prepare Plugin Module XXX For Deployment 即可。
將打好的 xxx.jar 包上傳至市場 https://plugins.jetbrains.com/ , 上傳的具體細節比較簡單,這裡省略。上傳成功後,需要2個工作日來審核,2天內就能收到 jetbrains 官方發來的郵件,告訴你審核結果。
在插件的開發項目中,有一個很重要的文件 plugin.xml
這個文件很重要,裡面有很多細節需要註意,一不小心,就可能上傳不成功,或者審核不通過。
坑一 (id不能重覆)
plugin.xml 裡面有個id 是這個插件的唯一標識,其相當於Android裡面的包名,唯一存在,不能重覆。如果跟市場上的插件有重覆,上傳的時候將會報錯,如下圖所示:
坑二(插件描述信息要完整)
不就後我就收到一封郵件,如下:
意思就是審核不通過,原因是在 plugin描述中添加英文描述,並且移除標準的預設文字。那麼 plugin 的描述在哪裡設置呢,其實也很簡單,就是 plugin.xml 文件。
那麼為什麼會審核不通過呢,我原來的是這樣寫的
<id>com.zhaoyanjun.AndroidTranslate</id>
<name>AndroidTranslate</name>
<version>1.0.0</version>
<vendor email="362299465.com" url="http://blog.csdn.net/zhaoyanjun6.com">趙彥軍博客</vendor>
<description><![CDATA[
Android資源中英文翻譯<br>
Android資源英文非同步翻譯<br>
<em>most HTML tags may be used</em>
]]></description>
<change-notes><![CDATA[
Android 資源翻譯 .<br>
<em>most HTML tags may be used</em>
]]>
</change-notes>
這裡需要註意兩個問題
1、description 標簽裡面不能只寫中文,也要寫英文。為了簡單,我們直接寫英文好了,中文就不寫了。
2、description 、change-notes 標簽裡面不能有 <em>most HTML tags may be used</em>
這樣的預設文字,應該把預設文字刪掉。
3、description 標簽是這個插件的功能描述。change-notes 標簽是這個插件的版本更新的一個日誌記錄,我的寫的不規範。
經過修改,我改成這樣
<description><![CDATA[
resource translation for Android Studio
<li>1. Choose the word you want translate.</li>
<li>2. Press Command + Q.</li>
]]></description>
<change-notes><![CDATA[
<li>1.2 : New: fix some bugs.</li>
<li>1.1 : Fixed: Long click bug.</li>
<li>1.0 : init </li>
]]>
</change-notes>
坑三(插件支持的產品要說明)
經過前面兩個坑,我的插件終於審核通過了,可以在 Android Studio 市場沒有搜到。只能在 IntelliJ IDEA 產品中搜到。
還記得plugin.xml中註釋的那段代碼麽:
<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
on how to target different products -->
<!-- uncomment to enable plugin in all products
<depends>com.intellij.modules.lang</depends>
-->
這是指定你的插件發佈到jetbrains plugins倉庫的產品類型,jetbrains公司有很多種產品,並且都支持插件開發,如Intellij Idea, PyCharm,WebStorm, Android Studio等等,如果你上面那段代碼註釋了,那麼你在上面網站上傳的時候會預設上傳到Intellij Idea的產品倉庫,到時候只能在 Intellij Idea 的倉庫中搜到你的插件,Android Studio 是沒有的。如果你想在 Android Studio 的插件市場搜到你的插件,你需要將上面的註釋去掉。
修改完後,我的 plugin.xml 中是這樣的
<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
on how to target different products -->
<!-- uncomment to enable plugin in all products-->
<depends>com.intellij.modules.lang</depends>
總結
在發佈的時候,大概會遇到上面3個坑,把這些坑填平後,再次打包插件,更新到市場上。你可以看到這個插件支持的產品列表,如下圖
可以看到我們發佈的插件已經支持 Android Studio 了。
本系列文章的源碼都上傳至 : https://github.com/zyj1609wz/AndroidPluginTranslate
個人微信號:zhaoyanjun125 , 歡迎關註