• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 132  文章 - 51  trackbacks - 0
            <2012年8月>
            2930311234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            常用鏈接

            留言簿(7)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            cocos2d-x

            OGRE

            OPenGL

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            Signing in Release Mode


            When your application is ready for release to other users, you must:

            1. Obtain a suitable private key
            2. Compile the application in release mode
            3. Sign your application with your private key
            4. Align the final APK package
            發布release版本要有4步
            官方說明: 
             http://developer.android.com/tools/publishing/app-signing.html#releasecompile 


            平時通過Eclipse生成在bin目錄下的apk文件,都是debug版的,如何創建release版的軟件呢? 
            其實還是挺簡單的。 

            1. 通過java自帶的keytool工具,創建release版的keystore 

            keytool -genkey -v -keystore keystore_name.keystore -alias alias_name -keyalg RSA -validity 10000 


            keystore_name.keystore:要創建的release版keystore的文件名 
            alias_name:別名?取個好記點的名字吧,后面還要用到的 (填寫配置文件)
            -keyalg RSA:通過RSA算法生成 
            -validity 10000:有效期,單位是天 

            如果java環境配置正常,輸入命令后會出現下列信息 
            Enter keystore password:(keystore的密碼) 
            Re-enter new password:(確認keystore的密碼) 
            What is your first and last name? 
              [Unknown]:  (姓名,用自己喜歡的名字吧,不知道會顯示在哪里) 
            What is the name of your organizational unit? 
              [Unknown]:  (組織單位) 
            What is the name of your organization? 
              [Unknown]:  (組織,不知道和上面那個有什么區別) 
            What is the name of your City or Locality? 
              [Unknown]:  (城市) 
            What is the name of your State or Province? 
              [Unknown]:  (州,省,縣) 
            What is the two-letter country code for this unit? 
              [Unknown]:  CN 
            Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN correct? 
              [no]:  yes (確認輸入的信息) 

            Generating 1,024 bit RSA key pair and self-signed certificate (SHA1withRSA) with 
            a validity of 10,000 days 
                    for: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 
            Enter key password for <alias_name> 
                    (RETURN if same as keystore password):(alias的密碼,如果和keytore密碼一致,直接回車) 
            Re-enter new password:(確認alias的密碼) 
            [Storing my-release-key.keystore] 


            2.發布Release版本
            Signing in Release Mode


            When your application is ready for release to other users, you must:

            1. Obtain a suitable private key
            2. Compile the application in release mode
            3. Sign your application with your private key
            4. Align the final APK package
            官方的步驟有4步,編譯release版本的應用程序

            2.1 Eclipse導出
            在Eclipse中,右鍵要發布的項目,依次選擇Android Tool -> Export Signed Application Package... 
            然后就是step-by-step了,選擇剛才生成的release版keystore,輸入密碼,選擇alias,輸入alias密碼,生成release版的apk。 

            2.2 采用ANT命令行形式

            $ ant release

            By default, the build script compiles the application APK without signing it. The output file in your project bin/ will be <your_project_name>-unsigned.apk. Because the application APK is still unsigned, you must manually sign it with your private key and then align it using zipalign. 

            默認編譯出來的版本是沒有證書的<your_project_name>-unsigned.apk ,需要手動添加證書和對齊

            To specify your keystore and alias, open the project ant.properties file (found in the root of the project directory) and add entries for key.store and key.alias. For example: 

            我們可以在ant.properties文件中指定證書位置和對齊

            # This file is used to override default values used by the Ant build system.
            #
            # This file must be checked into Version Control Systems, as it is
            # integral to the build system of your project.

            # This file is only used by the Ant script.

            # You can use this to override default values such as
            #  'source.dir' for the location of your java source folder and
            #  'out.dir' for the location of your output folder.

            # You can also use it define how the release builds are signed by declaring
            # the following properties:
            #  'key.store' for the location of your keystore and
            #  'key.alias' for the name of the key to use.
            # The password will be asked during the build when you use the 'release' target.

            #我的證書在上一級目錄下
            #alias是創建證書時填寫的alias_name

            key.store=../keystore_name.keystore 
            key.alias=alias_name

            接下來的步驟很easy了

            Save your changes. Now you can build a signed .apk in release mode:

            1. Open a command-line and navigate to the root of your project directory.
            2. Use Ant to compile your project in release mode:
              ant release
            3. When prompted, enter you keystore and alias passwords.

              Caution: As described above, your password will be visible on the screen.

            This creates your Android application .apk file inside the project bin/ directory, named<your_project_name>-release.apk. This .apk file has been signed with the private key specified inant.properties and aligned with zipalign. It's ready for installation and distribution.

            ant release后會生成一個<your_project_name>-release.apk的版本

            啊,世界清靜了~~~ 

            最后就是安裝了。 
            由于使用了新的簽名,必須先卸載原來安裝的程序才可以安裝。 


            /////////////////////////////////////////////////////////////////////////////////////////////////////////////

            常見問題:
            生成的debug和release有什么區別 大小差不多

            Support for a true debug build. Developers no longer need to add the android:debuggable attribute to the tag in the manifest — the build tools add the attribute automatically. In Eclipse/ADT, all incremental builds are assumed to be debug builds, so the tools insert android:debuggable="true". When exporting a signed release build, the tools do not add the attribute. In Ant, a ant debug command automatically inserts the android:debuggable="true" attribute, while ant release does not. If android:debuggable="true" is manually set, then ant release will actually do a debug build, rather than a release build. 




























            posted on 2012-08-15 10:11 風輕云淡 閱讀(2296) 評論(0)  編輯 收藏 引用 所屬分類: cocos2d
            97精品国产97久久久久久免费| 亚洲成av人片不卡无码久久| 久久国产色av免费看| 亚洲国产另类久久久精品小说| 久久久久99精品成人片直播| 精品久久一区二区三区| 国产99久久久国产精品~~牛| 日韩精品无码久久一区二区三| 精品久久人人爽天天玩人人妻| 精品永久久福利一区二区| 中文字幕成人精品久久不卡| 久久强奷乱码老熟女网站| 伊人久久无码中文字幕| 国产毛片久久久久久国产毛片| 久久中文字幕精品| 97久久综合精品久久久综合| 午夜精品久久久久久久无码| 久久天天躁狠狠躁夜夜躁2O2O| 久久久久免费视频| 久久久久国产精品| 久久久久久久久久久精品尤物| 99国内精品久久久久久久| 亚洲va久久久噜噜噜久久| 无码人妻久久一区二区三区蜜桃| 久久99精品久久久久子伦| 久久久精品人妻一区二区三区蜜桃 | 久久久久久亚洲AV无码专区| 99久久国产综合精品五月天喷水 | 亚洲中文精品久久久久久不卡| 欧美日韩中文字幕久久伊人| 亚洲综合熟女久久久30p| 久久综合伊人77777| 久久精品国产WWW456C0M| 国产麻豆精品久久一二三| 色欲综合久久躁天天躁蜜桃| 中文字幕久久亚洲一区| 日本精品久久久久影院日本| 精品久久久久成人码免费动漫| 精品人妻伦九区久久AAA片69| 99精品久久久久久久婷婷| 国产成人综合久久久久久|