AdobeのLearning Managerモバイルアプリでのホワイトラベル

Adobe Learning Managerモバイルアプリは、ホワイトラベルをサポートするようになりました。これにより、独自のブランディングでアプリをリリースできるようになりました。

白いラベルのアプリを起動する準備を開始する方法

独自の白いラベルのアプリをデプロイして管理するには、次の手順に従います。

  1. アセット(スプラッシュスクリーン画像など)とテキストを準備して、アプリとapp/playストアの説明の両方で使用できるようにします。

  2. 次の能力を持つ技術リソースを割り当てます。

    • プッシュ通知証明書ファイルを生成しています。
    • ALMチームが提供するアプリのバイナリに署名しています。
    • 公開プロセスをアップロードおよび管理しています。 公開プロセスでは、アプリマネージャーとアプリ/Playストアチームの間で、アプリがすべての公開ガイドラインに準拠していることを伝える必要があります。 ALMから、完全に準拠したアプリバイナリを受け取ります。

概要

ホワイトラベルとは、アプリやサービスのブランド名を変更し、元のクリエイターのようにカスタマイズする行為です。 Adobe Learning Managerでは、モバイルアプリにホワイトラベルを適用して、アプリのブランドを変更したり、自分のブランドの下でアプリを使用したりすることができます。

カスタマイズ可能な項目

以下をカスタマイズできます。

フィールド

code language-none
<p>アカウントID</p>
code language-none
<p>アカウントのID。 他のアカウントに属する学習者は、白いラベルのアプリにアクセスできません。</p>
code language-none
<p>追加のアカウントId</p>
code language-none
<p>必要に応じて、複数のアカウント(サブドメイン)を追加します。 サブドメインをスペースなしでコンマ区切りとして追加します。 たとえば、 acc01、acc02、acc03などです。<br> <b>注意:</b>サブドメインを指定するときは、アカウントIDを追加する必要があります。</br> </p>
code language-none
<p>アプリ名</p></td>
code language-none
<p>アプリに使用する名前です。</p>
code language-none
<p>アプリの短い名前</p>
code language-none
<p>アプリ名が長い場合は、デバイスに表示される短い名前をアプリに付けます。</p>
code language-none
<p>内部アプリ名</p></td>
code language-none
<p>OSがアプリを識別するために使用する名前です。 通常使用される形式は、 com.company-name.product-nameです。</p>
code language-none
<p>内部アプリ名 – iOS</p>
code language-none
<p>ユーザーがiOSを使用している場合は、アプリに別の名前を付けてください。 iOSとAndroidの両方に同じ名前を使用することをお勧めします。</p>
code language-none
<p>アプリアイコン</p>
code language-none
<p>アプリアイコンをpngに変換します。 このアイコンはアプリに表示されます。 名前の形式はaccount-id_appIcon.pngです。 アプリアイコンのサイズは512 × 512ピクセルです。<div>Appleのアプリアイコンでは、Alphaチャンネルを使用できません。 そのため、必ずアセットからAlphaチャンネルを削除してから送信してください。</div></p>
code language-none
<p>アプリのスプラッシュ画面</p></td>
code language-none
<p>アプリのスプラッシュ画面には、ユーザーがアプリを起動したときに表示される画像(png)を指定します。 名前の形式はaccount-id_splashIcon.pngです。 正方形ベースのスプラッシュ画面の寸法は1052×1052ピクセルであり、円ベースのスプラッシュ画面は768 x 768ピクセルである。</p>
code language-none
<p>クライアントIDとクライアントシークレット</p>
code language-none
<p>アプリの登録時に、アカウントの統合管理者が詳細を提供します。 統合管理者は、以下を使用する必要があります。<ul><li>学習者:読み取り,学習者:ロールとして書き込み</li><li>リダイレクトURLとしての内部アプリname://redirect</li></ul></p>
code language-none
<p>アカウントロゴ</p>
code language-none
<p>組織のロゴをホストするURL。 アカウントロゴとしてcpcontentsリンクを提供します。 URLはWebでエンコードする必要があります。</p>
code language-none
<p>アプリのアプリストアID(iOS)</p>
code language-none
<p>強制更新の実装に必要なIDです。 アプリを更新するには、学習者をアプリストアにリダイレクトする必要があることをアプリに伝える必要があります。</p>
code language-none
<p>アプリのGoogle playストアID(Android)</p>
code language-none
<p>強制更新の実装に必要なIDです。</p>
code language-none
<p>ディープリンクのホスト名</p>
code language-none
<p>ディープリンクをホストするには、learningmanagerを使用します。 別のホスト名URLをディープリンクとして使用する場合は、ホストのURLを指定します。 例えば、learningmanager.adobe.comのように入力します。</p>
NOTE
CSAMにデータを提供して、カスタマイズされたアプリバイナリに追加できるようにします。

カスタムディープリンクを処理するためのサイトの関連付けの更新

カスタムドメインまたはlearningmanager*.adobe.comをホストとして使用している場合は、何もする必要はありません。 ただし、URLにカスタムソリューションまたは特定のホスト名を使用する場合は、サイト関連付けファイルを追加します。

CAUTION
ファイルが存在しない場合、デプリンクは機能しません。 ファイルが存在することを確認します。

詳細については、次のリンクを参照してください。

プッシュ通知の生成

AndroidアプリとiOSアプリにプッシュ通知を送信するには、2つの異なるメカニズムが必要です。

  • iOSの場合、プッシュ通知証明書を生成します。
  • Androidの場合は、Firebaseプロジェクトから生成されたサーバーキーを提供します。

Firebaseでプロジェクトを設定するには、以下の手順に従います。

iOSでのプッシュ通知

iOSアプリの開発では、プッシュ通知証明書はAppleが発行する暗号化資格情報で、これによりサーバーはAppleのプッシュ通知サービス(APN)を介してiOSデバイスにプッシュ通知を安全に送信できます。

証明書は、iOSデバイスにプッシュ通知を送信する際に、サーバー(またはプロバイダー)とAppleのAPN間の安全な通信を保証します。

Android版とiOS版はどちらも、デバイスにプッシュ通知を送信するためのサービスとしてFirebase Cloud Messaging(FCM)を使用しています。

iOSで証明書を生成する方法

以下の手順に従います。

  1. プッシュ通知証明書 ​と秘密キー(.p12)を生成またはダウンロードします。 詳しくは、Appleデベロッパーのドキュメントを参照してください。

  2. ファイルのダウンロードが完了したら、p12ファイルをインストールします。 パスワードを使用して、キーチェーンアクセス ​にインストールします。

  3. 証明書 ​に移動し、証明書をエクスポートします。 MIMEタイプとして.cerが選択されていることを確認します。

  4. p12ファイルとcerファイルが使用可能になったら、次のコマンドを実行します。

- openssl pkcs12 -in privatekey.p12 -out myapnappkey.pem -nodes –clcerts

- openssl x509 -in privatekey.cer -inform DER -out myapnsappcert.pem

- openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert myapnsappcert.pem -key myapnappkey.pem

サーバーに接続できる場合は、作成した証明書が有効です。 myapnappkey.pemファイルから、証明書とプライベートキーの値をコピーします。

Androidでのプッシュ通知

Androidの場合、ユーザーはFirebaseプロジェクトからservices.jsonファイルを提供して、SNSサービスにエントリを追加する必要があります。

Firebaseでプロジェクトを作成し、 services.jsonファイルをCSMチームと共有します。 このファイルは、SNSのトークンベースのエントリに必要です。 サーバーキーはもう使用されていないことに注意してください。 Firebaseでのプロジェクトの作成を参照してください。

services.jsonファイルをダウンロードするには、次の手順に従います。

  1. Firebase ​コンソールにログインします。

  2. プロジェクト設定 ​に移動し、クラウドメッセージング ​を選択します。

  3. Firebase Cloud Messaging API ​を検索し、サービスアカウントの管理 ​を選択します。

  4. サービスアカウント ​ページの左側のパネルで、サービスアカウント ​を選択します。

  5. プロジェクトのエントリを探し、[アクション]で[詳細の管理]を選択します。

    note note
    NOTE
    プロジェクトエントリの形式は、<-accountname->@appspot.gserviceaccount.comになります。
  6. キー」タブに移動し、「キーを追加」を選択します。

  7. キーがない場合は、新しいキーの作成 ​を選択し、キーの種類として​ JSON ​を選択します。 これにより、JSONファイルが生成およびダウンロードされます。

  8. 既にキーがある場合は、既存のキーをアップロード ​を選択し、キーを貼り付けてアップロードします。 これにより、JSONファイルが生成およびダウンロードされます。

AWSでSNSサービスにエントリを追加するためのJSONファイルを共有する方法については、CSMチームにお問い合わせください。 ユーザーは、プッシュ通知のためにSNSサービスに登録されたエントリを取得する必要があります。これにより、上記で生成された証明書を検証のために共有することが求められます。

Firebaseでのプロジェクトの作成 create-project-in-firebase

Android

上記の手順で作成したのと同じプロジェクトをプッシュ通知に再利用します。

プロジェクトをFirebaseに追加し、google-services.json ​ファイルを取得します。

iOS

プロジェクトをFirebaseに追加し、GoogleService-Info.plist ​ファイルを取得します。

IMPORTANT
このファイルをAdobe Learning Manager CSAMチームに送り、アプリのバイナリファイルのビルドに含めます。

署名されたバイナリを生成する

iOS

<root>フォルダーには、Runner.xcarchive.zip ​ファイルが含まれています。 次のコマンドを実行して、署名されたバイナリを生成します。

  1. 次のコマンドを実行して、アーカイブを解凍します。

    code language-none
    unzip Runner.xcarchive.zip
    
  2. appディレクトリに移動します。

    code language-none
    cd Runner.xcarchive/Products/Applications/Runner.app
    
  3. モバイルプロビジョニングファイルのコピー:

    code language-none
    cp <path>/<mobile-provisioningfile>.mobileprovision embedded.mobileprovision
    
  4. <root>フォルダー( Runner.xcarchive.zipがある場所)に戻ります:

    code language-none
    cd <root>
    
  5. xcodebuildを使用してアーカイブをエクスポートします。

    code language-none
    xcodebuild -exportArchive -archivePath Runner.xcarchive -exportPath ipa_path/ -exportOptionsPlist <path>/<ExportOptions-file>.plist
    
  6. ipa_pathフォルダーで.ipaファイルを探します。

  7. .ipaファイルをDiawi Webサイトにアップロードします。

  8. 完全にアップロードされたら、[送信] ​ボタンを選択します。

  9. 完了すると、QRコードとリンクが届きます。

  10. SafariでQRコードまたはリンクを直接開きます。

デバイスがプロビジョニングプロファイルに含まれている場合は、デバイス上でインストールが続行されます。

NOTE
署名されたバイナリをビルドするにはXCode 15.2以上が必要です。

Android

APKファイルの場合

sh""" <path>/apksigner sign --ks $storeFile --ks-pass "pass:$store_password" --ks-key-alias $key_alias --key-pass "pass:$key_password" --out app-release-signed.apk -v app-release.apk """

aabファイルの場合

NOTE
署名されたバイナリをビルドするには、Android sdk build-toolsが必要です。

Playストアでは、公開するためにaab形式のAndroidバイナリが必要です。 したがって、署名されていない.aabファイルを提供します。

NOTE
キーストアファイルを作成する場合、キーストアパスワード、署名キーエイリアス、および署名キーエイリアスのパスワードを生成する必要があります。

.aabファイルに署名するには、次の手順を実行します。

次のコマンドを実行します。

<path>/jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore <keystore-file> app-release.aab <signingKeyAlias>
NOTE
jarsigner ​はJavaに含まれています。 Java 21を使用していることを確認します。

プロンプトが表示されたら、次のパスワードを入力してください。

  • キーストアのパスワード
  • 署名キーエイリアスのパスワード

付属のapkを使用できます。 ただし、aabファイルからapkを生成する必要がある場合は、次の手順に従います。

NOTE
APKを生成するには、bundletool ​をインストールする必要があります。

次のコマンドを実行して、apkファイルを作成します。

java -jar <path>/bundletool-all.jar  build-apks --bundle=app-release.aab --output=my_app.apks --mode=universal

ファイルを解凍するには、次のコマンドを実行します。

unzip my_app.apks -d output_dir

output_dir ​フォルダーからapkファイルを取得します。

次のステップ

バイナリを生成したら、バイナリをPlayストアまたはApp Storeにプッシュします。

変更を適用する方法

必要なアセットとファイルをCSMチームに送信します。 次に、CSMチームがフォームに必要な変更を入力し、必要なアセットを添付します。 チームは、変更を確認し、エンジニアリングチームに通知します。 エンジニアリングチームがビルドを生成し、CSMチームと共有します。

CSMチームがお客様とビルドを共有します。

カスタマイズできない内容

  • パスワードの更新画面
  • アカウントの作成画面
recommendation-more-help
d5e5961a-141b-4c77-820e-8453ddef913d