SharePoint Framework アプリケーションを Marketplace に公開する準備をする

SharePoint Framework アプリケーションを Marketplace で公開する前に、承認プロセスを実行する必要があります。 このプロセスは、Microsoft によって無料で実行され、アプリが正常に機能し、そのページに目的や機能が明確に記載されていることを確認することを目的とします。 アプリケーションを Marketplace で公開するために、承認プロセスの一部として実行されるテストのリストを次に示します。

前提条件

SharePoint Framework v1.11 以降のバージョンを使用する

Marketplace に公開するソリューションを構築するには、SharePoint Framework v1.11 以降を使用する必要があります。 バージョン 1.11 以降、SharePoint Framework ソリューション マニフェストには、組織やソリューションに関する情報が追加されており、Marketplace でアプリケーションを公開するために必要となります。

ヒント

アプリケーションが以前のバージョンの SharePoint Framework を使用して構築されている場合は、Microsoft 365 の CLI を使用して SharePoint Framework v1.11 以降に簡単にアップグレードできます。 詳細については、https://pnp.github.io/cli-microsoft365/cmd/spfx/project/project-upgrade/ を参照してください。

ルートサイトと非ルートサイトの両方でアプリケーションをテストする

アプリケーションをテストするときは、テナントのルートサイトコレクションと非ルートサイトの両方にインストールした場合に、どちらも意図した通りに動作していることを確認してください。 これにより、特定のサイト URL に依存していないことを確認するのに役立ちます。

必要なブラウザーでアプリケーションをテストする

次のセクションで説明されているチェック項目についてアプリケーションをテストする場合、Microsoft Edge、Google Chrome、Firefox、Microsoft Teams デスクトップ クライアントの最新バージョン (アプリケーションが Teams で Web パーツを公開している場合) について、少なくともWindows 10上で想定どおりに動作することを確認します。

必須のチェック

次のチェック項目で合格する必要があります。 このカテゴリのうち、1つでもチェック項目で合格できなかった場合、申請は却下され、報告された問題を修正するように指示されます。

SharePoint Framework 契約の整合性を確認する

Web パーツまたはカスタマイザーは、プロパティ domElement を通して提供される DOM 要素だけを操作する必要があります。 この要素と提供されたコンテキストオブジェクトは、アプリを使用してサイトに機能を追加する唯一の承認された方法です。 ページ DOM を直接操作すると、ソリューションが拒否されます。

通常の環境であれば、ソリューションは意図したとおりに動作するはずです

通常の環境であれば、ソリューション内のすべてのコンポーネント (Web パーツと拡張機能) が意図したとおりに動作するはずです。 できれば、アプリケーションを承認用に送信する前に、そのアプリケーションが複数のテナントで想定どおりに動作していることを確認し、さまざまなユーザーアカウントを使用して、特定の構成に依存していないことを確認する必要があります。 ソリューションに特定の設定が必要な場合は、ソリューションの説明の中で明示的に記載します。

Web パーツは、それが公開されているすべてのホストで動作する必要があります。

SharePoint Framework を使用して Web パーツを構築する場合は、公開する予定の場所を選択できます。 アプリケーションをレビュー用に送信する前に、これらすべてのホストで、Web パーツが意図したとおりに動作することを確認します。

ソリューション パッケージには、有効な開発者のメタデータが含まれている必要があります

ソリューションのマニフェスト (package-solution.json ファイルで管理されている) には、次のプロパティを持つ developer という名前の新しいセクションが必要です。

属性 説明 必須
name アプリケーションを構築した組織名 はい
websiteUrl アプリケーションに関する追加情報が記載された Web サイトの URL はい
mpnId Microsoft Partner Network ID (MS パートナーネットワーク の詳細情報) いいえ (ただし、提供することを強くお勧めします)
privacyUrl プライバシーに関する声明の URL はい
termOfUseUrl 使用条件の URL はい

この追加情報を含めると、アプリケーションに関する情報をユーザーに明示的に伝えることができます。将来的には、追加の利用状況データにアクセスできるようになります。

開発者情報は、Microsoft Teams に Web パーツをインストールするときに表示されます。 Marketplace で表示されているアプリケーションと開発者の情報は、Marketplace で別途管理されます。

Web パーツのメタデータ記述テキストには、その機能性と価値提供について簡単な説明が必要

ユーザーが Web パーツの用途とそれに想定される内容を理解できるように、メタデータの Web パーツの説明がわかりやすい内容であることを確認します。

ソリューションの説明では、パッケージに含まれるさまざまなコンポーネントを明確に記述する必要があります。

パッケージを Marketplace に送信する場合は、ユーザーの要望を管理し、アプリケーションを使用した場合の影響を理解することに役立てるように、パッケージに含まれている別のコンポーネント (web パーツ、アプリケーションのカスタマイザーなど) を明確に記述する必要があります。

Teams や SharePoint の機能の名前をソリューション名に使用しないでください。

ソリューション名には、チャット連絡先予定表通話ファイル会議アクティビティTeamsアプリヘルプSharePointリストページ などのように、Microsoft Teams や SharePoint の機能と一致する単語を使用しないでください。。これらの名前は Teams や SharePoint の標準機能と混同される可能性があるためです。

ソリューション名に、他の Microsoft 製品の名前を使わないでください。

ソリューションの名前に、OutlookWordCalendarTasksTeamsExcelPowerPointVisioなど、他の Microsoft 製品の名前が含まれている場合、ソリューションは却下されます。

ソリューションでは、Microsoft Teams や SharePoint の機能に特化したキーワードを使用してはいけません。会議開始通話開始ファイルアップロードチャット開始 のようなキーワードは Microsoft 製品で使用されており、アプリケーションで使用するとユーザーが混乱する可能性があります。 アプリケーションが同様の機能を提供する場合は、アクションに機能の名前を含めてください。たとえば、Zoom ミーティングを開始するファイルを Dropbox にアップロードするFreshdesk チャットを開始する などがあります。

ソリューションに名前を付ける

使用しているソリューションが、注文 などの一般的な単語の後に名付けられている場合は、Contoso の注文 のように、Marketplace にある他のソリューションと明確に区別できるように、会社名を含める必要があります。 Contoso は、ソリューションを提出している会社の名前を示します。

以下の例に示すように、package-solution.json 構成ファイルに、上記の書式に基づいて更新された理解可能な name エントリーがあることを確認してください。

アプリの説明やスクリーンショットに追加の広告を含めない

アプリの説明、スクリーンショット、テキスト、およびプロモーション画像は、アプリのみについて説明し、追加の広告が含まれていないことを確認します。

[プロパティ] ウィンドウに表示されるすべてのプロパティが機能している

Web パーツの [プロパティ] ウィンドウに表示されるプロパティは、意味のあるものにする必要があります。 設定を変更することで、Web パーツの動作を明確に変更する必要があります。

パッケージ ファイルがアプリ カタログにエラーなくアップロードできることを確認する

ソリューション パッケージをテナントのアプリ カタログにエラーなくアップロードできることを確認します。

アプリがエラーなく展開できることを確認する

アプリケーションが特定のサイトにインストールできるかどうかだけでなく、すべてのサイト全体にエラーなく展開できるかどうかを確認してください。

API 要求の正当な理由を入力する

アプリケーションが追加の API アクセス (例えば Microsoft Graph との通信) を必要とする場合は、ソリューション マニフェストでそれらを要求する必要があります。 また、アプリを確認するときに、API アクセスを要求されることがあるので、それを要求されたときのために正当な理由を用意しておきましょう。

エンド ユーザーによるスクリプトの挿入のサポートは許可されていません

お客様のソリューションで、エンド ユーザーによる SharePoint ページへの任意のスクリプトの埋め込みを有効にすることはできません。 これは、SharePoint で従来のスクリプト エディターやコンテンツ エディターのシナリオを有効にするソリューションは、SharePoint ストアで公開することができないことを意味します。

一般のエンド ユーザーがポータルにスクリプトを埋め込むことでセキュリティ上の懸念が生じるため、このモデルは SharePoint ストアでは許可されていません。 こういったソリューションは、Microsoft がホストするストア以外の顧客に対してのみ提供可能です。

Web パーツに表示するすべての URL が機能している

Web パーツに URL が表示されている場合は、既存のリソースを参照している必要があり、存在しないページやエラーページにつながらないことが必要です。

アプリケーションの応答を停止させないようにする

アプリケーションの使用中に、ユーザーへの応答が停止しないようにする必要があります。 完了までに少し時間がかかる可能性のある操作を実行する必要がある場合は、その旨をユーザーに通知します。

ソリューションが完成しているか

ソリューションには、説明とスクリーンショットに記載されたとおりの機能がすべて含まれていますか?

アプリケーションの UI が完成しているか

アプリケーションに対するユーザーの第一印象は、その UI を見ることによって決まります。 アプリケーションが洗練されていないように見えたり、いくつかの要素がずれていたり、多くの異なるフォントを使用していたり、プレースホルダーのテキストが最終的な値に置き換えられていなかったりする場合、ユーザーは、アプリケーションが未完成であるため使用すべきではないという印象を持つ可能性があります。

ヒント

SharePoint や Teams とのシームレスな統合を実現するためには、Microsoft 365のデザイン言語であるOffice UI ファブリックの利用をお勧めします。 詳細については、このドキュメントの「設計」 セクションを参照してください。

明示的な対話がない場合、アプリケーションがユーザーにメッセージを表示しない

あなたのアプリケーションは、ユーザー側で明示的な対話がない場合、ユーザーにメッセージを表示することはできません。

ブラウザーでポップアップがブロックされないことを確認する

アプリケーションでポップアップを使用する場合は、既定で設定されたブラウザがポップアップをブロックして、ユーザーの流れを妨害しないことを確認してください。

最初に起動するときの正しい操作環境

可能であれば、アプリケーションを初めて起動したときに動作するようにしてください。 最初に構成する必要がある場合は、次の手順を明確にユーザーに伝えます。 構成が複雑な場合、または追加情報が必要な場合は、ユーザーがアプリケーションをセットアップできるように、明確な手順を提供します。

Teams への同期をテストする

アプリケーションに、[Teams] タブまたは [個人用アプリ] として公開されている Web パーツが含まれている場合は、アプリカタログの [Teams に同期] オプションを使用して、それらがエラーなくチームに展開できることを確認します。 構成を Teams に同期した後、Teams のアプリカタログで公開されているすべての Web パーツが意図したとおりにインストールされ、想定どおりに動作することを確認します。

利用規約プライバシー ポリシー概要 などのリンクが有効であり、正しいページにつながることを確認します。

アカウントまたはライセンスを取得する

ソリューションでユーザーがアカウントやライセンスを取得する必要がある場合、その方法や、取得した情報をアプリケーションでどのように使用できるかが明確になっていますか?

無料試用版が提供されている場合、デモ コンテンツはありません

アプリケーションに無料試用版が含まれている場合は、デモ コンテンツは含まれていません。

悪意のあるコードを含まない

悪意のあるコード、悪意のある Web サイトへのリンク、その他の違法なリソースを含むソリューションは、Marketplace での公開が拒否されます。

脆弱なリソースを含まない

コードに脆弱性が含まれていないことを確認します。 サードパーティの従属物を使用している場合

アプリケーションがリソースを使用し過ぎないようにする

アプリケーションをテストするときには、CPU 使用率が大幅に増加していたり、増加した状態が続いていたりしないか、大量にメモリを消費していないか、ブラウザが応答不能になっていないかなどについてご確認ください。 一般的に、アプリケーションは、インターネットにアクセスできる平均的なデスクトップ コンピュータ上で正常に動作する必要があります。 また、アプリケーションの読み込みに、10秒以上かかることはありません。

Microsoft Teams を対象としたソリューションは、テナント範囲にする必要があります

Microsoft Teams でも使用することを目的とした SharePoint Framework ソリューションは、テナント範囲のターゲットにする必要があります。 この設定は package-solution.json 構成ファイルの skipFeatureDeployment 属性で制御され、Microsoft Teams も対象とするコンポーネントを持つソリューションでは、設定は true である必要があります。

合格するためには、以下の内容をチェックことをお勧めします。 このカテゴリのチェックに失敗しても、 Marketplace でアプリケーションを公開できないわけではありませんが、エンドユーザー エクスペリエンスに悪影響を及ぼす可能性があります。

Web パーツのアイコンは、64 x 64 ピクセルで背景が透明のものであることが必要です。

Web パーツのアイコンには、透明な64 x 64 ピクセルの画像を使うことをお勧めします。 これにより、SharePoint のさまざまな UI モードで正しく表示されるようになります。

Microsoft Teams ロゴは、正しい画像サイズを使用する必要があります

Microsoft Teams を対象とするコンポーネントがソリューションに含まれている場合、Microsoft Teams ガイダンスに基づく公式の画像サイズを使用することが期待されています。 アウトライン画像は 32x32px、カラー画像は 192x192px にする必要があります。

ページ全体の画像のサイズを適切に設定する必要があります

ソリューションに、単一部品アプリ ページとして公開されるコンポーネントが含まれている場合、これらの各コンポーネントには、SharePoint で新しいページを作成するときに使用するように設計された特定の画像を含む fullPageAppIconImageUrl 属性が必要です。 この画像は、サイズを 193x158px にする必要があります。

Web パーツには、[プロパティ] ウィンドウで設定できるタイトルが必要です。

すべての Web パーツには、その Web パーツが提示する情報を明確に説明するタイトルを付けることをお勧めします。 ページ作成者はこのタイトルをプロパティ ウィンドウを通して調整できるようにする必要があります。Web パーツが構成可能な場合には、その内容を正しく説明するタイトルを付けられるようになります。

ヒント

Web パーツに構成可能なタイトルを簡単に追加するには、WebPartTitle PnP Reusable React コントロールを使用します。

異なるテーマを適切に処理する

アプリケーションは、明色および暗色のテーマを適切に処理する必要があります。 異なるテーマを切り替えても、アプリケーションの利便性に悪影響を及ぼすことはありません。 テーマをサポートしていない場合でも、Marketplace でアプリを公開できないわけではありませんが、最適な操作性を実現するためにも、テーマをサポートすることをお勧めします。

ヒント

アプリケーションでテーマを使用する方法の詳細については、「SharePoint Framework のカスタマイズでテーマの色を使用する」を参照してください。