AppExchangeリリース
フェーズ1:プリフライト(ローカル)
Section titled “フェーズ1:プリフライト(ローカル)”組織に触れる前にこれらを実行します。発生するすべてを修正します。
1.1 Salesforce Code Analyzer v5 — 完全スキャン
Section titled “1.1 Salesforce Code Analyzer v5 — 完全スキャン”# インストール(1回)sf plugins install @salesforce/plugin-code-analyzer
# すべてのルールを実行(PMD、ESLint、RetireJS、Regex、Flow、CPD)sf code-analyzer run \ --workspace force-app \ --output-file docs/scan-results.html
# AppExchange固有のルールを実行sf code-analyzer run \ --rule-selector AppExchange \ --workspace force-app \ --output-file docs/scan-appexchange.html
# Security タグ付きルールのみを実行sf code-analyzer run \ --rule-selector Security \ --workspace force-app \ --output-file docs/scan-security.html
# 重大度閾値 — HighまたはCriticalで失敗(CI/CD)sf code-analyzer run \ --rule-selector AppExchange \ --workspace force-app \ --severity-threshold 2 \ --output-file docs/scan-appexchange.htmlゼロトレランス: Critical(1)とHigh(2)。
Medium(3)以下 — docs/FALSE-POSITIVES.mdに誤検出として文書化します。
1.2 ESLint(LWC)
Section titled “1.2 ESLint(LWC)”npm run lint1.3 LWC Jestテスト
Section titled “1.3 LWC Jestテスト”npm run test:unitフェーズ2:組織テストとカバレッジ
Section titled “フェーズ2:組織テストとカバレッジ”2.1 すべてのApexテストを実行
Section titled “2.1 すべてのApexテストを実行”sf apex run test \ --code-coverage \ --result-format human \ --wait 10 \ --target-org FlexiFREE必須: >= 75%の全体カバレッジ、すべてのトリガーにカバレッジが必要。
2.2 クラスごとのカバレッジを確認
Section titled “2.2 クラスごとのカバレッジを確認”sf apex run test \ --code-coverage \ --result-format json \ --wait 10 \ --target-org FlexiFREE \ | jq '.result.coverage.coverage[] | select(.coveredPercent < 75) | {name, coveredPercent}'フェーズ3:パッケージバージョンをビルド(beta)
Section titled “フェーズ3:パッケージバージョンをビルド(beta)”3.1 sfdx-project.jsonでバージョンをバンプ
Section titled “3.1 sfdx-project.jsonでバージョンをバンプ”"versionName": "ver 1.2.0","versionNumber": "1.2.0.NEXT"3.2 betaパッケージバージョンを作成
Section titled “3.2 betaパッケージバージョンを作成”sf package version create \ --package FlexibleTeamShare \ --definition-file config/package-scratch-def.json \ --installation-key-bypass \ --wait 30 \ --code-coverage \ --skip-ancestor-check3.3 検証とカバレッジ確認
Section titled “3.3 検証とカバレッジ確認”sf package version list --packages FlexibleTeamShare --order-by CreatedDate --verbosesf package version report --package 04tXXXXXXXXXXXXXXX --verboseフェーズ4:インストールをテスト
Section titled “フェーズ4:インストールをテスト”4.1 クリーンなスクラッチ/サンドボックス組織にインストール
Section titled “4.1 クリーンなスクラッチ/サンドボックス組織にインストール”sf package install \ --package 04tXXXXXXXXXXXXXXX \ --target-org TestOrg \ --wait 104.2 スモークテスト
Section titled “4.2 スモークテスト”FTS_App_AccessとFTS_Data_AccessPermission Setを割り当て- Wizardを介して共有設定を構成
- レコード上でチームメンバーを追加/編集/削除
- 共有レコードが作成/削除されることを確認
- 非管理者ユーザーとしてテスト(FTS_Data_Accessのみ)
フェーズ5:Releaseにプロモート
Section titled “フェーズ5:Releaseにプロモート”sf package version promote --package 04tXXXXXXXXXXXXXXXフェーズ6:Partner Security Portal — Source Scanner(Checkmarx)
Section titled “フェーズ6:Partner Security Portal — Source Scanner(Checkmarx)”これはSalesforceパッケージを含むすべての送信に対して必須です。
- DevHub/パッケージング組織の認証情報を使用してPartner Security Portalにアクセス
- プロモートされた(リリース済み)パッケージバージョンを選択
- Start Scanをクリックして結果を待つ(通常15〜30分)
- レポートをダウンロード
検出結果の処理
Section titled “検出結果の処理”- Critical/High — コードを修正、再ビルド、再スキャン
- 誤検出 —
docs/FALSE-POSITIVES.mdに文書化し、送信に添付 - Low/Info — 根拠を文書化、修正不要
フェーズ7:DASTスキャン(該当する場合)
Section titled “フェーズ7:DASTスキャン(該当する場合)”Flexible Team Shareには外部コールアウト、Web UI、APIエンドポイントがありません — DASTは該当しません。
フェーズ8:送信資料の準備
Section titled “フェーズ8:送信資料の準備”必須ドキュメント
Section titled “必須ドキュメント”| 資料 | ファイル | 注記 |
|---|---|---|
| Code Analyzerレポート(完全) | docs/scan-results.html | フェーズ1から |
| Code Analyzerレポート(AppExchange) | docs/scan-appexchange.html | フェーズ1から |
| Source Scannerレポート | ポータルからダウンロード | フェーズ6から |
| 誤検出ドキュメント | docs/FALSE-POSITIVES.md | 各検出結果を説明 |
| 管理者/ユーザードキュメント | docs/APPLICATION-OVERVIEW.md、docs/USE-CASES.md | レビュー担当者がアプリをテスト |
| インストールガイド | docs/1. Installation Guide.md | ステップバイステップのセットアップ |
レビュー組織の準備
Section titled “レビュー組織の準備”- プロモートされたパッケージバージョンをインストール
- MFA/2FAを無効化してレビューチームがログインできるようにする
- このレビューに関連するパッケージのみをインストール
- レビューチーム用の完全なアクセス権を持つテストユーザーを作成
- サンプルデータを含む少なくとも1つの動作する共有設定を事前に構成
フェーズ9:送信
Section titled “フェーズ9:送信”- AppExchange Partner Console > Publishing > Security Reviewに移動
- パッケージとプロモートされたバージョンを選択
- すべてのスキャンレポートをアップロード
- レビューチーム用の組織ログイン認証情報を提供
- $999の料金を支払う(有料アプリの場合;無料アプリ — 料金なし)
- 送信
タイムライン: 4〜6週間。ほとんどのアプリは2回目の試行で合格します。
実行順序サマリー
Section titled “実行順序サマリー”フェーズ1 Code Analyzer + ESLint + Jest ← コードの問題を修正フェーズ2 組織でApexテスト(>= 75%) ← カバレッジギャップを修正フェーズ3 betaパッケージバージョンをビルド ← ビルド失敗の場合、フェーズ2に戻るフェーズ4 クリーンな組織にインストールしてスモークテスト ← 壊れている場合、修正して再ビルドフェーズ5 releaseにプロモート ← 元に戻せませんフェーズ6 Source Scanner(Checkmarx) ← プロモートされたバージョンのみフェーズ7 DASTスキャン(該当する場合) ← このアプリには該当しませんフェーズ8 ドキュメントとレビュー組織を準備 ← すべてをパッケージ化フェーズ9 AppExchangeに送信 ← 4〜6週間待つ