百戦錬磨 Techブログ

公認民泊プラットフォーム「STAY JAPAN」を提供する株式会社百戦錬磨のTechブログ

fastlane matchを使ったiOS証明書、Provisioning Profileの導入管理

こんにちは。麦芽系などと言いつつ最近ずっと禁酒しておりましたノンアルコール麦芽系エンジニアasmz(id:asmz0)です。

というのも、私事で恐縮ですがこないだ我が家に無事第2子が生まれました!一週間ほど育休を取らせていただき、しっかり子供と戯れさせてもらったので、今週から心機一転お仕事頑張りまっす。

お祝いはてブお待ちしております。

iOSアプリ開発に必要な証明書とProvisioning Profile

さて、iOSアプリ開発の鬼門とも言われるCode Signing&Provisioning。最近はXcodeが改修されてきて、多くの処理が自動で行ってくれるようにはなってきたので、個人開発ではさほど大きな問題が発生しにくくなってきたようですが、証明書・秘密鍵の管理が個人のMacに依存したり、そもそも先述したXcodeの自動処理によって他の開発者に予期せぬ影響を与えたりと、相変わらず組織開発ではやりづらさがあります。

というわけで今回のエントリでは、この開発に必要な証明書やProvisioning Profileを一元管理し、複数の開発者でシェアできるようにするツールをご紹介します!

続きを読む

弊社の開発プロセスの紹介(1) Redmineで使っているプラグイン編

最近AnovaをAmazon.comから輸入して肉充を楽しんでいるかずぴょん(id:kazupyong)です。

麦芽系エンジニアに2連続で記事を取られてしまったので iOSの話ではなく弊社での開発プロセスの話をしようと思います。

続きを読む

AppliveryのDistribution sitesで開発中のiOS/Androidアプリをお手軽にテスター配布

こんにちは。こないだ弊社仙台オフィスで行われた利きビール大会で見事ビール銘柄を当て、名実ともに麦芽系エンジニアとなったasmz(id:asmz0)です。

アプリ開発でこんなことありませんか?

iOS/Androidアプリの開発をしていて、こういうことってありませんか?ありますよね?今は無くても今後はあるかもしれませんよね?

  • ちょっとしたお試しアプリを作ってみたので、身内の人に使ってもらいたい
  • 外注先からの納品アプリを社内のテスターに配布したい
  • ↑の逆で、現在受託開発をしていて、納品先に開発中のアプリをちょっと使ってもらいたい

ちなみに弊社のアプリ開発では先のエントリで書いた通り、基本的にテスター配布は「Crashlytics Beta」を利用しています。

tech.hyakuren.org

なので、「じゃあ、それで開発中のアプリも配布できんじゃん(、何言ってんのこの呑んだくれが!)」と言われそうですが、まぁちょっと落ち着いてください。。。

Crashlyticsでテスター配布するためには、CrashlyticsのSDKをアプリに導入する必要があります。 でも例えば、「ちょっとしたお試しアプリ」だと、まだSDKを組み込む必要があるレベルでなかったり、「外注先からの納品アプリ」とかだと、成果物としてipaファイルで納品されたりしてそもそもSDKを組み込む余地すらない場合もあります。

で、Androidアプリなんかは基本的にapkファイルをメールなり何なりで送れば、受け取った側がそのままインストールできるのでほとんど問題にならないのですが、iOSアプリだとそうはいきません。

  • iOS Dev CenterへのUDID登録は必須
  • ipaファイルをそのまま開いてインストールできず、iTunesからUSB経由で実機インストール
  • Webからダウンロードさせたいなら、規定のplistとそれを参照するhtmlを置いた自前のWebページを用意し、配布したい人に見えるような場所に公開

複数名分の端末を借りてちまちまUSBインストールとかやってられませんし、Web公開もやや手間ですよねー。

そんな時、お手軽に開発中アプリを複数名に配布する方法を今回ご紹介いたします。

続きを読む

試行錯誤してたどり着いた現在のiOSアプリ自動デプロイ環境(Bitrise、fastlane、Crashlytics、たまにbuddybuild)

みなさまはじめまして。仙台在住。ビールを愛し、ビールに愛された男。麦芽系エンジニアのasmz(id:asmz0)と申します。

弊社は公認民泊プラットフォーム「STAY JAPAN」というWebサービスの開発・運用をメイン事業としておりますが、私はそのサービスのスマートフォンアプリ開発を担当しております。

仙台iOS開発者勉強会へ参加

実は私、東北出身ということもあり、新卒から十数年ほど過ごした首都圏を離れて仙台にJターンしてきたわけですが、仙台に引っ越してきたのは2016年8月なので、まだ仙台で住んで1年にも満たないのですよ。

で、社内もWeb系メインだし、まだ仙台に知り合いの社外エンジニアも多くなく、iOSアプリの開発話や苦労話などする相手がいないなぁと思っていたこともあって、先日「SWWDC - 仙台iOS開発者勉強会#30」に参加してきました!

いざ参加してみると、仙台の敏腕エンジニアの方々が揃っており発表のレベルも高く、(懇親会も飲みすぎて二日酔いになるほど)とても楽しかったです!

atnd.org

今回のエントリはその勉強会で発表した内容の紹介となります。

続きを読む

百戦錬磨 Techブログ始めました。

はじめに

はじめまして、 株式会社百戦錬磨のシステム開発部で部長をしているさごう(id:kazupyong)です。 名刺交換の度にインパクトの強い会社名だとよく言われます。

※ 百戦錬磨という社名の由来に関しては公式ページを見て頂ければと思います。

www.hyakuren.org

弊社の提供してるサービス

弊社では、子会社の"とまれる株式会社"を通して、 “STAY JAPAN"という日本初の民泊サイトを運営しております。

民泊と言っても日本文化や四季が感じられる古民家から、 観光やビジネスに便利な都会にある民泊など、 これまでにないオルタナティブロッジングで 宿泊体験で新しい日本の発見を手助けするプラットフォームです。

stayjapan.com

サービスで利用している技術

WEBアプリケーション

弊社内で動かしているサービスではRuby On Rails+Nginx+Puma を採用していて、 技術的負債を残さないようになるべくライブラリのバージョンとかは上げるように定期的に棚卸しをしています。

ただ今現在Railsは4.2.8を使ってるのですが5系にいつアップするのか、ちょいっと悩ましいです。

インフラサーバ

基本的には全てAWSで構成しています。 ELB、EC2、S3、RDSというごくごく一般的な構成です。

バージョン管理

GitlabをEC2上にインストールして、 エンジニアが自由にレポジトリ作れるようにしています。 社内ツールやアイデアベースのものも好きにレポジトリとグループを作れます。

デプロイとCI

JenkinsをEC2上にインストールして、 Gitlabからマージリクエストをマージ時に自動的に、 RSpecのテストを走らせてStatusがOKだった場合にBeta環境へとデプロイしています。

エラー通知

アプリケーションエラー類はErrbit経由でSlackに通知 サーバーの死活監視などはCloudWatchでAWSのインスタンス状況を確認して、 サーバー内部はMuninとMakarelを使ってSlack+メールで異常時に通知してます。

ログの解析など

ログ自体はFluentd使って一箇所に集積してRedashで解析とか。

実はまだまだ、やらなきゃいけないこと、チャレンジしてみたいことはたくさんあるけど、 人手が足りなくて全然できてないのが目下の課題です。

ざっくりと書きましたが技術の詳細に関しては、専任のエンジニアが書いてくれるかと思います!

Techブログの今後について

百戦錬磨のTechブログについて書かせていただきました。

このブログでは"STAY JAPAN"内で使っているWeb系の技術情報や 今現在リリースされているiOS(今後リリース予定のAndroid)アプリやAWSを用いたインフラなどの技術情報を、これから、月に数回程度のペースで いろいろな記事を公開していきますのでよろしくお願い致します。

最後に記事の著者について

自分自身は旅するエンジニアとして、 年に国内外合わせて50回以上のフライトと100回以上新幹線に乗っています。 自転車が大好きで日本各地に輪行して週末に100キロ超のロングライドを楽しんでいます。

大学在学中に起業して、その後世界と日本をバックパックで放浪したり、 前職では青森に住んでみたり、フィリピンに駐在してたりと フットワーク軽く常に全力で楽しんでいます。

エンジニアとしては元々PHPやってたり、Rails歴は8年位で、 どっちかというとインフラや仕組み化のほうが好きだったり。

ただ最近はマネジメントが忙しいのでガッツリとコード書くことより、 エンジニアが働きやすい環境を作ったり、採用や評価制度を整えたり、 スプレッドシートでGASとRedashを組み合わせて便利なツールを作ったり、 オフィス内でパーティーするときにシェフをやって黙々と30人分くらいの料理を作ってみたり、 趣味で自宅にDIYで収納作ったり、RaspberryPI使って家庭内をIoT化してものづくりを楽しんでます。

ではでは今後とも百戦錬磨 Techブログをよろしくお願いします!