Azure Extensions Librariesを使ってAzure接続クライアントを管理する
はじめに
ここ最近(最近。。?)、 .NET から StorageAccount などの Azure リソースへ接続するための NuGet ライブラリ群が Azure.*
に変更されています。ライブラリの使い方自体は Microsoft のドキュメントを眺めれば良いのですが、各接続クライアントの管理に利用できるライブラリ Microsoft.Extensions.Azure
に関するドキュメントが全然見当たりません。 Microsoft.Extensions.Azure
は Azure 接続クライアントと Microsoft Extensions の DI 、 Configuration 機能を統合して利用するためのライブラリです。この記事では Microsoft.Extensions.Azure
の機能を利用して BlobStorage に接続します。
Angular CDK Overlay でポップアップ Directive を実装する
とても古いAndroidアプリを更新してみた話
はじめに
遙か太古の時代、 Eclipse 全盛期時代に作られた古い Android アプリを大改修してリリースしてみた話です。
筆者は気象庁ホームページの HTML をパースして天気予報やアメダスの情報を表示する「WeatherNow」というアプリを開発していました。初期リリースは Android のバージョンがまだ 1.6 や 2.1 の時代で、そこそこ思い入れがあるアプリです。特にメンテナンスをしなくても安定して動いていたアプリでしたが、最近気象庁ホームページが大幅にリニューアルされた結果、完全にお亡くなりになりました。
少なくない数の対応を依頼するメールを頂いていたのは気付いていましたが筆者が最近多忙にしていることもあり、全く改修するつもりはありませんでした。しかし仕事に余裕が出始めたこと、最近の Android 事情を肌で感じてみたかったことから、とりあえず直してみるかと重い腰を上げて取りかかりました。
ガンガン Android 開発されている方には不要な内容でしょうが、久しぶりに古いアプリを改修してみようという方がいらっしゃれば、参考になるかも知れません。
余談ですが筆者は普段から JetBrains 系の IDE を愛用しており、また Java 8 や正式リリース前の Kotlin を一通り触った経験があるため、今回の改修に関してかなりアドバンテージがあったことだけは先に記しておきます。なお、後半は息切れしたため内容が雑になってしまっていることを先に記しておきます。
続きを読むXamarin iOSアプリをAzure PipelinesでビルドしてAppCenterに送信する(配布編)
はじめに
Azure Pipelines 使っていますか? 昨今は GitHub Actions に後塵を拝している感が否めませんが、マルチステージを利用した承認機能など、実は結構便利に利用できます。今回は Xamarin.Forms で実装した iOS アプリをビルドするための Azure Pipelines を組んでみます。またビルド結果を AppCenter へ送信し、テスト配布も行います。
全体を一本の記事にするととても長くなってしまうためビルドとテスト配布の2つに分割しました。本記事は後編の配布編です。
ノンビリと書いていたら GitHub Actions にも承認処理が来てしまったような気がしますが、気にしたら負けです。
環境
- Visual Studio 2019 (16.8)
- Xamarin iOS 14.4
- mono 6.12
- XCode 12.2
今回試したものはこちらに置いてあります。
ビルドYAML全体
前編の記事でビルドした Xamarin iOS アプリを AppCenter へ送信する Pipeline YAML は全体でこのようになります。実際にはビルドと配布のマルチステージ構成となっていますので、 GitHub 上の YAML をご参照下さい。
variables: AppCenterAppSlug: 'AppCenterの識別名 "チーム名/アプリ名" ' pool: vmImage: 'ubuntu-latest' # 何でも良い steps: # Pipeline Artifacts をダウンロード - download: current # AppCenter へビルドしたアプリを配信 - task: AppCenterDistribute@3 displayName: 'Distribute to AppCenter' inputs: serverEndpoint: 'AppCenterConnection' appSlug: '$(AppCenterAppSlug)' appFile: '$(Pipeline.Workspace)/drop/SampleApp.iOS.ipa' releaseNotesOption: 'input' releaseNotesInput: '$(Build.SourceVersionMessage)' destinationType: 'groups' isSilent: false
Azure Pipeline Tasks
download
download
は Download Pipeline Artifact
タスクのショートカットです。ドキュメントに記載の通りこのショートカットを使用すると $(Pipeline.Workspace)/
に Pipeline Artifacts がダウンロードされます。デプロイ系のジョブであれば自動で Pipeline Artifacts を持ってきてくれる気がしますが普通のジョブでは手動の点、注意が必要です。
AppCenterDistribute@3
ビルドで生成された *.ipa
ファイルを AppCenter で配布するために AppCenter へと送信するタスクです。このタスクを使用するには AppCenter から取得したトークンを元に ServiceConnection を作成することが必須となります。また AppCenter のアプリ登録を {userName}/{appName}
の形式で appSlug
に設定します。先行タスクで Pipeline Artifacts から ipa ファイルをダウンロードしているので、 appFile
にはダウンロードしたファイルのパスを指定します。
そしてちょっと面倒臭いことに AppCenter に登録するリリースノート情報が必須です。リリースノートの指定は releaseNotesOption
と releaseNotesInput
または releaseNotesFile
を使用します。サンプルではビルド対象のコミットのコミットメッセージが格納されている Azure Pipelines の Build.SourceVersionMessage
環境変数を固定で指定しています。
task: AppCenterDistribute@3 inputs: serverEndpoint: 'AppCenterConnection' appSlug: '$(AppCenterAppSlug)' appFile: '$(Pipeline.Workspace)/drop/SampleApp.iOS.ipa' releaseNotesOption: 'input' releaseNotesInput: '$(Build.SourceVersionMessage)' destinationType: 'groups' isSilent: false
AppCenter ServiceConnection
続いて AppCenter へ送信するために必要な ServiceConnection の登録方法です。まずはプロジェクトの設定画面から ServiceConnection を選択して新規作成を行います。種別は Visual Studio App Center
を選択します。選択した後の設定値は表を参考にして下さい。
設定名 | 設定値 |
---|---|
Server URL | (元の値から変更しない) |
API Token | AppCenter の設定画面から FullAccess スコープで出力したトークンキー |
Service connection name | AppCenterDistribute タスクの serverEndpoint に指定する名前 |
Description | お好みで |