protocol DeliverfileProtocol: class { /// Your Apple ID Username var username: String { get } /// The bundle identifier of your app var appIdentifier: String? { get } /// The version that should be edited or created var appVersion: String? { get } /// Path to your ipa file var ipa: String? { get } /// Path to your pkg file var pkg: String? { get } /// If set the given build number (already uploaded to iTC) will be used instead of the current built one var buildNumber: String? { get } /// The platform to use (optional) var platform: String { get } /// Modify live metadata, this option disables ipa upload and screenshot upload var editLive: Bool { get } /// Force usage of live version rather than edit version var useLiveVersion: Bool { get } /// Path to the folder containing the metadata files var metadataPath: String? { get } /// Path to the folder containing the screenshots var screenshotsPath: String? { get } /// Skip uploading an ipa or pkg to App Store Connect var skipBinaryUpload: Bool { get } /// Don't upload the screenshots var skipScreenshots: Bool { get } /// Don't upload the metadata (e.g. title, description). This will still upload screenshots var skipMetadata: Bool { get } /// Don't update app version for submission var skipAppVersionUpdate: Bool { get } /// Skip the HTML report file verification var force: Bool { get } /// Clear all previously uploaded screenshots before uploading the new ones var overwriteScreenshots: Bool { get } /// Submit the new version for Review after uploading everything var submitForReview: Bool { get } /// Rejects the previously submitted build if it's in a state where it's possible var rejectIfPossible: Bool { get } /// Should the app be automatically released once it's approved? (Can not be used together with `auto_release_date`) var automaticRelease: Bool { get } /// Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`) var autoReleaseDate: String? { get } /// Enable the phased release feature of iTC var phasedRelease: Bool { get } /// Reset the summary rating when you release a new version of the application var resetRatings: Bool { get } /// The price tier of this application var priceTier: String? { get } /// Path to the app rating's config var appRatingConfigPath: String? { get } /// Extra information for the submission (e.g. compliance specifications, IDFA settings) var submissionInformation: String? { get } /// The ID of your App Store Connect team if you're in multiple teams var teamId: String? { get } /// The name of your App Store Connect team if you're in multiple teams var teamName: String? { get } /// The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID! var devPortalTeamId: String? { get } /// The name of your Developer Portal team if you're in multiple teams var devPortalTeamName: String? { get } /// The provider short name to be used with the iTMSTransporter to identify your team. This value will override the automatically detected provider short name. To get provider short name run `pathToXcode.app/Contents/Applications/Application\ Loader.app/Contents/itms/bin/iTMSTransporter -m provider -u 'USERNAME' -p 'PASSWORD' -account_type itunes_connect -v off`. The short names of providers should be listed in the second column var itcProvider: String? { get } /// Run precheck before submitting to app review var runPrecheckBeforeSubmit: Bool { get } /// The default precheck rule level unless otherwise configured var precheckDefaultRuleLevel: String { get } /// An array of localized metadata items to upload individually by language so that errors can be identified. E.g. ['name', 'keywords', 'description']. Note: slow var individualMetadataItems: [String] { get } /// Metadata: The path to the app icon var appIcon: String? { get } /// Metadata: The path to the Apple Watch app icon var appleWatchAppIcon: String? { get } /// Metadata: The copyright notice var copyright: String? { get } /// Metadata: The english name of the primary category (e.g. `Business`, `Books`) var primaryCategory: String? { get } /// Metadata: The english name of the secondary category (e.g. `Business`, `Books`) var secondaryCategory: String? { get } /// Metadata: The english name of the primary first sub category (e.g. `Educational`, `Puzzle`) var primaryFirstSubCategory: String? { get } /// Metadata: The english name of the primary second sub category (e.g. `Educational`, `Puzzle`) var primarySecondSubCategory: String? { get } /// Metadata: The english name of the secondary first sub category (e.g. `Educational`, `Puzzle`) var secondaryFirstSubCategory: String? { get } /// Metadata: The english name of the secondary second sub category (e.g. `Educational`, `Puzzle`) var secondarySecondSubCategory: String? { get } /// Metadata: A hash containing the trade representative contact information var tradeRepresentativeContactInformation: [String : Any]? { get } /// Metadata: A hash containing the review information var appReviewInformation: [String : Any]? { get } /// Metadata: Path to the app review attachment file var appReviewAttachmentFile: String? { get } /// Metadata: The localised app description var description: String? { get } /// Metadata: The localised app name var name: String? { get } /// Metadata: The localised app subtitle var subtitle: [String : Any]? { get } /// Metadata: An array of localised keywords var keywords: [String : Any]? { get } /// Metadata: An array of localised promotional texts var promotionalText: [String : Any]? { get } /// Metadata: Localised release notes for this version var releaseNotes: String? { get } /// Metadata: Localised privacy url var privacyUrl: String? { get } /// Metadata: Localised Apple TV privacy policy text var appleTvPrivacyPolicy: String? { get } /// Metadata: Localised support url var supportUrl: String? { get } /// Metadata: Localised marketing url var marketingUrl: String? { get } /// Metadata: List of languages to activate var languages: [String]? { get } /// Ignore errors when invalid languages are found in metadata and screenshot directories var ignoreLanguageDirectoryValidation: Bool { get } /// Should precheck check in-app purchases? var precheckIncludeInAppPurchases: Bool { get } /// The (spaceship) app ID of the app you want to use/modify var app: String { get } } extension DeliverfileProtocol { var username: String { return "" } var appIdentifier: String? { return nil } var appVersion: String? { return nil } var ipa: String? { return nil } var pkg: String? { return nil } var buildNumber: String? { return nil } var platform: String { return "ios" } var editLive: Bool { return false } var useLiveVersion: Bool { return false } var metadataPath: String? { return nil } var screenshotsPath: String? { return nil } var skipBinaryUpload: Bool { return false } var skipScreenshots: Bool { return false } var skipMetadata: Bool { return false } var skipAppVersionUpdate: Bool { return false } var force: Bool { return false } var overwriteScreenshots: Bool { return false } var submitForReview: Bool { return false } var rejectIfPossible: Bool { return false } var automaticRelease: Bool { return false } var autoReleaseDate: String? { return nil } var phasedRelease: Bool { return false } var resetRatings: Bool { return false } var priceTier: String? { return nil } var appRatingConfigPath: String? { return nil } var submissionInformation: String? { return nil } var teamId: String? { return nil } var teamName: String? { return nil } var devPortalTeamId: String? { return nil } var devPortalTeamName: String? { return nil } var itcProvider: String? { return nil } var runPrecheckBeforeSubmit: Bool { return true } var precheckDefaultRuleLevel: String { return "warn" } var individualMetadataItems: [String] { return [] } var appIcon: String? { return nil } var appleWatchAppIcon: String? { return nil } var copyright: String? { return nil } var primaryCategory: String? { return nil } var secondaryCategory: String? { return nil } var primaryFirstSubCategory: String? { return nil } var primarySecondSubCategory: String? { return nil } var secondaryFirstSubCategory: String? { return nil } var secondarySecondSubCategory: String? { return nil } var tradeRepresentativeContactInformation: [String : Any]? { return nil } var appReviewInformation: [String : Any]? { return nil } var appReviewAttachmentFile: String? { return nil } var description: String? { return nil } var name: String? { return nil } var subtitle: [String : Any]? { return nil } var keywords: [String : Any]? { return nil } var promotionalText: [String : Any]? { return nil } var releaseNotes: String? { return nil } var privacyUrl: String? { return nil } var appleTvPrivacyPolicy: String? { return nil } var supportUrl: String? { return nil } var marketingUrl: String? { return nil } var languages: [String]? { return nil } var ignoreLanguageDirectoryValidation: Bool { return false } var precheckIncludeInAppPurchases: Bool { return true } var app: String { return "" } } // Please don't remove the lines below // They are used to detect outdated files // FastlaneRunnerAPIVersion [0.9.19]