Documentation
¶
Index ¶
- Constants
- func HasTermsOfUseLink(description string) bool
- func SortedUniqueNonEmptyStrings(values []string) []string
- type AgeRatingDeclaration
- type AppInfoLocalization
- type BetaBuildLocalization
- type BetaReviewDetails
- type Build
- type CheckResult
- type DiagnosticStatus
- type IAP
- type IAPInput
- type IAPReport
- type Input
- type MetadataLengthIssue
- type Report
- type ReviewDetails
- type Screenshot
- type ScreenshotSet
- type Severity
- type Subscription
- type SubscriptionDiagnosticRow
- type SubscriptionDiagnostics
- type SubscriptionGroupLocalizationInfo
- type SubscriptionLocalizationInfo
- type SubscriptionsInput
- type SubscriptionsReport
- type Summary
- type TestFlightInput
- type TestFlightReport
- type VersionLocalization
Constants ¶
const ( LimitDescription = 4000 LimitKeywords = 100 LimitWhatsNew = 4000 LimitPromotionalText = 170 LimitName = 30 LimitSubtitle = 30 )
App Store metadata character limits.
const AppleStandardEULAURL = "https://www.apple.com/legal/internet-services/itunes/dev/stdeula/"
Variables ¶
This section is empty.
Functions ¶
func HasTermsOfUseLink ¶
HasTermsOfUseLink reports whether a description includes a functional Terms of Use / EULA link.
func SortedUniqueNonEmptyStrings ¶ added in v1.260325.0
SortedUniqueNonEmptyStrings trims, deduplicates, and sorts a string slice.
Types ¶
type AgeRatingDeclaration ¶
type AgeRatingDeclaration struct {
Advertising *bool
Gambling *bool
HealthOrWellnessTopics *bool
LootBox *bool
MessagingAndChat *bool
ParentalControls *bool
AgeAssurance *bool
UnrestrictedWebAccess *bool
UserGeneratedContent *bool
AlcoholTobaccoOrDrugUseOrReferences *string
Contests *string
GamblingSimulated *string
GunsOrOtherWeapons *string
MedicalOrTreatmentInformation *string
ProfanityOrCrudeHumor *string
SexualContentGraphicAndNudity *string
SexualContentOrNudity *string
HorrorOrFearThemes *string
MatureOrSuggestiveThemes *string
ViolenceCartoonOrFantasy *string
ViolenceRealistic *string
ViolenceRealisticProlongedGraphicOrSadistic *string
KidsAgeBand *string
AgeRatingOverride *string
AgeRatingOverrideV2 *string
KoreaAgeRatingOverride *string
DeveloperAgeRatingInfoURL *string
}
AgeRatingDeclaration represents age rating attributes for validation.
type AppInfoLocalization ¶
type AppInfoLocalization struct {
ID string
Locale string
Name string
Subtitle string
PrivacyPolicyURL string
PrivacyChoicesURL string
}
AppInfoLocalization represents app info metadata.
type BetaBuildLocalization ¶
BetaBuildLocalization represents a build localization (TestFlight "What to Test").
type BetaReviewDetails ¶
type BetaReviewDetails struct {
ID string
ContactFirstName string
ContactLastName string
ContactEmail string
ContactPhone string
DemoAccountName string
DemoAccountPassword string
DemoAccountRequired bool
Notes string
}
BetaReviewDetails represents TestFlight beta app review details.
type Build ¶
type Build struct {
ID string
Version string
ProcessingState string
Expired bool
UsesNonExemptEncryption *bool
AppEncryptionDeclarationID string
AppEncryptionDeclarationState string
}
Build represents an attached build for a version.
type CheckResult ¶
type CheckResult struct {
ID string `json:"id"`
Severity Severity `json:"severity"`
Message string `json:"message"`
Remediation string `json:"remediation,omitempty"`
Locale string `json:"locale,omitempty"`
Field string `json:"field,omitempty"`
ResourceType string `json:"resourceType,omitempty"`
ResourceID string `json:"resourceId,omitempty"`
}
CheckResult represents a single validation check result.
func PrivacyPublishStateAdvisory ¶
func PrivacyPublishStateAdvisory(appID string) CheckResult
PrivacyPublishStateAdvisory returns a public-only advisory for App Privacy.
type DiagnosticStatus ¶ added in v1.260325.0
type DiagnosticStatus string
DiagnosticStatus captures the state of a subscription diagnostics row.
const ( DiagnosticStatusYes DiagnosticStatus = "yes" DiagnosticStatusNo DiagnosticStatus = "no" DiagnosticStatusUnverified DiagnosticStatus = "unverified" DiagnosticStatusUnknown DiagnosticStatus = "unknown" DiagnosticStatusOptional DiagnosticStatus = "optional" )
type IAPReport ¶
type IAPReport struct {
AppID string `json:"appId"`
IAPCount int `json:"iapCount,omitempty"`
Summary Summary `json:"summary"`
Checks []CheckResult `json:"checks"`
Strict bool `json:"strict,omitempty"`
}
IAPReport is the top-level validate iap output.
func ValidateIAP ¶
ValidateIAP validates IAP review readiness and returns a report.
type Input ¶
type Input struct {
AppID string
AppInfoID string
VersionID string
VersionString string
VersionState string
Platform string
PrimaryLocale string
VersionLocalizations []VersionLocalization
AppInfoLocalizations []AppInfoLocalization
ReviewDetails *ReviewDetails
PrimaryCategoryID string
ContentRightsDeclaration *string
Build *Build
PriceScheduleID string
PricingFetchSkipReason string
AvailabilityID string
AvailableTerritories int
AppAvailableTerritories []string
AvailabilityFetchSkipReason string
PricingCoverageSkipReason string
ScreenshotSets []ScreenshotSet
Subscriptions []Subscription
SubscriptionFetchSkipReason string
IAPs []IAP
IAPFetchSkipReason string
AgeRatingDeclaration *AgeRatingDeclaration
ReleaseType string
EarliestReleaseDate string
Copyright string
}
Input collects the validation inputs.
type MetadataLengthIssue ¶
MetadataLengthIssue describes one over-limit metadata field.
func AppInfoLocalizationLengthIssues ¶
func AppInfoLocalizationLengthIssues(loc AppInfoLocalization) []MetadataLengthIssue
AppInfoLocalizationLengthIssues returns over-limit fields for one app-info localization.
func VersionLocalizationLengthIssues ¶
func VersionLocalizationLengthIssues(loc VersionLocalization) []MetadataLengthIssue
VersionLocalizationLengthIssues returns over-limit fields for one version localization.
type Report ¶
type Report struct {
AppID string `json:"appId"`
VersionID string `json:"versionId"`
VersionString string `json:"versionString,omitempty"`
Platform string `json:"platform,omitempty"`
Summary Summary `json:"summary"`
Checks []CheckResult `json:"checks"`
Strict bool `json:"strict,omitempty"`
}
Report is the top-level validation output.
type ReviewDetails ¶
type ReviewDetails struct {
ID string
ContactFirstName string
ContactLastName string
ContactEmail string
ContactPhone string
DemoAccountName string
DemoAccountPassword string
DemoAccountRequired bool
Notes string
}
ReviewDetails represents App Store review details for a version.
type Screenshot ¶
Screenshot represents a screenshot asset.
type ScreenshotSet ¶
type ScreenshotSet struct {
ID string
DisplayType string
Locale string
LocalizationID string
Screenshots []Screenshot
}
ScreenshotSet represents a screenshot set and its assets.
type Subscription ¶
type Subscription struct {
ID string
Name string
ProductID string
State string
GroupID string
GroupName string
HasImage bool
ImageCheckSkipped bool
ImageCheckSkipReason string
ReviewScreenshotID string
ReviewScreenshotCheckSkipped bool
ReviewScreenshotCheckReason string
AvailabilityID string
AvailabilityTerritories []string
AvailabilityCheckSkipped bool
AvailabilityCheckSkipReason string
// Deep diagnostics (populated when State is MISSING_METADATA).
Localizations []SubscriptionLocalizationInfo
LocalizationCheckSkipped bool
LocalizationCheckSkipReason string
GroupLocalizations []SubscriptionGroupLocalizationInfo
GroupLocalizationCheckSkipped bool
GroupLocalizationCheckReason string
PriceCount int
PriceTerritories []string
PriceCheckSkipped bool
PriceCheckSkipReason string
IntroductoryOfferCount int
IntroductoryOfferCheckSkipped bool
IntroductoryOfferCheckReason string
PromotionalOfferCount int
PromotionalOfferCheckSkipped bool
PromotionalOfferCheckReason string
WinBackOfferCount int
WinBackOfferCheckSkipped bool
WinBackOfferCheckReason string
}
Subscription represents an auto-renewable subscription for review-readiness validation.
type SubscriptionDiagnosticRow ¶ added in v1.260325.0
type SubscriptionDiagnosticRow struct {
Key string `json:"key"`
Label string `json:"label"`
Status DiagnosticStatus `json:"status"`
Source string `json:"source"`
Blocking bool `json:"blocking"`
Evidence string `json:"evidence,omitempty"`
Remediation string `json:"remediation,omitempty"`
}
SubscriptionDiagnosticRow captures a single diagnostics row for a subscription.
type SubscriptionDiagnostics ¶ added in v1.260325.0
type SubscriptionDiagnostics struct {
SubscriptionID string `json:"subscriptionId"`
Name string `json:"name,omitempty"`
ProductID string `json:"productId,omitempty"`
State string `json:"state,omitempty"`
Conclusion string `json:"conclusion"`
Summary string `json:"summary,omitempty"`
Rows []SubscriptionDiagnosticRow `json:"rows"`
}
SubscriptionDiagnostics is the detailed diagnostics output for a subscription.
type SubscriptionGroupLocalizationInfo ¶
SubscriptionGroupLocalizationInfo holds per-locale metadata for a subscription group.
type SubscriptionLocalizationInfo ¶
SubscriptionLocalizationInfo holds per-locale metadata for a subscription.
type SubscriptionsInput ¶
type SubscriptionsInput struct {
AppID string
Subscriptions []Subscription
AvailableTerritories int
AppAvailableTerritories []string
PricingCoverageSkipReason string
AppBuildCount int
BuildCheckSkipped bool
BuildCheckSkipReason string
}
SubscriptionsInput collects subscription validation inputs.
type SubscriptionsReport ¶
type SubscriptionsReport struct {
AppID string `json:"appId"`
SubscriptionCount int `json:"subscriptionCount,omitempty"`
Summary Summary `json:"summary"`
Checks []CheckResult `json:"checks"`
Diagnostics []SubscriptionDiagnostics `json:"diagnostics,omitempty"`
Strict bool `json:"strict,omitempty"`
}
SubscriptionsReport is the top-level validate subscriptions output.
func ValidateSubscriptions ¶
func ValidateSubscriptions(input SubscriptionsInput, strict bool) SubscriptionsReport
ValidateSubscriptions validates subscription review readiness and returns a report.
type Summary ¶
type Summary struct {
Errors int `json:"errors"`
Warnings int `json:"warnings"`
Infos int `json:"infos"`
Blocking int `json:"blocking"`
}
Summary aggregates check counts by severity.
type TestFlightInput ¶
type TestFlightInput struct {
AppID string
AppPrimaryLocale string
BuildID string
Build *Build
BuildAppID string
BetaReviewDetails *BetaReviewDetails
BetaBuildLocalizations []BetaBuildLocalization
}
TestFlightInput collects the TestFlight validation inputs.
type TestFlightReport ¶
type TestFlightReport struct {
AppID string `json:"appId"`
BuildID string `json:"buildId"`
BuildVersion string `json:"buildVersion,omitempty"`
Summary Summary `json:"summary"`
Checks []CheckResult `json:"checks"`
Strict bool `json:"strict,omitempty"`
}
TestFlightReport is the top-level validate testflight output.
func ValidateTestFlight ¶
func ValidateTestFlight(input TestFlightInput, strict bool) TestFlightReport
ValidateTestFlight runs TestFlight validation rules and returns a report.
Source Files
¶
- age_rating.go
- builds.go
- categories.go
- iap.go
- legal.go
- limits.go
- metadata.go
- monetization.go
- pricing_availability.go
- privacy_publish_state.go
- release.go
- report.go
- required_fields.go
- review_details.go
- screenshots.go
- submit_readiness.go
- subscriptions_diagnostics.go
- subscriptions_validate.go
- testflight_report.go
- testflight_types.go
- types.go