deliver/lib/deliver/submit_for_review.rb in fastlane-2.150.0.rc1 vs deliver/lib/deliver/submit_for_review.rb in fastlane-2.150.0.rc2
- old
+ new
@@ -59,60 +59,84 @@
def update_export_compliance(options, app, build)
submission_information = options[:submission_information] || {}
uses_encryption = submission_information[:export_compliance_uses_encryption]
- UI.verbose("Updating build for export compliance status of '#{uses_encryption}'")
if build.uses_non_exempt_encryption.nil?
+ UI.verbose("Updating build for export compliance status of '#{uses_encryption}'")
+
+ if uses_encryption.to_s.empty?
+ message = [
+ "Export compliance is required to submit",
+ "Add information to the :submission_information option...",
+ " Docs: http://docs.fastlane.tools/actions/deliver/#compliance-and-idfa-settings",
+ " Example: submission_information: { export_compliance_uses_encryption: false }",
+ "This can also be set in your Info.plist with key 'ITSAppUsesNonExemptEncryption'"
+ ].join("\n")
+ UI.user_error!(message)
+ end
+
build = build.update(attributes: {
usesNonExemptEncryption: uses_encryption
})
+
+ UI.verbose("Successfully updated build for export compliance status of '#{build.uses_non_exempt_encryption}' on App Store Connect")
end
- UI.verbose("Updated build for export compliance status of '#{build.uses_non_exempt_encryption}'")
end
def update_idfa(options, app, version)
submission_information = options[:submission_information] || {}
- return unless submission_information.include?(:add_id_info_uses_idfa)
-
uses_idfa = submission_information[:add_id_info_uses_idfa]
+
idfa_declaration = begin
version.fetch_idfa_declaration
rescue
nil
end
+ # Set IDFA on version
UI.verbose("Updating app store version for IDFA status of '#{uses_idfa}'")
- version = version.update(attributes: {
- usesIdfa: uses_idfa
- })
+ unless uses_idfa.nil?
+ version = version.update(attributes: {
+ usesIdfa: uses_idfa
+ })
+ end
UI.verbose("Updated app store version for IDFA status of '#{version.uses_idfa}'")
+ # Error if uses_idfa not set
+ if version.uses_idfa.nil?
+ message = [
+ "Use of Advertising Identifier (IDFA) is required to submit",
+ "Add information to the :submission_information option...",
+ " Docs: http://docs.fastlane.tools/actions/deliver/#compliance-and-idfa-settings",
+ " Example: submission_information: { add_id_info_uses_idfa: false }",
+ " Example: submission_information: {",
+ " add_id_info_uses_idfa: true,",
+ " add_id_info_limits_tracking: false,",
+ " add_id_info_serves_ads: false,",
+ " add_id_info_uses_idfa: false,",
+ " add_id_info_tracks_install: false",
+ " }"
+ ].join("\n")
+ UI.user_error!(message)
+ end
+
+ # Create, update, or delete IDFA declaration
if uses_idfa == false
if idfa_declaration
UI.verbose("Deleting IDFA delcaration")
idfa_declaration.delete!
UI.verbose("Deleted IDFA delcaration")
end
- else
- attributes = {}
- if submission_information.include?(:add_id_info_limits_tracking)
- attributes[:honorsLimitedAdTracking] = submission_information[:add_id_info_limits_tracking]
- end
+ elsif uses_idfa == true
+ attributes = {
+ honorsLimitedAdTracking: !!submission_information[:add_id_info_limits_tracking],
+ servesAds: !!submission_information[:add_id_info_serves_ads],
+ attributesAppInstallationToPreviousAd: !!submission_information[:add_id_info_tracks_install],
+ attributesActionWithPreviousAd: !!submission_information[:add_id_info_tracks_action]
+ }
- if submission_information.include?(:add_id_info_serves_ads)
- attributes[:servesAds] = submission_information[:add_id_info_serves_ads]
- end
-
- if submission_information.include?(:add_id_info_tracks_install)
- attributes[:attributesAppInstallationToPreviousAd] = submission_information[:add_id_info_tracks_install]
- end
-
- if submission_information.include?(:add_id_info_tracks_action)
- attributes[:attributesActionWithPreviousAd] = submission_information[:add_id_info_tracks_action]
- end
-
if idfa_declaration
UI.verbose("Updating IDFA delcaration")
idfa_declaration.update(attributes: attributes)
UI.verbose("Updated IDFA delcaration")
else
@@ -120,25 +144,29 @@
version.create_idfa_declaration(attributes: attributes)
UI.verbose("Created IDFA delcaration")
end
end
- UI.success("Successfully updated IDFA delcarations")
+ UI.success("Successfully updated IDFA delcarations on App Store Connect")
end
def update_submission_information(options, app)
submission_information = options[:submission_information] || {}
- if submission_information.include?(:content_rights_contains_third_party_content)
- value = if submission_information[:content_rights_contains_third_party_content]
+
+ content_rights = submission_information[:content_rights_contains_third_party_content]
+
+ unless content_rights.nil?
+ value = if content_rights
Spaceship::ConnectAPI::App::ContentRightsDeclaration::USES_THIRD_PARTY_CONTENT
else
Spaceship::ConnectAPI::App::ContentRightsDeclaration::DOES_NOT_USE_THIRD_PARTY_CONTENT
end
- UI.success("Updating contents rights declaration on App Store Connect")
+ UI.verbose("Updating contents rights declaration on App Store Connect")
app.update(attributes: {
contentRightsDeclaration: value
})
+ UI.success("Successfully updated contents rights declaration on App Store Connect")
end
end
def wait_for_build_processing_to_be_complete(app: nil, platform: nil, options: nil)
app_version = options[:app_version]