# -- 在Mac或者PC上为Android应用签名

之前说过，Android和iOS有点不一样（幸运的是简单一些）。iOS在开发和产品阶段都需要证书和配置文件。\
Android呢，只需要你在测试设备上安装一个‘debug’应用而不要上面那个流程。你只需要在将应用发布到Google Play的时候才需要对应用签名。Android需要你创建一个‘keystore’来对应用进行签名。

## 对Android应用签名

对Android应用签名简单一些，我之前也说过，如果你只是测试的话你都不用对他进行前（只有在发布到Google Play的时候才需要签名）。给Android应用签名我们需要创建一个**keystor**文件。\
给应用签名需要一个Android SDK自带的工具叫做**keytool**。如果你的电脑上没有按组航Android SDK的话，请参考这个指引：\
<http://ionicframework.com/docs/v1/ionic-cli-faq/#android-sdk>\
设置好Android SDK之后，可以按照如下步骤创建一个keystore文件。

* 运行如下命令生成一个指定别名**alias\_name**（你应该改一下）的keystore文件

  ```
  keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
  ```

  输入这个命令的时候会提醒你输入密码 -- 输入个密码存好并记住。然后会问你一系列的问题，喜欢的话大部分问题你都可以不回答。最后，会问你要一个keystor密码。 &#x20;

  现在你有一个keystore文件了，可以用来给你的应用签名（我们会讨论他的工作原理）。 &#x20;

  **重点：**&#x4E3A;了后面能在应用商店更新你的应用你需要这个keystore文件，以及别名和密码。如果你忘记了其中一个的话，就更新不了。 &#x20;

## 生成一个Key Hash

如果你使用Facebook功能的话，那么会要求你创建一个Facebook应用，这个在制作CamperChat应用的时候学习过（本书的专家套装里面才有），那么你就需要通过你的keystore文件生成一个Key Hash提供给Facebook for Android。\
做这个的话很简单，只需要运行如下命令就可以了：

```
keytool -exportcert -alias alias_name -keystore my-release-key.keystore | openssl sha1 -binary | openssl base64
```

确保用你的keystore别名替换**alias\_name**和用你的keystore文件路径替换**my-release-key.keystore**。\
一旦完成的话会在终端输出你的Key Hash，然后你就可以简单复制到你的Facebook应用的Android platform setting去。
