既存のアプリにiOSのメッセージ用のスタンプ(ステッカー)をバンドルし、
ビルドについても Unity Cloud Build で自動ビルドする方法をまとめておきます。
iOS App Extension
ステッカーパックExtension。iOS Appにステッカーパックをバンドルできます。ステッカーパックはApp Store for iMessageに掲載され、その際App Storeで該当するiOS Appに適用されているのと同じカテゴリや説明文が使用されます
前提
- Unity Cloud Build でビルドできる iOS のプロジェクトを作成済み
手動でやる場合
XCode プロジェクトを書き出した後、 File -> New -> Target
などして、 sticker app extension を追加し、各種画像の指定、Provisioning profile の指定などしてやればビルドできるようになると思います。
自動化したい
Unityの設定
Targetの追加、画像の指定については以下のプラグインがいい感じにやってくれます。
https://github.com/agens-no/iMessageStickerUnity
プロジェクトにインポートした後、必要な設定を行います。
Window > Sticker Pack
から設定パネルを表示します。
項目 | 説明 |
---|---|
Title | ステッカー名、メッセージの入力画面にも表示されます |
Bundle Version | {アプリのバンドルID + 任意の文字列} |
Automatic Signing | UCBでビルドする場合はチェックを外します |
Icons, Stickers には任意の画像等を指定します。
証明書まわりの準備
ステッカー用のAppIDを用意します。
Apple Developer のサイトの、 Identifiers から、 {アプリのバンドルID + 任意の文字列} のAppIDを作成します。
とくに必要な指定は無い気がする。
AppIDを作成したら Provisioning Profile を作成します。
作成した Profile はダウンロードしておきます。
UCB自動化のための設定
上で作成した、ステッカー用の Provisioning Profile を指定する必要がありますが、
Unity Cloud Build では一つしか設定する項目がないので、
フォーラムで案内されていた以下の方法で指定をします。
ファイルの配置
Assets/UCB/xcode_fastlane.json
Assets/UCB/Fastfile
Assets/UCB/Gymfile
Assets/UCB/Stickers.mobileprovision (上で作った Profile)
{
"fastfile": "Assets/UCB/Fastfile",
"gymfile": "Assets/UCB/Gymfile",
"lanes": {
"pre_build": "use_stickers_profile",
"post_build": ""
}
}
lane :use_stickers_profile do |options|
profile_path = File.join(options[:project_dir], 'Assets/UCB/Stickers.mobileprovision')
FastlaneCore::ProvisioningProfile.install(profile_path)
update_project_provisioning(
xcodeproj: 'Unity-iPhone.xcodeproj',
target_filter: 'Unity-iPhone-Stickers',
profile: profile_path
)
end
export_options(
provisioningProfiles: {
"com.unity3d.cloudbuild.base.stickers" => "1e33640e-9a55-4357-a632-ca6c48a53a96"
}
)
bundle id(com.unity3d.cloudbuild.base.stickersの部分), UUID(1e33640e...のやつ) をそれぞれプロジェクトのものに書き換えてください。 UUID は Mac のクイックルックなどから mobileprovision ファイルを見ると確認できる。
Cloud Build の設定
Config > advanced options > Custom Fastlane Configuration Path
の欄に、上で作成したjsonファイルへのパスを指定します。
Assets/UCB/xcode_fastlane.json
以上の内容をpushしてビルドをかけると、ビルドが通るようになるかと思います。
ipaをインストールすると、メッセージアプリに、
バンドルしたステッカーが追加されているのを確認できます。
Ad Hoc とストアリリース用に、ステッカーの Provisioning Profile も使い分ける必要があるのかわかりませんが、
Gymfileやmobileprovisionファイル、fastlaneの設定用jsonファイルを2通り用意して、使い分ければ実現できるのかな、と思います。