AWSの話題を中心に、日々の業務やプログラミングの徒然を綴るエンジニアブログです。

HANDS LAB

HANDS LAB ENGINEERS BLOG

ハンズラボエンジニアブログ

123

カテゴリー: 日常

iOSアプリの証明書とプロビジョニングプロファイルの有効期限が後何日で切れるかを毎週自動でSlackに通知してみた


ios-cers-and-profiles-bot

はじめまして。三井田(みいだ)です。
4月に新卒としてハンズラボに入社して、早半年がたちました。
大学時代は授業で情報科学などを勉強する傍ら、UnityでモバイルARアプリを開発したり、個人開発のAndroidアプリをGoogle Playに公開したりしていました。
入社後は、新人研修の仮想プロジェクトでひたすらjQueryを書き続ける日々を送った後、現在のチームに配属され、DynamoDBを管理したり、PythonでLambdaを書いたり、PHPとJSで管理画面をより使いやすく改善したりしています。

さて、今回は多くのiOS開発者を悩ませる(?)、iOSアプリの証明書とプロビジョニングプロファイルについてのお話です。

やばい!iOSアプリの証明書の有効期限がっ…!!

1年に1回更新しなければならない、iOSアプリの証明書とプロビジョニングプロファイル。ついつい有効期限を忘れてしまい、期限が切れる直前(もしくは切れた後)に慌てて更新、なんてことはありませんか?
弊社でも先日、とあるiOSアプリの証明書の有効期限が切れる寸前になっていました。
その時は弊社エンジニアが気づき、緊急アップデートを行って難を逃れたのですが、もし気づくのが遅れて、証明書の有効期限が切れてしまっていたら。。。と思うとゾッとします。

そこで、iOSアプリの証明書、プロビジョニングプロファイルの更新忘れを防ぐために、証明書、プロビジョニングプロファイルの有効期限が後何日で切れるかを、毎週自動でSlackに通知するようにしてみました!

こんな感じです

ios-certificates-and-profiles-bot

毎週指定の時刻になると、管理サーバーでシェルスクリプトが自動実行されます(cron)。
スクリプトでは、証明書、プロビジョニングプロファイルの入ったプライベートリポジトリをgit pullした後、リポジトリ内の各.cer、.mobileprovisionファイルについて、後何日で有効期限が切れるのかを計算し、その結果をSlackに通知します。
【**注意!**】証明書、プロビジョニングプロファイルは厳重に管理してください!

スクリプトのソースコードはこちら(GitHub)です。(Linux環境用です。ローカルのMacで実行したい場合は、「$ brew install coreutils」を行った後、「date」コマンドの代わりに「gdate」コマンドを使えば実行できます。)

流れとしては、iOSアプリ証明書の有効期限を取得し、「年/月/日」の形にした後、

後何日で有効期限が切れるのかを計算します。

そしてその結果を、Slackに投稿します。

プロビジョニングプロファイルについても有効期限を取得し、同様の処理を行います。(弊社iOSエンジニア駒場に有効期限の取得方法を教えてもらいました!)

30日以内に有効期限が切れる場合は、アイコンと文言を変えるようにしました。

emergency

【おまけ】有効期限が切れると…

expired
…切れないように気をつけましょう。

まとめ

iOSアプリの証明書とプロビジョニングプロファイルが後何日で切れるのか、Slackに毎週自動で通知されるようになったので、余裕をもって年次更新を行うことができるようになりました!
また、Slackに通知することで、特定の開発者だけが有効期限を把握するのではなく、より多くの人の目で期限をチェックできるのも良いですね!
それでは、今回はこの辺で。

Happy Coding! 😉

参考


ハンズラボ 初の新卒新人研修やってます 講師の視点から編


 臼井です。
最近は、4月に入社した、ハンズラボ初の新卒エンジニアのみなさま4名とキャッキャウフフする毎日です。
そう、ハンズラボも他企業様と同様に、絶賛新人研修中でなのです。

2016-04-21_053836051_00586_iOS_small

 写真は弊社ではなく、本日 One Day Outing にてお邪魔した、 Studio Geeks 様での新人さんの風景です。

2016-04-21_053849598_A143C_iOS_small

Google 関連技術で著名な 株式会社トップゲート様 運営なので、ドロイドくんがいたり、GCP, Android 関連の書籍がいっぱいあります。

 突然ですが、説明のため、ハンズラボ(及び東急ハンズIT部門)における、
新人(新卒入社、もしくは東急ハンズ他部門からのIT部門・ハンズラボへの異動) メンバーの受け入れに関する現状を、以下に示します。

続きを読む ハンズラボ 初の新卒新人研修やってます 講師の視点から編


JAWS-UG 初心者支部#5でハンズオン講師をしてきました


12987024_10153615971978325_6915537679924585289_n

お昼はラーメン!
戦闘員の吉田です。

家系ににんにくは必須だと思っていますが、午後モルボルが出現するのはヨクナイ!!!ので我慢しました。
油×ライスの組み合わせは最高だと思います(Dev活

さて、本題。

2016/04/18のJAWS-UG 初心者支部のハンズオンにハンズオン講師として参加してきましたのでそのおはなし。
13043546_10153615948433325_5165829976891121001_n
写真:あおきさん

続きを読む JAWS-UG 初心者支部#5でハンズオン講師をしてきました


Volunteer Days


I’ve been hearing about the JAWS Days ever since the AWS Summit last year. Just from the talk surrounding the event from the JAWS UG community, it seemed like a huge event with loads of speakers from the IT community. I knew I had to get involved in the experience. Since I’m from the “Volunteer state”, I figured I would lend a hand and get a first-hand look at how things work behind the scenes at JAWS Days.

私は昨年AWSサミット以来JAWS Daysを聞きました。JAWS UGコミュニティだけからイベントを取り囲んでいる話からAWSコミュニティからのスピーカーがいっぱいがいらっしゃったり巨大なイベントだと思われました。私が経験に巻き込まれなければならないことを知ったのです。私が「志願兵の州」から来たので手を貸し、JAWS Daysの裏側でどのように流れるべきかについて分かってきますはず。

Some early birds getting registered. We had a little over 1,000 people attend!
早い者勝ちで登録します。千人以上の方が出席されました!
Slack for iOS Upload(12)

See how the color gradates? It’s part of this year’s sunrise theme!
色のぼかしが見えるでしょうか?今年のサンライズテーマの一部です!
Slack for iOS Upload(13)

Can you find Hands Lab?
ハンズラボを見つけられるかしら?
Slack for iOS Upload(14)

I volunteered with some others to register people and hand out shirts to volunteers and speakers.
皆さんとシャツをボランティアとスピーカー達に渡すボランティアをしました。
Slack for iOS Upload(15)

Even though it was early on a Saturday you could feel the energy in the air.
朝早い土曜日なのに、この空間に大きなエネルギーがあるということを実感することができました。
Slack for iOS Upload(16)

Slack for iOS Upload(17)

After we had most of the attendees signed in, it was time to go get lunch! Everyone else’s that is…
私達が出席者のほとんどを入場させた後に、ランチに行ってきます!出席者のランチという意味ですよ!

Obento team…ASSEMBLE!!!!
Slack for iOS Upload(26)

After handing out the limited, yummy lunches to all the event goers, it was time to break out our secretly saved lunches and chow down!
美味しいお弁当を皆さんに渡し終わったら、隠していた私たちのお弁当を出してがんがん食べました!
I even got some fun giveaways like face masks and chocolate from the booths!
私はスポンサーブースからノベルティのフェイスパックやチョコを頂きました!
Slack for iOS Upload(27)

Later on, I was able to catch Mr. Fukuda’s talk about microservices. It was a great chance to learn about something I’ve been hearing about recently.
その後で、福田慧人さんのmicroservicesについてのセッションに間に合い参加しました。最近あちこちで聞いたり読んだりしていたのでもっと学ぶ良いチャンスでした。
Slack for iOS Upload(28)

Uh oh! I spot Engrish.
あら!タイポを見つけた。
Slack for iOS Upload(29)

My boss (right) was a moderator for several panel discussions.
私のボス(右)はいくつかのパネルディスカッションのためのモデレータでした。
Slack for iOS Upload(30)

How cool is this? It’s the AWS version of a children’s card matching game! The difficulty level is unbelievably hard for a beginner such as myself, but I managed to get 3 cards!
これは凄いと思います。カルタのAWSバージョンです!私のような初心者には困難レベルが信じられないほど難しいけれどもなんと3枚リーチ!
Slack for iOS Upload(33)

Let’s crack open a beer and cheers to a fantastic end of a busy, rewarding day!
皆さん、ビールを開けて、慌ただしく素晴らしい日の終わりには乾杯しましょう!
slack_for_ios_upload

Amazon had their birthday around the time of this event so they brought a tiny cake to celebrate!
このイベントのタイミングに、AWSは誕生日だったので、小さいケーキを持ってお祝いしました!
Slack for iOS Upload(34)

One of my favorite parts of the evening was Mr. Hasegawa’s closing speech. I was only able to capture the very end, but he really knows how to whip the crowd into a frenzy!!
その晩の私のお気に入りは長谷川さんの閉会挨拶でした。終わりくらいをちょっと撮影しましたが彼は参加者の心をつかむ方法をよく知っています!

Volunteering for JAWS Days has allowed me to gain a better perspective on the community as a whole. I even met some new people and reconnected with others, and learned about some up and coming technology. I highly recommend you try attending or volunteering at least once. It’s only one day, but there are so many things going on that you’ll keep busy for the entire 8 hours.
JAWS DAYSでボランティアしたことで、私はコミュニティ全体に関してよりよい視点を得ることができました。私は新しい人に会いましたし、知り合いと再会しましたし、新しい技術について学びました。一度参加する又はボランティアすることをお勧めいたします。一日しかありませんが、いろいろものを行いながらすべての8時間には忙しくさせておきます。


【JAWS DAYS出張&MAコラボ企画】JAWS DAYS 2016アイディアソンに参加しました!


I took the opportunity the other day to attend an event that Jaws Days and the Mashup Awards had collaborated on. The Ideathon is a community focused event where members from all types of occupations get together and consider its future. In order to make JAWS Days more fun, the theme of this event was to create a service we wish we had available.

私は先日、JAWS DAYSとMashup Awardsのコラボイベントに出席しました。

本イベントは様々な職種を問わないメンバーが集い、 コミュニティの未来を考えるアイディアソンイベントです。
3月12日のJAWS DAYSをもっと楽しむために「あったらいいな」といったサービスを自由に発想します。

I love events like this. It’s a great chance to meet people within the community, exchange ideas, and get some experience presenting (which helps with Lightning Talks!). The only other event I’ve been to that remotely resembles this was our company’s Hackathon last year. It was two days of intense teamwork and a whole lot of fun. I figured this couldn’t be much different…

私はこういうイベントが大好きです。
コミュニティメンバーに会えるし、アイデア交換ができるし、発表する経験を得る大チャンスです(LTができる!)。
私がいままで行ったことがあるイベントは、このイベントとはぜんぜん別の、去年私達の会社でやったハッカソンでした。
去年のハッカソンは、強烈なチームワークで2日間とても楽しかったです。
このイベントも会社のハッカソンとはそんなに違わないだろうと思って楽しみに参加しました。
続きを読む 【JAWS DAYS出張&MAコラボ企画】JAWS DAYS 2016アイディアソンに参加しました!


123