DevOps(旧VSTS)でソース管理とビルドパイプラインの面倒を見る。AppCenterでテスターにバイナリを配布する。AndroidとiOS両方やるビルドマシンは自宅にmacOSな物理マシンを設置するセットアップセットアップ自体は簡単。どれもすぐできるので省略します。Profileとp12を設定しているのに署名がうまくいかなくて泣いた。結局、VSTSのビルドタスクの実装を読んで、ビルド前にMagicを施すことでなぜかビルドできるようになった。逆にAndroidはデフォルトでなにも困っていないので特に触れません。泣いた結果のビルドパイプラインPipelineのところ。Schemeをちゃんと書く。Buildはこれでいいらしい。最初Manual署名とかいろいろやってみたけど、結局署名がうまくいかなかったりでよくわからない。最初の謎の文字列をpbxprojに書き込むとビルドタスクがいい感じに動く。artifactに入れておく。$(build.artifactstagingdirectory)/CHANGELOG結局ビルドタスクの実装に依存した謎の文字列を無理やり押し込んで解決したけど、こんなことしなくても通るはず...謎。リリースするデフォルトでビルド後にAppCenterに投げるようなタスクが書かれてる。(?)なので、Releaseを使った。トリガーに、CIビルドを設定。タスクにはAppCenterにDeployするタスクを設定しただけとても簡単。fileに、ビルド時に生成したCHANGELOGを指定した。Gitのログを出力したのはここで使うためでした。Updateを使うにはちゃんとバージョン番号が上がっていないとだめ。iOSの場合CFBundleVersionが現在のバイナリより新しい場合Androidの場合versionCodeが現在のバイナリより新しい場合それぞれの場合に、アップデート通知が出る。いい感じにバージョンを更新しないといけない。調べるとVSTSのビルドタスクでできるよーとか書いてあったりいろいろ試したけどめんどくさくなった*1。macなんだろsedでいいだろsedで。いう感じで解決しました。1ってなってるところをsedで$(Build.BuildId)に置換するだけ。app/build.gradleiOS版iOSはもっと簡単でmacなのでplistを編集するCLIツールがあるのでそれを使う。CFBundleVersionを文字列で$(Build.BuildId)に書き換える。Updatesを有効にするには、アプリ側にライブラリをインストールして少しだけコードを書き足す必要があります。これも、使い方はdocs.comを読むと書いてます。docs.microsoft.comdocs.com読めって言えばそれだけの話なんですが、とりあえず簡単に紹介だけしておきます。いってもdocs.comに書いてることと変わりません。Android版Androidは簡単。Gradleに依存を書く。"com.microsoft.appcenter:appcenter-distribute:${appCenterSdkVersion}"}importを書いて、MainActivityのonCreateあたりに次のコードを埋める。Distribute.class);おわり。iOS版iOSもだいたい同じ。Cocoapodsからライブラリを入れる。'AppCenter/Distribute'importを書いて、didFinishLaunchingWithOptionsあたりに次のコードを埋める。[MSDistribute.self])ただ、iOSはInfo.plistをちゃんと書かないと動かない。ドキュメントにもちゃんと書けよ。書いてあるけど見落とすと動かなくて悩むのでちゃんと書きましょう*2。DevOpsとAppCenterでCI/CDといわれるやつをやったTweetもっと読むコメントを書く2018-11-16オカムラのSylphyを買いました雑記ちょっと前に会社を辞めてフリーランスって感じでお仕事をしていたのですが、最近ラップトップじゃなく椅子で作業することが増えてきました。コーナンの1000円ぐらいのパイプ椅子を使ってたけど、いい加減つらくなったので新しい椅子を買いました。2018オカムラのSylphyというやつです。www.okamura.co.jpSylphyの中でも買ったのは、エクストラハイバック、背メッシュ、稼働肘、黒、アルミ足という設定のものです。ようするに、背もたれがメッシュで、高くて、ヘッドレストがついてるやつ。