fastlane 2.74.0.beta.20180106010004 → 2.74.0.beta.20180107010004

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. checksums.yaml +4 -4
  2. data/cert/lib/cert.rb +3 -17
  3. data/cert/lib/cert/commands_generator.rb +5 -0
  4. data/cert/lib/cert/module.rb +14 -0
  5. data/cert/lib/cert/options.rb +4 -2
  6. data/cert/lib/cert/runner.rb +7 -0
  7. data/credentials_manager/lib/credentials_manager.rb +3 -9
  8. data/credentials_manager/lib/credentials_manager/account_manager.rb +2 -0
  9. data/credentials_manager/lib/credentials_manager/appfile_config.rb +2 -0
  10. data/credentials_manager/lib/credentials_manager/cli.rb +2 -0
  11. data/deliver/lib/deliver.rb +15 -31
  12. data/deliver/lib/deliver/app_screenshot.rb +2 -0
  13. data/deliver/lib/deliver/commands_generator.rb +6 -1
  14. data/deliver/lib/deliver/detect_values.rb +9 -1
  15. data/deliver/lib/deliver/download_screenshots.rb +2 -0
  16. data/deliver/lib/deliver/generate_summary.rb +4 -0
  17. data/deliver/lib/deliver/html_generator.rb +2 -0
  18. data/deliver/lib/deliver/loader.rb +4 -0
  19. data/deliver/lib/deliver/module.rb +16 -0
  20. data/deliver/lib/deliver/options.rb +5 -2
  21. data/deliver/lib/deliver/runner.rb +14 -1
  22. data/deliver/lib/deliver/setup.rb +6 -2
  23. data/deliver/lib/deliver/submit_for_review.rb +2 -0
  24. data/deliver/lib/deliver/upload_assets.rb +2 -0
  25. data/deliver/lib/deliver/upload_metadata.rb +4 -0
  26. data/deliver/lib/deliver/upload_price_tier.rb +2 -0
  27. data/deliver/lib/deliver/upload_screenshots.rb +6 -0
  28. data/fastlane/lib/fastlane/actions/slack.rb +16 -11
  29. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +3 -0
  30. data/fastlane/lib/fastlane/version.rb +1 -1
  31. data/fastlane_core/lib/fastlane_core.rb +42 -77
  32. data/fastlane_core/lib/fastlane_core/analytics/action_completion_context.rb +2 -0
  33. data/fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb +2 -1
  34. data/fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb +4 -0
  35. data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +3 -1
  36. data/fastlane_core/lib/fastlane_core/analytics/app_identifier_guesser.rb +3 -3
  37. data/fastlane_core/lib/fastlane_core/android_package_name_guesser.rb +5 -0
  38. data/fastlane_core/lib/fastlane_core/build_watcher.rb +4 -0
  39. data/fastlane_core/lib/fastlane_core/cert_checker.rb +2 -0
  40. data/fastlane_core/lib/fastlane_core/command_executor.rb +4 -0
  41. data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +4 -2
  42. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +6 -1
  43. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +5 -3
  44. data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +3 -0
  45. data/fastlane_core/lib/fastlane_core/crash_reporter/crash_report_generator.rb +2 -0
  46. data/fastlane_core/lib/fastlane_core/crash_reporter/crash_reporter.rb +7 -1
  47. data/fastlane_core/lib/fastlane_core/device_manager.rb +6 -0
  48. data/fastlane_core/lib/fastlane_core/fastlane_folder.rb +2 -0
  49. data/fastlane_core/lib/fastlane_core/feature/feature.rb +2 -0
  50. data/fastlane_core/lib/fastlane_core/features.rb +2 -0
  51. data/fastlane_core/lib/fastlane_core/helper.rb +5 -1
  52. data/fastlane_core/lib/fastlane_core/ios_app_identifier_guesser.rb +5 -0
  53. data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +3 -1
  54. data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +4 -0
  55. data/fastlane_core/lib/fastlane_core/itunes_search_api.rb +2 -0
  56. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +3 -0
  57. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +2 -0
  58. data/fastlane_core/lib/fastlane_core/module.rb +31 -0
  59. data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +2 -0
  60. data/fastlane_core/lib/fastlane_core/pkg_upload_package_builder.rb +4 -0
  61. data/fastlane_core/lib/fastlane_core/print_table.rb +3 -0
  62. data/fastlane_core/lib/fastlane_core/project.rb +3 -0
  63. data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +2 -0
  64. data/fastlane_core/lib/fastlane_core/swag.rb +3 -0
  65. data/fastlane_core/lib/fastlane_core/test_parser.rb +7 -0
  66. data/fastlane_core/lib/fastlane_core/tool_collector.rb +2 -0
  67. data/fastlane_core/lib/fastlane_core/ui/errors.rb +1 -0
  68. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_common_error.rb +2 -0
  69. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_crash.rb +2 -0
  70. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_error.rb +2 -0
  71. data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_shell_error.rb +2 -0
  72. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +10 -1
  73. data/fastlane_core/lib/fastlane_core/ui/github_issue_inspector_reporter.rb +4 -1
  74. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +6 -0
  75. data/fastlane_core/lib/fastlane_core/ui/interface.rb +3 -0
  76. data/fastlane_core/lib/fastlane_core/ui/ui.rb +5 -5
  77. data/fastlane_core/lib/fastlane_core/update_checker/changelog.rb +2 -2
  78. data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +5 -3
  79. data/frameit/lib/frameit.rb +0 -40
  80. data/frameit/lib/frameit/commands_generator.rb +7 -0
  81. data/frameit/lib/frameit/config_parser.rb +2 -0
  82. data/frameit/lib/frameit/dependency_checker.rb +2 -0
  83. data/frameit/lib/frameit/editor.rb +9 -0
  84. data/frameit/lib/frameit/frame_downloader.rb +5 -0
  85. data/frameit/lib/frameit/mac_editor.rb +3 -0
  86. data/frameit/lib/frameit/module.rb +40 -0
  87. data/frameit/lib/frameit/offsets.rb +3 -0
  88. data/frameit/lib/frameit/options.rb +4 -0
  89. data/frameit/lib/frameit/runner.rb +5 -1
  90. data/frameit/lib/frameit/screenshot.rb +9 -0
  91. data/frameit/lib/frameit/strings_parser.rb +2 -0
  92. data/frameit/lib/frameit/template_finder.rb +6 -0
  93. data/frameit/lib/frameit/trim_box.rb +2 -0
  94. data/gym/lib/gym.rb +9 -46
  95. data/gym/lib/gym/code_signing_mapping.rb +2 -0
  96. data/gym/lib/gym/commands_generator.rb +6 -3
  97. data/gym/lib/gym/detect_values.rb +4 -1
  98. data/gym/lib/gym/error_handler.rb +3 -0
  99. data/gym/lib/gym/generators/build_command_generator.rb +1 -0
  100. data/gym/lib/gym/generators/package_command_generator.rb +1 -1
  101. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +5 -0
  102. data/gym/lib/gym/manager.rb +4 -0
  103. data/gym/lib/gym/module.rb +36 -0
  104. data/gym/lib/gym/options.rb +3 -2
  105. data/gym/lib/gym/runner.rb +8 -0
  106. data/gym/lib/gym/xcode.rb +2 -0
  107. data/gym/lib/gym/xcodebuild_fixes/generic_archive_fix.rb +3 -0
  108. data/match/lib/match.rb +12 -37
  109. data/match/lib/match/change_password.rb +4 -0
  110. data/match/lib/match/commands_generator.rb +9 -3
  111. data/match/lib/match/encrypt.rb +4 -0
  112. data/match/lib/match/generator.rb +7 -2
  113. data/match/lib/match/git_helper.rb +5 -0
  114. data/match/lib/match/module.rb +23 -0
  115. data/match/lib/match/nuke.rb +8 -0
  116. data/match/lib/match/options.rb +3 -2
  117. data/match/lib/match/runner.rb +11 -0
  118. data/match/lib/match/setup.rb +2 -0
  119. data/match/lib/match/spaceship_ensure.rb +5 -2
  120. data/match/lib/match/table_printer.rb +6 -0
  121. data/match/lib/match/utils.rb +3 -0
  122. data/pem/lib/pem.rb +3 -20
  123. data/pem/lib/pem/commands_generator.rb +4 -0
  124. data/pem/lib/pem/manager.rb +3 -0
  125. data/pem/lib/pem/module.rb +18 -0
  126. data/pem/lib/pem/options.rb +4 -2
  127. data/pilot/lib/pilot.rb +1 -14
  128. data/pilot/lib/pilot/build_manager.rb +6 -0
  129. data/pilot/lib/pilot/commands_generator.rb +8 -2
  130. data/pilot/lib/pilot/manager.rb +10 -3
  131. data/pilot/lib/pilot/module.rb +9 -0
  132. data/pilot/lib/pilot/options.rb +4 -2
  133. data/pilot/lib/pilot/tester_exporter.rb +6 -3
  134. data/pilot/lib/pilot/tester_importer.rb +3 -1
  135. data/pilot/lib/pilot/tester_manager.rb +6 -5
  136. data/precheck/lib/precheck.rb +2 -22
  137. data/precheck/lib/precheck/commands_generator.rb +8 -1
  138. data/precheck/lib/precheck/module.rb +21 -0
  139. data/precheck/lib/precheck/options.rb +4 -3
  140. data/precheck/lib/precheck/rule.rb +7 -4
  141. data/precheck/lib/precheck/rule_processor.rb +5 -2
  142. data/precheck/lib/precheck/rules/abstract_text_match_rule.rb +1 -1
  143. data/precheck/lib/precheck/rules/all.rb +1 -0
  144. data/precheck/lib/precheck/rules/copyright_date_rule.rb +1 -2
  145. data/precheck/lib/precheck/rules/curse_words_rule.rb +2 -1
  146. data/precheck/lib/precheck/rules/custom_text_rule.rb +1 -2
  147. data/precheck/lib/precheck/rules/free_stuff_iap_rule.rb +1 -2
  148. data/precheck/lib/precheck/rules/future_functionality_rule.rb +1 -2
  149. data/precheck/lib/precheck/rules/negative_apple_sentiment_rule.rb +1 -2
  150. data/precheck/lib/precheck/rules/other_platforms_rule.rb +1 -2
  151. data/precheck/lib/precheck/rules/placeholder_words_rule.rb +1 -2
  152. data/precheck/lib/precheck/rules/test_words_rule.rb +1 -2
  153. data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +3 -1
  154. data/precheck/lib/precheck/runner.rb +6 -4
  155. data/produce/lib/produce.rb +6 -21
  156. data/produce/lib/produce/commands_generator.rb +5 -0
  157. data/produce/lib/produce/developer_center.rb +1 -0
  158. data/produce/lib/produce/group.rb +1 -0
  159. data/produce/lib/produce/itunes_connect.rb +5 -3
  160. data/produce/lib/produce/manager.rb +4 -0
  161. data/produce/lib/produce/merchant.rb +1 -0
  162. data/produce/lib/produce/module.rb +14 -0
  163. data/produce/lib/produce/options.rb +4 -2
  164. data/produce/lib/produce/service.rb +3 -0
  165. data/scan/lib/scan.rb +10 -40
  166. data/scan/lib/scan/commands_generator.rb +6 -2
  167. data/scan/lib/scan/detect_values.rb +4 -0
  168. data/scan/lib/scan/error_handler.rb +2 -0
  169. data/scan/lib/scan/manager.rb +4 -0
  170. data/scan/lib/scan/module.rb +32 -0
  171. data/scan/lib/scan/options.rb +3 -2
  172. data/scan/lib/scan/runner.rb +9 -0
  173. data/scan/lib/scan/slack_poster.rb +2 -0
  174. data/scan/lib/scan/test_command_generator.rb +2 -0
  175. data/scan/lib/scan/test_result_parser.rb +2 -0
  176. data/scan/lib/scan/xcpretty_reporter_options_generator.rb +2 -0
  177. data/screengrab/lib/screengrab.rb +7 -33
  178. data/screengrab/lib/screengrab/android_environment.rb +2 -0
  179. data/screengrab/lib/screengrab/commands_generator.rb +8 -0
  180. data/screengrab/lib/screengrab/dependency_checker.rb +2 -0
  181. data/screengrab/lib/screengrab/module.rb +24 -0
  182. data/screengrab/lib/screengrab/options.rb +3 -2
  183. data/screengrab/lib/screengrab/reports_generator.rb +3 -1
  184. data/screengrab/lib/screengrab/runner.rb +4 -0
  185. data/screengrab/lib/screengrab/setup.rb +2 -0
  186. data/sigh/lib/sigh.rb +4 -19
  187. data/sigh/lib/sigh/commands_generator.rb +5 -0
  188. data/sigh/lib/sigh/download_all.rb +5 -0
  189. data/sigh/lib/sigh/local_manage.rb +5 -0
  190. data/sigh/lib/sigh/manager.rb +3 -2
  191. data/sigh/lib/sigh/module.rb +16 -0
  192. data/sigh/lib/sigh/options.rb +3 -2
  193. data/sigh/lib/sigh/repair.rb +4 -0
  194. data/sigh/lib/sigh/resign.rb +3 -0
  195. data/sigh/lib/sigh/runner.rb +4 -0
  196. data/snapshot/lib/snapshot.rb +19 -61
  197. data/snapshot/lib/snapshot/collector.rb +5 -0
  198. data/snapshot/lib/snapshot/commands_generator.rb +4 -1
  199. data/snapshot/lib/snapshot/dependency_checker.rb +27 -23
  200. data/snapshot/lib/snapshot/detect_values.rb +7 -0
  201. data/snapshot/lib/snapshot/error_handler.rb +2 -0
  202. data/snapshot/lib/snapshot/fixes/hardware_keyboard_fix.rb +2 -0
  203. data/snapshot/lib/snapshot/fixes/simulator_zoom_fix.rb +2 -0
  204. data/snapshot/lib/snapshot/latest_os_version.rb +5 -2
  205. data/snapshot/lib/snapshot/module.rb +44 -0
  206. data/snapshot/lib/snapshot/options.rb +11 -2
  207. data/snapshot/lib/snapshot/reports_generator.rb +4 -2
  208. data/snapshot/lib/snapshot/reset_simulators.rb +3 -0
  209. data/snapshot/lib/snapshot/runner.rb +10 -0
  210. data/snapshot/lib/snapshot/screenshot_flatten.rb +2 -0
  211. data/snapshot/lib/snapshot/screenshot_rotate.rb +4 -1
  212. data/snapshot/lib/snapshot/setup.rb +2 -0
  213. data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +0 -1
  214. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +27 -27
  215. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +8 -0
  216. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_xcode_8.rb +4 -1
  217. data/snapshot/lib/snapshot/test_command_generator.rb +2 -1
  218. data/snapshot/lib/snapshot/test_command_generator_base.rb +10 -4
  219. data/snapshot/lib/snapshot/test_command_generator_xcode_8.rb +3 -1
  220. data/snapshot/lib/snapshot/update.rb +3 -0
  221. data/spaceship/lib/spaceship.rb +14 -36
  222. data/spaceship/lib/spaceship/client.rb +26 -76
  223. data/spaceship/lib/spaceship/commands_generator.rb +4 -2
  224. data/spaceship/lib/spaceship/du/du_client.rb +3 -0
  225. data/spaceship/lib/spaceship/du/upload_file.rb +2 -0
  226. data/spaceship/lib/spaceship/errors.rb +67 -0
  227. data/spaceship/lib/spaceship/globals.rb +1 -1
  228. data/spaceship/lib/spaceship/helper/plist_middleware.rb +1 -1
  229. data/spaceship/lib/spaceship/helper/rels_middleware.rb +2 -0
  230. data/spaceship/lib/spaceship/launcher.rb +7 -5
  231. data/spaceship/lib/spaceship/module.rb +4 -0
  232. data/spaceship/lib/spaceship/playground.rb +3 -0
  233. data/spaceship/lib/spaceship/portal/app.rb +3 -0
  234. data/spaceship/lib/spaceship/portal/app_group.rb +2 -0
  235. data/spaceship/lib/spaceship/portal/app_service.rb +38 -290
  236. data/spaceship/lib/spaceship/portal/certificate.rb +3 -1
  237. data/spaceship/lib/spaceship/portal/device.rb +5 -3
  238. data/spaceship/lib/spaceship/portal/invite.rb +2 -0
  239. data/spaceship/lib/spaceship/portal/key.rb +2 -0
  240. data/spaceship/lib/spaceship/portal/legacy_wrapper.rb +21 -0
  241. data/spaceship/lib/spaceship/portal/merchant.rb +2 -0
  242. data/spaceship/lib/spaceship/portal/passbook.rb +2 -0
  243. data/spaceship/lib/spaceship/portal/person.rb +2 -0
  244. data/spaceship/lib/spaceship/portal/persons.rb +3 -0
  245. data/spaceship/lib/spaceship/portal/portal_base.rb +3 -0
  246. data/spaceship/lib/spaceship/portal/portal_client.rb +37 -23
  247. data/spaceship/lib/spaceship/portal/provisioning_profile.rb +27 -20
  248. data/spaceship/lib/spaceship/portal/provisioning_profile_template.rb +2 -0
  249. data/spaceship/lib/spaceship/portal/spaceship.rb +13 -10
  250. data/spaceship/lib/spaceship/portal/ui/select_team.rb +2 -0
  251. data/spaceship/lib/spaceship/portal/website_push.rb +2 -0
  252. data/spaceship/lib/spaceship/spaceauth_runner.rb +4 -2
  253. data/spaceship/lib/spaceship/test_flight.rb +0 -1
  254. data/spaceship/lib/spaceship/test_flight/app_test_info.rb +4 -0
  255. data/spaceship/lib/spaceship/test_flight/base.rb +22 -17
  256. data/spaceship/lib/spaceship/test_flight/beta_review_info.rb +2 -0
  257. data/spaceship/lib/spaceship/test_flight/build.rb +211 -203
  258. data/spaceship/lib/spaceship/test_flight/build_trains.rb +4 -1
  259. data/spaceship/lib/spaceship/test_flight/client.rb +255 -251
  260. data/spaceship/lib/spaceship/test_flight/export_compliance.rb +2 -0
  261. data/spaceship/lib/spaceship/test_flight/group.rb +2 -0
  262. data/spaceship/lib/spaceship/test_flight/test_info.rb +2 -0
  263. data/spaceship/lib/spaceship/test_flight/tester.rb +114 -110
  264. data/spaceship/lib/spaceship/tunes/app_details.rb +5 -1
  265. data/spaceship/lib/spaceship/tunes/app_image.rb +2 -0
  266. data/spaceship/lib/spaceship/tunes/app_ratings.rb +2 -68
  267. data/spaceship/lib/spaceship/tunes/app_review.rb +55 -0
  268. data/spaceship/lib/spaceship/tunes/app_screenshot.rb +2 -0
  269. data/spaceship/lib/spaceship/tunes/app_submission.rb +1 -0
  270. data/spaceship/lib/spaceship/tunes/app_trailer.rb +2 -0
  271. data/spaceship/lib/spaceship/tunes/app_version.rb +11 -0
  272. data/spaceship/lib/spaceship/tunes/app_version_generated_promocodes.rb +2 -0
  273. data/spaceship/lib/spaceship/tunes/app_version_history.rb +2 -0
  274. data/spaceship/lib/spaceship/tunes/app_version_promocodes.rb +2 -0
  275. data/spaceship/lib/spaceship/tunes/app_version_ref.rb +2 -0
  276. data/spaceship/lib/spaceship/tunes/app_version_states_history.rb +2 -0
  277. data/spaceship/lib/spaceship/tunes/application.rb +18 -6
  278. data/spaceship/lib/spaceship/tunes/availability.rb +2 -0
  279. data/spaceship/lib/spaceship/tunes/build.rb +2 -0
  280. data/spaceship/lib/spaceship/tunes/build_details.rb +2 -0
  281. data/spaceship/lib/spaceship/tunes/build_train.rb +5 -1
  282. data/spaceship/lib/spaceship/tunes/developer_response.rb +23 -0
  283. data/spaceship/lib/spaceship/tunes/errors.rb +17 -0
  284. data/spaceship/lib/spaceship/tunes/iap_detail.rb +5 -0
  285. data/spaceship/lib/spaceship/tunes/iap_families.rb +1 -0
  286. data/spaceship/lib/spaceship/tunes/iap_family_details.rb +1 -0
  287. data/spaceship/lib/spaceship/tunes/iap_family_list.rb +1 -0
  288. data/spaceship/lib/spaceship/tunes/iap_list.rb +3 -0
  289. data/spaceship/lib/spaceship/tunes/iap_subscription_pricing_info.rb +46 -0
  290. data/spaceship/lib/spaceship/tunes/iap_subscription_pricing_tier.rb +2 -41
  291. data/spaceship/lib/spaceship/tunes/language_converter.rb +2 -0
  292. data/spaceship/lib/spaceship/tunes/legacy_wrapper.rb +13 -0
  293. data/spaceship/lib/spaceship/tunes/member.rb +3 -0
  294. data/spaceship/lib/spaceship/tunes/members.rb +2 -0
  295. data/spaceship/lib/spaceship/tunes/pricing_info.rb +42 -0
  296. data/spaceship/lib/spaceship/tunes/pricing_tier.rb +2 -37
  297. data/spaceship/lib/spaceship/tunes/recovery_device.rb +2 -0
  298. data/spaceship/lib/spaceship/tunes/sandbox_tester.rb +2 -0
  299. data/spaceship/lib/spaceship/tunes/spaceship.rb +2 -0
  300. data/spaceship/lib/spaceship/tunes/territory.rb +2 -0
  301. data/spaceship/lib/spaceship/tunes/transit_app_file.rb +2 -0
  302. data/spaceship/lib/spaceship/tunes/tunes.rb +34 -39
  303. data/spaceship/lib/spaceship/tunes/tunes_base.rb +2 -0
  304. data/spaceship/lib/spaceship/tunes/tunes_client.rb +20 -14
  305. data/spaceship/lib/spaceship/tunes/user_detail.rb +2 -0
  306. data/spaceship/lib/spaceship/tunes/version_set.rb +2 -0
  307. data/spaceship/lib/spaceship/two_step_client.rb +5 -1
  308. data/spaceship/lib/spaceship/ui.rb +7 -7
  309. data/supply/lib/supply/options.rb +2 -2
  310. metadata +31 -6
@@ -1,3 +1,5 @@
1
+ require_relative 'base'
2
+
1
3
  module Spaceship::TestFlight
2
4
  class ExportCompliance < Base
3
5
  attr_accessor :uses_encryption, :encryption_updated
@@ -1,3 +1,5 @@
1
+ require_relative 'base'
2
+
1
3
  module Spaceship::TestFlight
2
4
  class Group < Base
3
5
  attr_accessor :id
@@ -1,3 +1,5 @@
1
+ require_relative 'base'
2
+
1
3
  module Spaceship::TestFlight
2
4
  class TestInfo < Base
3
5
  # TestInfo Contains a collection of info for testers. There is one "testInfo" for each locale.
@@ -1,124 +1,128 @@
1
- module Spaceship::TestFlight
2
- class Tester < Base
3
- # @return (String) The identifier of this tester, provided by iTunes Connect
4
- # @example
5
- # "60f858b4-60a8-428a-963a-f943a3d68d17"
6
- attr_accessor :tester_id
7
-
8
- # @return (String) The email of this tester
9
- # @example
10
- # "tester@spaceship.com"
11
- attr_accessor :email
12
-
13
- # @return (String) The first name of this tester
14
- # @example
15
- # "Cary"
16
- attr_accessor :first_name
17
-
18
- # @return (String) The last name of this tester
19
- # @example
20
- # "Bennett"
21
- attr_accessor :last_name
22
-
23
- # @return (String)
24
- # @example
25
- # "invited"
26
- # "installed"
27
- #
28
- attr_accessor :status
29
-
30
- # @return (Integer) Date of the last modification of the status (e.g. invite sent)
31
- attr_accessor :status_mod_time
32
-
33
- # @return (Hash)
34
- # @example
35
- # {
36
- # "latestInstalledAppAdamId": "1222374686",
37
- # "latestInstalledBuildId": "20739770",
38
- # "latestInstalledDate": "1496866405755",
39
- # "latestInstalledShortVersion": "1.0",
40
- # "latestInstalledVersion": "68"
41
- # }
42
- attr_accessor :latest_install_info
43
-
44
- attr_accessor :latest_installed_date
45
-
46
- # @return (Integer) Number of sessions
47
- attr_accessor :session_count
48
-
49
- attr_accessor :groups
50
-
51
- attr_mapping(
52
- 'id' => :tester_id,
53
- 'email' => :email,
54
- 'status' => :status,
55
- 'statusModTime' => :status_mod_time,
56
- 'latestInstallInfo' => :latest_install_info,
57
- 'sessionCount' => :session_count,
58
- 'firstName' => :first_name,
59
- 'lastName' => :last_name,
60
- 'groups' => :groups
61
- )
62
-
63
- def latest_installed_date
64
- return nil unless latest_install_info
65
- latest_installed_date_value = latest_install_info["latestInstalledDate"]
66
- return nil unless latest_installed_date_value
67
-
68
- return latest_installed_date_value.to_i
69
- end
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
- def pretty_install_date
72
- return nil unless latest_installed_date
74
+ def pretty_install_date
75
+ return nil unless latest_installed_date
73
76
 
74
- Time.at((latest_installed_date / 1000)).strftime("%m/%d/%y %H:%M")
75
- end
77
+ Time.at((latest_installed_date / 1000)).strftime("%m/%d/%y %H:%M")
78
+ end
76
79
 
77
- # @return (Array) Returns all beta testers available for this account
78
- def self.all(app_id: nil)
79
- client.testers_for_app(app_id: app_id).map { |data| self.new(data) }
80
- end
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
- # *DEPRECATED: Use `Spaceship::TestFlight::Tester.search` method instead*
83
- def self.find(app_id: nil, email: nil)
84
- testers = self.search(app_id: app_id, text: email, is_email_exact_match: true)
85
- return testers.first
86
- end
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
- def status_mod_time
89
- Time.parse(super) if super.to_s.length > 0
90
- end
91
+ def status_mod_time
92
+ Time.parse(super) if super.to_s.length > 0
93
+ end
91
94
 
92
- # @return (Spaceship::TestFlight::Tester) Returns the testers matching the parameter.
93
- # ITC searchs all fields, and is full text. The search results are the union of all words in the search text
94
- # @param text (String) (required): Value used to filter the tester, case insensitive
95
- def self.search(app_id: nil, text: nil, is_email_exact_match: false)
96
- text = text.strip
97
- testers_matching_text = client.search_for_tester_in_app(app_id: app_id, text: text).map { |data| self.new(data) }
98
- testers_matching_text ||= []
99
- if is_email_exact_match
100
- text = text.downcase
101
- testers_matching_text = testers_matching_text.select do |tester|
102
- tester.email.downcase == text
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
- return testers_matching_text
107
- end
109
+ return testers_matching_text
110
+ end
108
111
 
109
- def self.create_app_level_tester(app_id: nil, first_name: nil, last_name: nil, email: nil)
110
- client.create_app_level_tester(app_id: app_id,
111
- first_name: first_name,
112
- last_name: last_name,
113
- email: email)
114
- end
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
- def remove_from_app!(app_id: nil)
117
- client.delete_tester_from_app(app_id: app_id, tester_id: self.tester_id)
118
- end
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
- def resend_invite(app_id: nil)
121
- client.resend_invite_to_external_tester(app_id: app_id, tester_id: self.tester_id)
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::TunesClient::ITunesConnectError => ex
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 'tunes_base'
2
+
1
3
  module Spaceship
2
4
  module Tunes
3
5
  # Represents an image hosted on iTunes Connect. Used for icons, screenshots, etc
@@ -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,5 @@
1
+ require_relative 'app_image'
2
+
1
3
  module Spaceship
2
4
  module Tunes
3
5
  # Represents a screenshot hosted on iTunes Connect
@@ -1,3 +1,4 @@
1
+ require_relative 'tunes_base'
1
2
 
2
3
  module Spaceship
3
4
  module Tunes
@@ -1,3 +1,5 @@
1
+ require_relative 'tunes_base'
2
+
1
3
  module Spaceship
2
4
  module Tunes
3
5
  # Represents a preview video hosted on iTunes Connect. Used for icons, screenshots, etc
@@ -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