CI/CD 2026.09.26

GitHub ActionsのiOSビルド成果物はどう検証する?2026年企業向けチェックリスト

正式リリースでは、ビルドの生成元を示す証明、Appleの署名検証、リリース承認を別々に確認し、最終配布ファイルに結び付けます。プラットフォーム、安全、リリース、監査の各担当者が照合する証拠と、条件を満たさない場合の判断を整理します。

正式リリースでは、GitHub ActionsのiOSビルド成果物に生成元の証明を結び付け、リポジトリ、ワークフロー、コミットを確認したうえで、Apple署名とリリース記録を別々に検証します。証明は生成経路を示すものであり、コードの安全性や署名の有効性を単独で保証するものではありません。

今週は、実際に配布するファイルを一つ選び、そのファイルの識別情報からソース、ビルド、署名、承認まで追跡できるかを確認してください。正式配布に必要な証拠が欠けている場合は、対象リリースを保留し、担当者と補完条件を記録します。

企業のセキュリティ担当者:生成元の証明とリリース可否の基準を整えたい場合に向けています。
プラットフォームエンジニア:GitHub ActionsとMacビルド環境の証拠をつなぐ担当者向けです。
iOSリリース担当者:アーカイブ、書き出し、署名、最終配布物の対応を確かめたい場合に役立ちます。

01 まず対象を固定し、証拠の対応関係を定義する

最初に決めるのは、検証対象をテスト用ビルドと正式リリース用成果物のどちらにするかです。確認対象は任意の中間ファイルではなく、実際に社内外へ渡す最終ファイルにします。アーカイブ、書き出し後のアプリ、署名済みパッケージなど、工程ごとにファイルが変わる場合は、それぞれの識別情報を記録し、証明がどのファイルを指すか明示します。

確認対象 照合する内容 不一致の場合
成果物 ファイルのハッシュ値、保管場所、配布対象 配布を停止し、証明対象を再確認
生成元 リポジトリ、コミット、ワークフロー、実行コンテキスト リリース基準に照らし拒否または調査
Apple署名 署名の検証結果、チーム識別情報、配布方法 再署名ではなく、原因と責任者を確認
承認記録 変更承認、リリース判断、担当者 承認が揃うまで正式公開を保留

この表は、証拠の種類を混同しないための運用枠組みです。ハッシュ値が一致しても、生成したワークフローが承認済みとは限りません。反対に、承認記録があっても、確認対象のファイルが実際の配布物と同一であることは別途確かめる必要があります。

iOSパッケージが正しいリポジトリとコミットに対応することは、何で確認しますか。
ビルド証明の主体となる成果物の識別情報を起点に、リポジトリ、コミット、ワークフローの実行記録へ遡ります。タグ名やリリース名だけで判断せず、ブランチ保護や承認ポリシーに照らして、そのコミットが正式リリース対象として許可されていたかも確認してください。

02 プラットフォーム担当者は証明の生成条件を絞る

GitHub Actionsのartifact attestationsは、成果物とビルド元の情報を結び付ける仕組みです。GitHubの説明では、証明により成果物の生成元やワークフローなどを検証できますが、成果物そのものが安全であることを保証する機能ではありません。artifact attestationsの対象と機能

生成時は、ワークフローが必要とする権限だけを付与します。公式ガイドに記載されている権限には、証明の発行に使うattestations: writeと、IDトークンの取得に使うid-token: writeがあります。これらを設定したワークフローについて、誰が変更できるか、どのイベントから実行されるか、署名や配布用資格情報へ不要に接続されていないかを合わせて審査します。生成手順と必要なワークフロー権限

証明を中間成果物に付けたまま、別工程でファイルを加工・署名して配布すると、証明対象と最終ファイルが一致しないおそれがあります。生成後に成果物を変換する工程がある場合は、その後のファイルにも検証可能な記録を残せる構成にするか、変換前後の識別情報と処理記録を対応付けてください。

GitHub Actionsが生成するビルド証明では、どの情報を確認できますか。
証明が示す生成元の情報を、許可されたリポジトリ、ワークフロー、コミット、実行コンテキストと照合します。検証には、対象ファイルと想定するリポジトリを指定するGitHub CLIの操作が案内されています。実行結果だけで合格とせず、期待したリポジトリを指定しているか、確認対象が最終配布ファイルかを確認します。GitHubの証明生成・検証ガイド

また、リポジトリの公開範囲と利用プランは、導入前に公式の適用条件を確認してください。GitHubの案内では、公開リポジトリと非公開・内部リポジトリで利用条件が異なり、後者にはGitHub Enterprise Cloudが必要とされています。契約プランや組織設定が変わった場合も、実際のリポジトリで生成・検証できることを事前に確かめます。artifact attestationsのプラン条件 API経由で扱う場合は、別途attestations APIのアクセス権限も確認してください。

03 セキュリティ担当者は不一致時の拒否条件を決める

検証基準は、証明が存在するかどうかだけでは不十分です。許可したリポジトリやワークフローと異なる、コミットがリリース対象から外れている、想定外のイベントから起動している、または証明と配布物の識別情報が対応しない場合は、正式リリースを拒否する条件を定義します。

証明は生成経路を説明する証拠であり、悪意ある変更や脆弱性がコードにないことを判定するものではありません。再利用可能なワークフローなど、ビルドの信頼性を高める構成も、レビューや権限設計の代替ではありません。再利用可能なワークフローと証明に関するGitHubの指針

非公開リポジトリで生成元の証明を使うには、どの契約条件を確認しますか。
利用中のプランが対象か、組織ポリシーで必要な機能が許可されているかを、GitHub公式の適用条件と実環境の双方で確認します。条件を満たさない場合、証明があるものとして扱わず、利用可能な代替証跡と正式リリースへの影響をセキュリティ担当者が判断してください。

04 リリース担当者はApple署名と最終配布物を別に検証する

Xcodeのアーカイブ、書き出し、配布は、ビルド証明の検証とは別の確認です。Appleの配布手順に沿って、対象の配布方法に合ったアーカイブと書き出しを行い、最終ファイルの署名を確認します。Xcodeでのテスト配布とリリース配布 登録済みデバイス向け配布では、対象となるアーカイブおよび書き出しの手順も確認してください。登録済みデバイス向けの配布手順

生成元の証明でAppleコード署名の検証を代替できますか。
できません。生成元の証明はビルドの由来を確認するためのものです。署名の有効性は、Appleのコード署名の仕組みに沿って、実際に配布するファイルを対象に検証します。Appleのコード署名形式と検証に関する説明

署名確認では、検証対象をアーカイブのままにせず、書き出し後の配布ファイルと一致させます。アプリの識別情報、署名に使われたチーム情報、選択した配布方式、検証結果をリリース記録へ残し、証明が示す成果物と署名確認済みファイルの対応も記録します。

05 監査担当者は公開前に証拠一式を照合する

監査で必要なのは、個別ログの保管だけでなく、ひとつの公開判断を再現できる証拠のつながりです。次の項目をリリース記録に揃え、責任チーム、ソースコードの版、署名結果、承認結論を後から追えるか確認します。

  • [ ] 配布ファイルのハッシュ値など、対象を特定できる情報
  • [ ] artifact attestationと、その検証結果
  • [ ] リポジトリ、コミット、ワークフロー実行の記録
  • [ ] Xcodeのアーカイブ・書き出し記録と、配布ファイルの署名検証結果
  • [ ] リリース承認者、審査結果、例外を認めた場合の理由
  • [ ] 不一致や障害が発生した場合の調査担当者と対応記録

証拠が揃っていても、誰がリリースを止められるかが曖昧なら、監査可能性は運用上の統制につながりません。各担当者の入力、確認、拒否権限をリリースポリシーに記し、例外承認を通常の承認経路と区別してください。

06 Mac CI環境の本番採用を条件分岐で決める

本番採用は、構成の説明だけで決めず、実際のリリース経路で証拠の連続性を確かめます。署名資格情報にアクセスできる主体、Macビルドノードの管理者権限、障害や再実行後に記録が残るかを、基準に含めてください。

  • 正式配布ファイルまで証明・署名・承認が一続きに追え、権限分離も確認できる場合:段階的に本番採用し、初回リリースの記録を監査担当者が再確認します。
  • 証明はあるが、署名済みファイルとの対応や承認記録が欠ける場合:不足項目の担当者と完了条件を定め、解消するまで対象範囲を限定します。
  • Macノードから署名資格情報へ無制限にアクセスできる、または障害後に証拠が失われる場合:本番投入を保留し、権限分離と証拠保管を再設計します。

環境候補を検討する際は、JEXCLOUDのMac環境も比較対象の一つとして、管理権限、署名情報の保管場所、監査ログの取得方法を自社基準で照合してください。リモートMacを使う場合でも、証明や署名の責任分界は利用企業側で確認する必要があります。

既存のMacを購入して運用する方式では、初期調達に加えて、保守や更新、障害時の代替機を社内で担う負担があります。一方、ビルド環境を外部へ任せる場合は、権限範囲、証拠の保管、障害時の対応を契約と運用の両面で確認しなければなりません。短期検証やチーム規模に応じた増減が必要なら、JEXCLOUDのリモートMacを候補に加え、社内の監査・署名要件に合うかを確認できます。長期の常時負荷や物理接続が必須の運用では、自社保有のMacが適する場合もあります。日本向けの利用条件はJEXCLOUDの日本向け案内で確認し、発注前に証拠保全と署名隔離の要件を照合してください。

JEXCLOUD

リリース検証を支える専用ビルド環境を整えませんか

JEXCLOUDの専用物理ノードなら、共有環境の影響を受けにくいビルド基盤を用意できます。

継続的インテグレーションの実行先として活用し、ビルドの生成元や署名を確認する工程を組み立てられます。

今すぐ借りる