preflight

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 11, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckLocalMetadata

func CheckLocalMetadata(projectPath string) ([]Finding, AppMeta)

CheckLocalMetadata reads project config files and flags issues that would normally require App Store Connect to detect.

Types

type AppMeta

type AppMeta struct {
	AppName  string
	BundleID string
	Version  string
	Source   string // "app.json", "Info.plist", "pbxproj"
}

AppMeta holds metadata extracted from project config files.

type Finding

type Finding struct {
	Source    string `json:"source"`   // "codescan", "privacy", "ipa", "metadata"
	Severity  string `json:"severity"` // "CRITICAL", "WARN", "INFO"
	Guideline string `json:"guideline,omitempty"`
	Title     string `json:"title"`
	Detail    string `json:"detail"`
	Fix       string `json:"fix,omitempty"`
	File      string `json:"file,omitempty"`
	Line      int    `json:"line,omitempty"`
	Code      string `json:"code,omitempty"`
}

Finding is the unified finding type across all scanners.

type Result

type Result struct {
	ProjectPath string        `json:"project_path"`
	IPAPath     string        `json:"ipa_path,omitempty"`
	Findings    []Finding     `json:"findings"`
	Summary     Summary       `json:"summary"`
	Elapsed     time.Duration `json:"elapsed"`

	// Extra context from sub-scanners
	AppName        string   `json:"app_name,omitempty"`
	BundleID       string   `json:"bundle_id,omitempty"`
	HasPrivacyInfo bool     `json:"has_privacy_info"`
	DetectedAPIs   []string `json:"detected_apis,omitempty"`
	TrackingSDKs   []string `json:"tracking_sdks,omitempty"`
}

Result holds the combined output from all scanners.

func Run

func Run(projectPath string, ipaPath string, verbose bool) (*Result, error)

Run executes all scanners and returns a unified result.

type Summary

type Summary struct {
	Total    int  `json:"total"`
	Critical int  `json:"critical"`
	Warns    int  `json:"warns"`
	Infos    int  `json:"infos"`
	Passed   bool `json:"passed"` // true if zero CRITICALs
}

Summary provides aggregate counts.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL