fastlane 2.74.0.beta.20180106010004 → 2.74.0.beta.20180107010004
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/cert/lib/cert.rb +3 -17
- data/cert/lib/cert/commands_generator.rb +5 -0
- data/cert/lib/cert/module.rb +14 -0
- data/cert/lib/cert/options.rb +4 -2
- data/cert/lib/cert/runner.rb +7 -0
- data/credentials_manager/lib/credentials_manager.rb +3 -9
- data/credentials_manager/lib/credentials_manager/account_manager.rb +2 -0
- data/credentials_manager/lib/credentials_manager/appfile_config.rb +2 -0
- data/credentials_manager/lib/credentials_manager/cli.rb +2 -0
- data/deliver/lib/deliver.rb +15 -31
- data/deliver/lib/deliver/app_screenshot.rb +2 -0
- data/deliver/lib/deliver/commands_generator.rb +6 -1
- data/deliver/lib/deliver/detect_values.rb +9 -1
- data/deliver/lib/deliver/download_screenshots.rb +2 -0
- data/deliver/lib/deliver/generate_summary.rb +4 -0
- data/deliver/lib/deliver/html_generator.rb +2 -0
- data/deliver/lib/deliver/loader.rb +4 -0
- data/deliver/lib/deliver/module.rb +16 -0
- data/deliver/lib/deliver/options.rb +5 -2
- data/deliver/lib/deliver/runner.rb +14 -1
- data/deliver/lib/deliver/setup.rb +6 -2
- data/deliver/lib/deliver/submit_for_review.rb +2 -0
- data/deliver/lib/deliver/upload_assets.rb +2 -0
- data/deliver/lib/deliver/upload_metadata.rb +4 -0
- data/deliver/lib/deliver/upload_price_tier.rb +2 -0
- data/deliver/lib/deliver/upload_screenshots.rb +6 -0
- data/fastlane/lib/fastlane/actions/slack.rb +16 -11
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +3 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core.rb +42 -77
- data/fastlane_core/lib/fastlane_core/analytics/action_completion_context.rb +2 -0
- data/fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb +2 -1
- data/fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb +4 -0
- data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +3 -1
- data/fastlane_core/lib/fastlane_core/analytics/app_identifier_guesser.rb +3 -3
- data/fastlane_core/lib/fastlane_core/android_package_name_guesser.rb +5 -0
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +4 -0
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +2 -0
- data/fastlane_core/lib/fastlane_core/command_executor.rb +4 -0
- data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +4 -2
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +6 -1
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +5 -3
- data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +3 -0
- data/fastlane_core/lib/fastlane_core/crash_reporter/crash_report_generator.rb +2 -0
- data/fastlane_core/lib/fastlane_core/crash_reporter/crash_reporter.rb +7 -1
- data/fastlane_core/lib/fastlane_core/device_manager.rb +6 -0
- data/fastlane_core/lib/fastlane_core/fastlane_folder.rb +2 -0
- data/fastlane_core/lib/fastlane_core/feature/feature.rb +2 -0
- data/fastlane_core/lib/fastlane_core/features.rb +2 -0
- data/fastlane_core/lib/fastlane_core/helper.rb +5 -1
- data/fastlane_core/lib/fastlane_core/ios_app_identifier_guesser.rb +5 -0
- data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +3 -1
- data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +4 -0
- data/fastlane_core/lib/fastlane_core/itunes_search_api.rb +2 -0
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +3 -0
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +2 -0
- data/fastlane_core/lib/fastlane_core/module.rb +31 -0
- data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +2 -0
- data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +4 -0
- data/fastlane_core/lib/fastlane_core/print_table.rb +3 -0
- data/fastlane_core/lib/fastlane_core/project.rb +3 -0
- data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +2 -0
- data/fastlane_core/lib/fastlane_core/swag.rb +3 -0
- data/fastlane_core/lib/fastlane_core/test_parser.rb +7 -0
- data/fastlane_core/lib/fastlane_core/tool_collector.rb +2 -0
- data/fastlane_core/lib/fastlane_core/ui/errors.rb +1 -0
- data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_common_error.rb +2 -0
- data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_crash.rb +2 -0
- data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_error.rb +2 -0
- data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_shell_error.rb +2 -0
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +10 -1
- data/fastlane_core/lib/fastlane_core/ui/github_issue_inspector_reporter.rb +4 -1
- data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +6 -0
- data/fastlane_core/lib/fastlane_core/ui/interface.rb +3 -0
- data/fastlane_core/lib/fastlane_core/ui/ui.rb +5 -5
- data/fastlane_core/lib/fastlane_core/update_checker/changelog.rb +2 -2
- data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +5 -3
- data/frameit/lib/frameit.rb +0 -40
- data/frameit/lib/frameit/commands_generator.rb +7 -0
- data/frameit/lib/frameit/config_parser.rb +2 -0
- data/frameit/lib/frameit/dependency_checker.rb +2 -0
- data/frameit/lib/frameit/editor.rb +9 -0
- data/frameit/lib/frameit/frame_downloader.rb +5 -0
- data/frameit/lib/frameit/mac_editor.rb +3 -0
- data/frameit/lib/frameit/module.rb +40 -0
- data/frameit/lib/frameit/offsets.rb +3 -0
- data/frameit/lib/frameit/options.rb +4 -0
- data/frameit/lib/frameit/runner.rb +5 -1
- data/frameit/lib/frameit/screenshot.rb +9 -0
- data/frameit/lib/frameit/strings_parser.rb +2 -0
- data/frameit/lib/frameit/template_finder.rb +6 -0
- data/frameit/lib/frameit/trim_box.rb +2 -0
- data/gym/lib/gym.rb +9 -46
- data/gym/lib/gym/code_signing_mapping.rb +2 -0
- data/gym/lib/gym/commands_generator.rb +6 -3
- data/gym/lib/gym/detect_values.rb +4 -1
- data/gym/lib/gym/error_handler.rb +3 -0
- data/gym/lib/gym/generators/build_command_generator.rb +1 -0
- data/gym/lib/gym/generators/package_command_generator.rb +1 -1
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +5 -0
- data/gym/lib/gym/manager.rb +4 -0
- data/gym/lib/gym/module.rb +36 -0
- data/gym/lib/gym/options.rb +3 -2
- data/gym/lib/gym/runner.rb +8 -0
- data/gym/lib/gym/xcode.rb +2 -0
- data/gym/lib/gym/xcodebuild_fixes/generic_archive_fix.rb +3 -0
- data/match/lib/match.rb +12 -37
- data/match/lib/match/change_password.rb +4 -0
- data/match/lib/match/commands_generator.rb +9 -3
- data/match/lib/match/encrypt.rb +4 -0
- data/match/lib/match/generator.rb +7 -2
- data/match/lib/match/git_helper.rb +5 -0
- data/match/lib/match/module.rb +23 -0
- data/match/lib/match/nuke.rb +8 -0
- data/match/lib/match/options.rb +3 -2
- data/match/lib/match/runner.rb +11 -0
- data/match/lib/match/setup.rb +2 -0
- data/match/lib/match/spaceship_ensure.rb +5 -2
- data/match/lib/match/table_printer.rb +6 -0
- data/match/lib/match/utils.rb +3 -0
- data/pem/lib/pem.rb +3 -20
- data/pem/lib/pem/commands_generator.rb +4 -0
- data/pem/lib/pem/manager.rb +3 -0
- data/pem/lib/pem/module.rb +18 -0
- data/pem/lib/pem/options.rb +4 -2
- data/pilot/lib/pilot.rb +1 -14
- data/pilot/lib/pilot/build_manager.rb +6 -0
- data/pilot/lib/pilot/commands_generator.rb +8 -2
- data/pilot/lib/pilot/manager.rb +10 -3
- data/pilot/lib/pilot/module.rb +9 -0
- data/pilot/lib/pilot/options.rb +4 -2
- data/pilot/lib/pilot/tester_exporter.rb +6 -3
- data/pilot/lib/pilot/tester_importer.rb +3 -1
- data/pilot/lib/pilot/tester_manager.rb +6 -5
- data/precheck/lib/precheck.rb +2 -22
- data/precheck/lib/precheck/commands_generator.rb +8 -1
- data/precheck/lib/precheck/module.rb +21 -0
- data/precheck/lib/precheck/options.rb +4 -3
- data/precheck/lib/precheck/rule.rb +7 -4
- data/precheck/lib/precheck/rule_processor.rb +5 -2
- data/precheck/lib/precheck/rules/abstract_text_match_rule.rb +1 -1
- data/precheck/lib/precheck/rules/all.rb +1 -0
- data/precheck/lib/precheck/rules/copyright_date_rule.rb +1 -2
- data/precheck/lib/precheck/rules/curse_words_rule.rb +2 -1
- data/precheck/lib/precheck/rules/custom_text_rule.rb +1 -2
- data/precheck/lib/precheck/rules/free_stuff_iap_rule.rb +1 -2
- data/precheck/lib/precheck/rules/future_functionality_rule.rb +1 -2
- data/precheck/lib/precheck/rules/negative_apple_sentiment_rule.rb +1 -2
- data/precheck/lib/precheck/rules/other_platforms_rule.rb +1 -2
- data/precheck/lib/precheck/rules/placeholder_words_rule.rb +1 -2
- data/precheck/lib/precheck/rules/test_words_rule.rb +1 -2
- data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +3 -1
- data/precheck/lib/precheck/runner.rb +6 -4
- data/produce/lib/produce.rb +6 -21
- data/produce/lib/produce/commands_generator.rb +5 -0
- data/produce/lib/produce/developer_center.rb +1 -0
- data/produce/lib/produce/group.rb +1 -0
- data/produce/lib/produce/itunes_connect.rb +5 -3
- data/produce/lib/produce/manager.rb +4 -0
- data/produce/lib/produce/merchant.rb +1 -0
- data/produce/lib/produce/module.rb +14 -0
- data/produce/lib/produce/options.rb +4 -2
- data/produce/lib/produce/service.rb +3 -0
- data/scan/lib/scan.rb +10 -40
- data/scan/lib/scan/commands_generator.rb +6 -2
- data/scan/lib/scan/detect_values.rb +4 -0
- data/scan/lib/scan/error_handler.rb +2 -0
- data/scan/lib/scan/manager.rb +4 -0
- data/scan/lib/scan/module.rb +32 -0
- data/scan/lib/scan/options.rb +3 -2
- data/scan/lib/scan/runner.rb +9 -0
- data/scan/lib/scan/slack_poster.rb +2 -0
- data/scan/lib/scan/test_command_generator.rb +2 -0
- data/scan/lib/scan/test_result_parser.rb +2 -0
- data/scan/lib/scan/xcpretty_reporter_options_generator.rb +2 -0
- data/screengrab/lib/screengrab.rb +7 -33
- data/screengrab/lib/screengrab/android_environment.rb +2 -0
- data/screengrab/lib/screengrab/commands_generator.rb +8 -0
- data/screengrab/lib/screengrab/dependency_checker.rb +2 -0
- data/screengrab/lib/screengrab/module.rb +24 -0
- data/screengrab/lib/screengrab/options.rb +3 -2
- data/screengrab/lib/screengrab/reports_generator.rb +3 -1
- data/screengrab/lib/screengrab/runner.rb +4 -0
- data/screengrab/lib/screengrab/setup.rb +2 -0
- data/sigh/lib/sigh.rb +4 -19
- data/sigh/lib/sigh/commands_generator.rb +5 -0
- data/sigh/lib/sigh/download_all.rb +5 -0
- data/sigh/lib/sigh/local_manage.rb +5 -0
- data/sigh/lib/sigh/manager.rb +3 -2
- data/sigh/lib/sigh/module.rb +16 -0
- data/sigh/lib/sigh/options.rb +3 -2
- data/sigh/lib/sigh/repair.rb +4 -0
- data/sigh/lib/sigh/resign.rb +3 -0
- data/sigh/lib/sigh/runner.rb +4 -0
- data/snapshot/lib/snapshot.rb +19 -61
- data/snapshot/lib/snapshot/collector.rb +5 -0
- data/snapshot/lib/snapshot/commands_generator.rb +4 -1
- data/snapshot/lib/snapshot/dependency_checker.rb +27 -23
- data/snapshot/lib/snapshot/detect_values.rb +7 -0
- data/snapshot/lib/snapshot/error_handler.rb +2 -0
- data/snapshot/lib/snapshot/fixes/hardware_keyboard_fix.rb +2 -0
- data/snapshot/lib/snapshot/fixes/simulator_zoom_fix.rb +2 -0
- data/snapshot/lib/snapshot/latest_os_version.rb +5 -2
- data/snapshot/lib/snapshot/module.rb +44 -0
- data/snapshot/lib/snapshot/options.rb +11 -2
- data/snapshot/lib/snapshot/reports_generator.rb +4 -2
- data/snapshot/lib/snapshot/reset_simulators.rb +3 -0
- data/snapshot/lib/snapshot/runner.rb +10 -0
- data/snapshot/lib/snapshot/screenshot_flatten.rb +2 -0
- data/snapshot/lib/snapshot/screenshot_rotate.rb +4 -1
- data/snapshot/lib/snapshot/setup.rb +2 -0
- data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +0 -1
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +27 -27
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +8 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_xcode_8.rb +4 -1
- data/snapshot/lib/snapshot/test_command_generator.rb +2 -1
- data/snapshot/lib/snapshot/test_command_generator_base.rb +10 -4
- data/snapshot/lib/snapshot/test_command_generator_xcode_8.rb +3 -1
- data/snapshot/lib/snapshot/update.rb +3 -0
- data/spaceship/lib/spaceship.rb +14 -36
- data/spaceship/lib/spaceship/client.rb +26 -76
- data/spaceship/lib/spaceship/commands_generator.rb +4 -2
- data/spaceship/lib/spaceship/du/du_client.rb +3 -0
- data/spaceship/lib/spaceship/du/upload_file.rb +2 -0
- data/spaceship/lib/spaceship/errors.rb +67 -0
- data/spaceship/lib/spaceship/globals.rb +1 -1
- data/spaceship/lib/spaceship/helper/plist_middleware.rb +1 -1
- data/spaceship/lib/spaceship/helper/rels_middleware.rb +2 -0
- data/spaceship/lib/spaceship/launcher.rb +7 -5
- data/spaceship/lib/spaceship/module.rb +4 -0
- data/spaceship/lib/spaceship/playground.rb +3 -0
- data/spaceship/lib/spaceship/portal/app.rb +3 -0
- data/spaceship/lib/spaceship/portal/app_group.rb +2 -0
- data/spaceship/lib/spaceship/portal/app_service.rb +38 -290
- data/spaceship/lib/spaceship/portal/certificate.rb +3 -1
- data/spaceship/lib/spaceship/portal/device.rb +5 -3
- data/spaceship/lib/spaceship/portal/invite.rb +2 -0
- data/spaceship/lib/spaceship/portal/key.rb +2 -0
- data/spaceship/lib/spaceship/portal/legacy_wrapper.rb +21 -0
- data/spaceship/lib/spaceship/portal/merchant.rb +2 -0
- data/spaceship/lib/spaceship/portal/passbook.rb +2 -0
- data/spaceship/lib/spaceship/portal/person.rb +2 -0
- data/spaceship/lib/spaceship/portal/persons.rb +3 -0
- data/spaceship/lib/spaceship/portal/portal_base.rb +3 -0
- data/spaceship/lib/spaceship/portal/portal_client.rb +37 -23
- data/spaceship/lib/spaceship/portal/provisioning_profile.rb +27 -20
- data/spaceship/lib/spaceship/portal/provisioning_profile_template.rb +2 -0
- data/spaceship/lib/spaceship/portal/spaceship.rb +13 -10
- data/spaceship/lib/spaceship/portal/ui/select_team.rb +2 -0
- data/spaceship/lib/spaceship/portal/website_push.rb +2 -0
- data/spaceship/lib/spaceship/spaceauth_runner.rb +4 -2
- data/spaceship/lib/spaceship/test_flight.rb +0 -1
- data/spaceship/lib/spaceship/test_flight/app_test_info.rb +4 -0
- data/spaceship/lib/spaceship/test_flight/base.rb +22 -17
- data/spaceship/lib/spaceship/test_flight/beta_review_info.rb +2 -0
- data/spaceship/lib/spaceship/test_flight/build.rb +211 -203
- data/spaceship/lib/spaceship/test_flight/build_trains.rb +4 -1
- data/spaceship/lib/spaceship/test_flight/client.rb +255 -251
- data/spaceship/lib/spaceship/test_flight/export_compliance.rb +2 -0
- data/spaceship/lib/spaceship/test_flight/group.rb +2 -0
- data/spaceship/lib/spaceship/test_flight/test_info.rb +2 -0
- data/spaceship/lib/spaceship/test_flight/tester.rb +114 -110
- data/spaceship/lib/spaceship/tunes/app_details.rb +5 -1
- data/spaceship/lib/spaceship/tunes/app_image.rb +2 -0
- data/spaceship/lib/spaceship/tunes/app_ratings.rb +2 -68
- data/spaceship/lib/spaceship/tunes/app_review.rb +55 -0
- data/spaceship/lib/spaceship/tunes/app_screenshot.rb +2 -0
- data/spaceship/lib/spaceship/tunes/app_submission.rb +1 -0
- data/spaceship/lib/spaceship/tunes/app_trailer.rb +2 -0
- data/spaceship/lib/spaceship/tunes/app_version.rb +11 -0
- data/spaceship/lib/spaceship/tunes/app_version_generated_promocodes.rb +2 -0
- data/spaceship/lib/spaceship/tunes/app_version_history.rb +2 -0
- data/spaceship/lib/spaceship/tunes/app_version_promocodes.rb +2 -0
- data/spaceship/lib/spaceship/tunes/app_version_ref.rb +2 -0
- data/spaceship/lib/spaceship/tunes/app_version_states_history.rb +2 -0
- data/spaceship/lib/spaceship/tunes/application.rb +18 -6
- data/spaceship/lib/spaceship/tunes/availability.rb +2 -0
- data/spaceship/lib/spaceship/tunes/build.rb +2 -0
- data/spaceship/lib/spaceship/tunes/build_details.rb +2 -0
- data/spaceship/lib/spaceship/tunes/build_train.rb +5 -1
- data/spaceship/lib/spaceship/tunes/developer_response.rb +23 -0
- data/spaceship/lib/spaceship/tunes/errors.rb +17 -0
- data/spaceship/lib/spaceship/tunes/iap_detail.rb +5 -0
- data/spaceship/lib/spaceship/tunes/iap_families.rb +1 -0
- data/spaceship/lib/spaceship/tunes/iap_family_details.rb +1 -0
- data/spaceship/lib/spaceship/tunes/iap_family_list.rb +1 -0
- data/spaceship/lib/spaceship/tunes/iap_list.rb +3 -0
- data/spaceship/lib/spaceship/tunes/iap_subscription_pricing_info.rb +46 -0
- data/spaceship/lib/spaceship/tunes/iap_subscription_pricing_tier.rb +2 -41
- data/spaceship/lib/spaceship/tunes/language_converter.rb +2 -0
- data/spaceship/lib/spaceship/tunes/legacy_wrapper.rb +13 -0
- data/spaceship/lib/spaceship/tunes/member.rb +3 -0
- data/spaceship/lib/spaceship/tunes/members.rb +2 -0
- data/spaceship/lib/spaceship/tunes/pricing_info.rb +42 -0
- data/spaceship/lib/spaceship/tunes/pricing_tier.rb +2 -37
- data/spaceship/lib/spaceship/tunes/recovery_device.rb +2 -0
- data/spaceship/lib/spaceship/tunes/sandbox_tester.rb +2 -0
- data/spaceship/lib/spaceship/tunes/spaceship.rb +2 -0
- data/spaceship/lib/spaceship/tunes/territory.rb +2 -0
- data/spaceship/lib/spaceship/tunes/transit_app_file.rb +2 -0
- data/spaceship/lib/spaceship/tunes/tunes.rb +34 -39
- data/spaceship/lib/spaceship/tunes/tunes_base.rb +2 -0
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +20 -14
- data/spaceship/lib/spaceship/tunes/user_detail.rb +2 -0
- data/spaceship/lib/spaceship/tunes/version_set.rb +2 -0
- data/spaceship/lib/spaceship/two_step_client.rb +5 -1
- data/spaceship/lib/spaceship/ui.rb +7 -7
- data/supply/lib/supply/options.rb +2 -2
- metadata +31 -6
@@ -1,124 +1,128 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
1
|
+
require_relative 'base'
|
2
|
+
|
3
|
+
module Spaceship
|
4
|
+
module TestFlight
|
5
|
+
class Tester < Base
|
6
|
+
# @return (String) The identifier of this tester, provided by iTunes Connect
|
7
|
+
# @example
|
8
|
+
# "60f858b4-60a8-428a-963a-f943a3d68d17"
|
9
|
+
attr_accessor :tester_id
|
10
|
+
|
11
|
+
# @return (String) The email of this tester
|
12
|
+
# @example
|
13
|
+
# "tester@spaceship.com"
|
14
|
+
attr_accessor :email
|
15
|
+
|
16
|
+
# @return (String) The first name of this tester
|
17
|
+
# @example
|
18
|
+
# "Cary"
|
19
|
+
attr_accessor :first_name
|
20
|
+
|
21
|
+
# @return (String) The last name of this tester
|
22
|
+
# @example
|
23
|
+
# "Bennett"
|
24
|
+
attr_accessor :last_name
|
25
|
+
|
26
|
+
# @return (String)
|
27
|
+
# @example
|
28
|
+
# "invited"
|
29
|
+
# "installed"
|
30
|
+
#
|
31
|
+
attr_accessor :status
|
32
|
+
|
33
|
+
# @return (Integer) Date of the last modification of the status (e.g. invite sent)
|
34
|
+
attr_accessor :status_mod_time
|
35
|
+
|
36
|
+
# @return (Hash)
|
37
|
+
# @example
|
38
|
+
# {
|
39
|
+
# "latestInstalledAppAdamId": "1222374686",
|
40
|
+
# "latestInstalledBuildId": "20739770",
|
41
|
+
# "latestInstalledDate": "1496866405755",
|
42
|
+
# "latestInstalledShortVersion": "1.0",
|
43
|
+
# "latestInstalledVersion": "68"
|
44
|
+
# }
|
45
|
+
attr_accessor :latest_install_info
|
46
|
+
|
47
|
+
attr_accessor :latest_installed_date
|
48
|
+
|
49
|
+
# @return (Integer) Number of sessions
|
50
|
+
attr_accessor :session_count
|
51
|
+
|
52
|
+
attr_accessor :groups
|
53
|
+
|
54
|
+
attr_mapping(
|
55
|
+
'id' => :tester_id,
|
56
|
+
'email' => :email,
|
57
|
+
'status' => :status,
|
58
|
+
'statusModTime' => :status_mod_time,
|
59
|
+
'latestInstallInfo' => :latest_install_info,
|
60
|
+
'sessionCount' => :session_count,
|
61
|
+
'firstName' => :first_name,
|
62
|
+
'lastName' => :last_name,
|
63
|
+
'groups' => :groups
|
64
|
+
)
|
65
|
+
|
66
|
+
def latest_installed_date
|
67
|
+
return nil unless latest_install_info
|
68
|
+
latest_installed_date_value = latest_install_info["latestInstalledDate"]
|
69
|
+
return nil unless latest_installed_date_value
|
70
|
+
|
71
|
+
return latest_installed_date_value.to_i
|
72
|
+
end
|
70
73
|
|
71
|
-
|
72
|
-
|
74
|
+
def pretty_install_date
|
75
|
+
return nil unless latest_installed_date
|
73
76
|
|
74
|
-
|
75
|
-
|
77
|
+
Time.at((latest_installed_date / 1000)).strftime("%m/%d/%y %H:%M")
|
78
|
+
end
|
76
79
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
80
|
+
# @return (Array) Returns all beta testers available for this account
|
81
|
+
def self.all(app_id: nil)
|
82
|
+
client.testers_for_app(app_id: app_id).map { |data| self.new(data) }
|
83
|
+
end
|
81
84
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
85
|
+
# *DEPRECATED: Use `Spaceship::TestFlight::Tester.search` method instead*
|
86
|
+
def self.find(app_id: nil, email: nil)
|
87
|
+
testers = self.search(app_id: app_id, text: email, is_email_exact_match: true)
|
88
|
+
return testers.first
|
89
|
+
end
|
87
90
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
+
def status_mod_time
|
92
|
+
Time.parse(super) if super.to_s.length > 0
|
93
|
+
end
|
91
94
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
95
|
+
# @return (Spaceship::TestFlight::Tester) Returns the testers matching the parameter.
|
96
|
+
# ITC searchs all fields, and is full text. The search results are the union of all words in the search text
|
97
|
+
# @param text (String) (required): Value used to filter the tester, case insensitive
|
98
|
+
def self.search(app_id: nil, text: nil, is_email_exact_match: false)
|
99
|
+
text = text.strip
|
100
|
+
testers_matching_text = client.search_for_tester_in_app(app_id: app_id, text: text).map { |data| self.new(data) }
|
101
|
+
testers_matching_text ||= []
|
102
|
+
if is_email_exact_match
|
103
|
+
text = text.downcase
|
104
|
+
testers_matching_text = testers_matching_text.select do |tester|
|
105
|
+
tester.email.downcase == text
|
106
|
+
end
|
103
107
|
end
|
104
|
-
end
|
105
108
|
|
106
|
-
|
107
|
-
|
109
|
+
return testers_matching_text
|
110
|
+
end
|
108
111
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
112
|
+
def self.create_app_level_tester(app_id: nil, first_name: nil, last_name: nil, email: nil)
|
113
|
+
client.create_app_level_tester(app_id: app_id,
|
114
|
+
first_name: first_name,
|
115
|
+
last_name: last_name,
|
116
|
+
email: email)
|
117
|
+
end
|
115
118
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
+
def remove_from_app!(app_id: nil)
|
120
|
+
client.delete_tester_from_app(app_id: app_id, tester_id: self.tester_id)
|
121
|
+
end
|
119
122
|
|
120
|
-
|
121
|
-
|
123
|
+
def resend_invite(app_id: nil)
|
124
|
+
client.resend_invite_to_external_tester(app_id: app_id, tester_id: self.tester_id)
|
125
|
+
end
|
122
126
|
end
|
123
127
|
end
|
124
128
|
end
|
@@ -1,3 +1,7 @@
|
|
1
|
+
require_relative 'errors'
|
2
|
+
require_relative 'language_item'
|
3
|
+
require_relative 'tunes_base'
|
4
|
+
|
1
5
|
module Spaceship
|
2
6
|
module Tunes
|
3
7
|
class AppDetails < TunesBase
|
@@ -77,7 +81,7 @@ module Spaceship
|
|
77
81
|
# Push all changes that were made back to iTunes Connect
|
78
82
|
def save!
|
79
83
|
client.update_app_details!(application.apple_id, raw_data)
|
80
|
-
rescue Spaceship::
|
84
|
+
rescue Spaceship::Tunes::Error => ex
|
81
85
|
if ex.to_s == "operation_failed"
|
82
86
|
# That's alright, we get this error message if nothing has changed
|
83
87
|
else
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require_relative 'app_review'
|
2
|
+
|
1
3
|
module Spaceship
|
2
4
|
module Tunes
|
3
5
|
# Represents app ratings from iTunesConnect
|
@@ -52,73 +54,5 @@ module Spaceship
|
|
52
54
|
end
|
53
55
|
end
|
54
56
|
end
|
55
|
-
|
56
|
-
class DeveloperResponse < TunesBase
|
57
|
-
attr_reader :id
|
58
|
-
attr_reader :response
|
59
|
-
attr_reader :last_modified
|
60
|
-
attr_reader :hidden
|
61
|
-
attr_reader :state
|
62
|
-
attr_accessor :application
|
63
|
-
attr_accessor :review_id
|
64
|
-
|
65
|
-
attr_mapping({
|
66
|
-
'responseId' => :id,
|
67
|
-
'response' => :response,
|
68
|
-
'lastModified' => :last_modified,
|
69
|
-
'isHidden' => :hidden,
|
70
|
-
'pendingState' => :state
|
71
|
-
})
|
72
|
-
end
|
73
|
-
|
74
|
-
class AppReview < TunesBase
|
75
|
-
attr_accessor :application
|
76
|
-
attr_reader :rating
|
77
|
-
attr_reader :id
|
78
|
-
attr_reader :title
|
79
|
-
attr_reader :review
|
80
|
-
attr_reader :nickname
|
81
|
-
attr_reader :store_front
|
82
|
-
attr_reader :app_version
|
83
|
-
attr_reader :last_modified
|
84
|
-
attr_reader :helpful_views
|
85
|
-
attr_reader :total_views
|
86
|
-
attr_reader :edited
|
87
|
-
attr_reader :raw_developer_response
|
88
|
-
attr_accessor :developer_response
|
89
|
-
|
90
|
-
attr_mapping({
|
91
|
-
'id' => :id,
|
92
|
-
'rating' => :rating,
|
93
|
-
'title' => :title,
|
94
|
-
'review' => :review,
|
95
|
-
'nickname' => :nickname,
|
96
|
-
'storeFront' => :store_front,
|
97
|
-
'appVersionString' => :app_version,
|
98
|
-
'lastModified' => :last_modified,
|
99
|
-
'helpfulViews' => :helpful_views,
|
100
|
-
'totalViews' => :total_views,
|
101
|
-
'edited' => :edited,
|
102
|
-
'developerResponse' => :raw_developer_response
|
103
|
-
})
|
104
|
-
class << self
|
105
|
-
# Create a new object based on a hash.
|
106
|
-
# This is used to create a new object based on the server response.
|
107
|
-
def factory(attrs)
|
108
|
-
obj = self.new(attrs)
|
109
|
-
response_attrs = {}
|
110
|
-
response_attrs = obj.raw_developer_response if obj.raw_developer_response
|
111
|
-
response_attrs[:application] = obj.application
|
112
|
-
response_attrs[:review_id] = obj.id
|
113
|
-
obj.developer_response = DeveloperResponse.factory(response_attrs)
|
114
|
-
return obj
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
def responded?
|
119
|
-
return true if raw_developer_response
|
120
|
-
false
|
121
|
-
end
|
122
|
-
end
|
123
57
|
end
|
124
58
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require_relative 'developer_response'
|
2
|
+
|
3
|
+
module Spaceship
|
4
|
+
module Tunes
|
5
|
+
class AppReview < TunesBase
|
6
|
+
attr_accessor :application
|
7
|
+
attr_reader :rating
|
8
|
+
attr_reader :id
|
9
|
+
attr_reader :title
|
10
|
+
attr_reader :review
|
11
|
+
attr_reader :nickname
|
12
|
+
attr_reader :store_front
|
13
|
+
attr_reader :app_version
|
14
|
+
attr_reader :last_modified
|
15
|
+
attr_reader :helpful_views
|
16
|
+
attr_reader :total_views
|
17
|
+
attr_reader :edited
|
18
|
+
attr_reader :raw_developer_response
|
19
|
+
attr_accessor :developer_response
|
20
|
+
|
21
|
+
attr_mapping({
|
22
|
+
'id' => :id,
|
23
|
+
'rating' => :rating,
|
24
|
+
'title' => :title,
|
25
|
+
'review' => :review,
|
26
|
+
'nickname' => :nickname,
|
27
|
+
'storeFront' => :store_front,
|
28
|
+
'appVersionString' => :app_version,
|
29
|
+
'lastModified' => :last_modified,
|
30
|
+
'helpfulViews' => :helpful_views,
|
31
|
+
'totalViews' => :total_views,
|
32
|
+
'edited' => :edited,
|
33
|
+
'developerResponse' => :raw_developer_response
|
34
|
+
})
|
35
|
+
class << self
|
36
|
+
# Create a new object based on a hash.
|
37
|
+
# This is used to create a new object based on the server response.
|
38
|
+
def factory(attrs)
|
39
|
+
obj = self.new(attrs)
|
40
|
+
response_attrs = {}
|
41
|
+
response_attrs = obj.raw_developer_response if obj.raw_developer_response
|
42
|
+
response_attrs[:application] = obj.application
|
43
|
+
response_attrs[:review_id] = obj.id
|
44
|
+
obj.developer_response = DeveloperResponse.factory(response_attrs)
|
45
|
+
return obj
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def responded?
|
50
|
+
return true if raw_developer_response
|
51
|
+
false
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -1,3 +1,14 @@
|
|
1
|
+
require_relative 'tunes_client'
|
2
|
+
require_relative 'app_trailer'
|
3
|
+
require_relative 'app_screenshot'
|
4
|
+
require_relative 'app_image'
|
5
|
+
require_relative 'device_type'
|
6
|
+
require_relative 'app_version_generated_promocodes'
|
7
|
+
require_relative 'language_item'
|
8
|
+
require_relative 'transit_app_file'
|
9
|
+
require_relative 'build'
|
10
|
+
require_relative 'app_status'
|
11
|
+
|
1
12
|
module Spaceship
|
2
13
|
module Tunes
|
3
14
|
# Represents an editable version of an iTunes Connect Application
|