Xcode Cloudでビルドの前後に処理を行う

今更だが、Xcode Cloudが便利だ。Apple純正のCI/CD環境ということもあって、設定で複雑なことをする必要がなく、やれることも限られている分わかりやすい。

大抵のアプリのビルドでは、Xcode Cloudの標準の機能だけで問題なくApp Storeへの申請/TestFlightでの配布ができているのだが、稀にビルドの前後に何らかの処理を行いたいケースがある。

https://developer.apple.com/documentation/xcode/writing-custom-build-scripts

Xcode Cloudには、Custom Build Scriptという仕組みが用意されており、このルールに従ってスクリプトを用意すると、下記のタイミングで任意の処理を実行できる。

  • レポジトリからのCloneが終わった直後(ci_post_clone.sh)
  • xcodebuildが実行される直前(ci_pre_xcodebuild.sh)
  • xcodebuildが終わった直後(ci_post_xcodebuild.sh) ※失敗時も呼ばれる

ビルド番号(CI_BUILD_NUMBER)や何をトリガーにワークフローが開始されたのか(CI_START_CONDITION)などの情報を環境変数として参照できるようになっている。

https://developer.apple.com/documentation/xcode/environment-variable-reference

デバッグ用の情報(COMMIT HASHなど)をアプリ内で参照できるようにする、など色々使える場面があって、覚えておくと何かと便利。

ARKitでカメラからの映像にCIFilterでエフェクトをかける

こちらのポストQiitaの投稿を参考に、カメラからの映像にCIFilterを使ってエフェクトをかけようとしたのだが、手元のiPhone Xで試してみたところ映像に歪みが発生してしまった。公式ドキュメントetc.から正しい対処法を見つけられなかったのだが、普通にアスペクト比を揃えて中央でクロップすれば良さそうだったので、やり方を記しておく。

“ARKitでカメラからの映像にCIFilterでエフェクトをかける” の続きを読む

iPad Pro(2018) 2ヶ月使ってみての所感

四年ぶりにiPadを新調した。個人的に、毎年少しずつノートPCの代わりにタブレットを持ち歩く生活に移行したいと目標を定めているので、なるべく積極的に2ヶ月使ってみた上での所感です。

“iPad Pro(2018) 2ヶ月使ってみての所感” の続きを読む

カスタムビューを作ったらIBDesignableにする

カスタムビューを作ったら、InterfaceBuilder対応(IBDesignable)にしたほうがいい。IBDesignableにすると、InterfaceBuilder上でカスタムビューの見た目を確認できたり、プロパティを設定できるようになり、Storyboard/Xibを使ったレイアウトの効率がとてもよくなる。 “カスタムビューを作ったらIBDesignableにする” の続きを読む

iOS 7対応を切るとサポート外になる端末、使えるようになる主な機能

数カ月以内にiOS 9が登場するのではないかと噂されている。アプリを開発・運用していく上で、どの世代のOS/端末までサポートするべきかというのは悩ましい問題だが、判断材料の一つとして、iOS 9リリース後、2世代前のiOS 7のサポートを切った場合(つまり、iOS 8以降のみを対象とした場合)に、どういうメリット・デメリットがあるかをまとめた。 “iOS 7対応を切るとサポート外になる端末、使えるようになる主な機能” の続きを読む

Androidアプリ開発のすすめ

新しく買ったiPad Air 2はとても快適で素晴らしい。今この記事もiPadから書いている。それくらいユーザとしてはiOS製品が気に入っている。だけど、アプリ開発者としては今はiOSアプリ開発よりもAndroidアプリ開発の方に魅力を感じている。この魅力を、とくにAndroidアプリ開発を敬遠してきたエンジニアの人にも伝えたい。
これから書くのはネイティブアプリ(VM上で動くので厳密には「ネイティブ」ではないが)を開発する場合についての話となる。作るアプリの内容によっては、各OS用のアプリを個別に作るより、UnityとかXamarinを使ったほうがいい場合もあると思うし、それらを否定するつもりは無い。一方で、各OSを個別に開発したほうが良いケースもまだまだあると思っているが、そこについては本題から離れてしまうので省略する。
“Androidアプリ開発のすすめ” の続きを読む

SpriteKitを使って一攫千金を狙うチュートリアル

iOS 7でSpriteKitという新しいゲーム作成用のフレームワークがでました。早速コレを使ってゲームを作って一攫千金を狙いたいと思います。
勢いだけで書いてしまったので、大分雑な感じになっていますが悪しからず。細かい部分はそのうち直していきます。。編集社って偉大。 “SpriteKitを使って一攫千金を狙うチュートリアル” の続きを読む

Jenkinsを使ったiOSアプリビルド自動化12 ビルドしたアプリを配布する(1)

テストの自動化が実現できたので、今度はビルドをTestFlightにアップロードし、アドホックインストールできるようにします。少し長くなるので、記事を分けて書きます。 “Jenkinsを使ったiOSアプリビルド自動化12 ビルドしたアプリを配布する(1)” の続きを読む