Expoで初めてのiOSアプリをデプロイするフロー

前提

  • expo-cliがinstallされている
  • Xcodeをinstallされてる
  • Expoがやってくれる箇所は極力Expoに任せる

という前提です。

リリースの流れ

1. App IDを作成
2. AppStoreConnect上でアプリを作成
3. Expo Cliを使ってビルド(ipaファイルを生成)
4. Application Loaderを使ってデプロイ

1. App IDを作成

Sign In - Apple へ飛びます。画像のようにApp IDを新規作成します。f:id:yooska14:20181204163459p:plain

  • App ID Description(IDの説明)
  • Explicit App ID
  • App Services を入力します。Explicit App IDはつまりBundle IDです。(Xcodeで設定するやつ・アプリ固有のID) 基本的にはリバースドメイン(アプリ名を逆にしたやつ)が推奨されています。 例: news.oned.jp => jp.oned.news

App Servicesに関しては、使用している機能だけにcheckが基本です。checkしていない機能を使っていたら審査時にリジェクトされることは当たり前ですが、逆に使ってない機能にcheck入れすぎてると怒られるらしいです。(経験なし) が、実際、PushNotificationsとか「後々使うよなー」って機能は入れちゃってます。怒られた試しはありません。「とりあえず全部チェック入れとく」とか適当なことせずにいくつかだけチェック入れるなら良いんだと思います。

以上3つを全て入力し、Continue => Submitすればdoneです。

2. AppStoreConnect上でアプリを作成

https://appstoreconnect.apple.com/ へアクセスし、「新規 App」を作成します。 f:id:yooska14:20181204165813p:plain

  • プラットフォーム(大体iOSでしょう)
  • 名前(アプリ名)
  • プライマリ言語(大体日本語でしょう)
  • バンドルID(「1. App IDを作成」を経ていたら選択肢として出るはずです)
  • SKU(Appleが内部で使うIDらしい。僕はbundleIDと一緒にしています。なんでも良さそう)
  • ユーザアクセス(「なし」で良いでしょう)

を入力します。 これで、ApplicationLoader上でアプリを選択できるようになります。(AppliactionLoaderでの作業は4で。)

3. Expo Cliを使ってビルド(ipaファイルを生成)

expo build:ios を実行する。 すると、CLIが対話形式でビルドの設定を導いてくれます。 ↓こんな感じ。 f:id:yooska14:20190411071918p:plain

今回は前提にある通り 極力Expoに任す ようにしているため、Expoに任せるか?の質問に対して全てLet Expo handle the processと答えています。 これでしばらく待つと↓のようにURLが吐き出されます。 f:id:yooska14:20190411072315p:plain 吐き出されたURLをブラウザにコピペすると、ipaファイルがダウンロードできるので、保存します。(これをApplicationLoaderを使ってアップロードします。)

  1. Application Loaderを使ってデプロイ xcodeを開き、MenuバーからApplicationLoaderを開きます。(↓参照) f:id:yooska14:20190411072516p:plain ※ローンチャーアプリを入れてる場合はローンチャー経由で開いても良いでしょう。 以下のような画面が開くので、「選択」し、先ほどdownloadしたipaファイルを選択します。 f:id:yooska14:20190411072654p:plain

これで、2でAppStoreConnect上で作成したアプリに紐づいてアプリの実態がアップロードされました。🎉

参考にした・関連記事

kang.hateblo.jp i-app-tec.com qiita.com

Bitnami製のWordpressをSSL化した

前置き

なんだかんだ公式ドキュメントに全て書いてます。 一部わかりにくかったので自分用と引き継ぎ用のメモって位置付けです。

docs.bitnami.com

流れ

※前提として、念の為DBのバックアップは取っておきました。

  1. Goをinstall(しなくて良かった)
  2. Legoをinstall
  3. Legoを使って証明書設定
  4. Really Simple SSLWordpressプラグイン)をインストール
  5. Really Simple SSLを有効化

1. Goをinstall(しなくて良かった)

  • Goコマンドをダウンロード curl -L -O https://dl.google.com/go/go1.12.1.linux-amd64.tar.gz

  • 解凍 tar -C /usr/local/ -xf go1.12.1.linux-amd64.tar.gz

  • パスを通す echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bash_profile echo 'export GOPATH=$HOME/go' >> ~/.bash_profile

  • パスが通ったか確認 which go ※パスが帰ってきたらOK

Legoをinstall

  • 【本来やりたかったけどできなかった】Goコマンドを使ってLegoをインストール go get -u github.com/go-acme/lego/cmd/lego

  • Legoをインストール wget https://github.com/go-acme/lego/releases/download/v2.3.0/lego_v2.3.0_linux_amd64.tar.gz

  • 解凍 tar -zxvf lego_v2.3.0_linux_amd64.tar.gzCHANGELOG.mdとかLICENCE.mdとか不要なファイルも出来ちゃうけどrmで消せば良い

  • パスが通ってる場所にlegoコマンドを移動 mv lego /usr/local/bin/lego

  • Legoが使えるか(installされていてパスが通ってるか)を確認 which lego ※パスが帰ってきたらOK

Legoを使って証明書設定

  • Bitnamiのサービスをストップする sudo /opt/bitnami/ctlscript.sh stop

  • 証明書を要求する sudo lego --tls --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="www.DOMAIN" --path="/etc/lego" run ※EMAIL-ADDRESSは自分のメアドに置き換え ※DOMAINも自分のドメインに置き換え

  • 生成された証明書を使う設定

sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
sudo mv /opt/bitnami/apache2/conf/server.csr /opt/bitnami/apache2/conf/server.csr.old
sudo ln -s /etc/lego/certificates/DOMAIN.key /opt/bitnami/apache2/conf/server.key
sudo ln -s /etc/lego/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/server.crt
sudo chown root:root /opt/bitnami/apache2/conf/server*
sudo chmod 600 /opt/bitnami/apache2/conf/server*

※上記全コマンドはドキュメントにあります ※上記はApacheの場合です。Nginxの場合はドキュメントへ ※ドキュメント: https://docs.bitnami.com/bch/how-to/generate-install-lets-encrypt-ssl/

  • Bitnamiのサービスをリスタート sudo /opt/bitnami/ctlscript.sh start

  • Really Simple SSLWordpressプラグイン)をインストール

  • Really Simple SSLを有効化 wordpressGUI上でイントロダクションに沿ってやれば良しなので割愛。

終わりに

以上でSSL対応が完了します。 自分は1.5時間くらいかかりました。流れが分かったので次は10~15分くらいで出来そう。

Let's Encryptの証明書は90日で期限が切れるそうなので、ドキュメント(https://docs.bitnami.com/bch/how-to/generate-install-lets-encrypt-ssl/)のRenew The Let’s Encrypt Certificateセクションを見て随時更新 or 自動更新の設定をするべし。

参考

WordPressサイトアドレスをhttpsに変更する(Really Simple SSL) | 楓プログラミングスタジオ ITインフラ部

docs.bitnami.com

ReactNativeDebuggerをExpoで使う

なに

Expoは利用するポートが通常のReactNativeでの起動と違うので、ポートを指定する必要がある。 open "rndebugger://set-debugger-loc?host=localhost&port=19001"

参考

www.gravitywell.co.uk

"git log"などで日本語が文字化けしたので対処した

OS

Ubuntsu

How

~/.bashrc に以下を追加する

export LESSCHARSET=utf-8

以下を実行(または再ログインすると.bashrcを再読み込みしてくれる)

source ~/.bashrc