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,8 +1,10 @@
1
+ require 'highline'
2
+
1
3
  HighLine.track_eof = false
2
4
 
3
5
  require 'fastlane/version'
4
- require 'spaceship/playground'
5
- require 'spaceship/spaceauth_runner'
6
+ require_relative 'playground'
7
+ require_relative 'spaceauth_runner'
6
8
 
7
9
  module Spaceship
8
10
  class CommandsGenerator
@@ -1,3 +1,6 @@
1
+ require_relative '../client'
2
+ require_relative 'utilities'
3
+
1
4
  module Spaceship
2
5
  # This class is used to upload Digital files (Images, Videos, JSON files) onto the du-itc service.
3
6
  # Its implementation is tied to the tunes module (in particular using +AppVersion+ instances)
@@ -1,5 +1,7 @@
1
1
  require 'fileutils'
2
2
 
3
+ require_relative 'utilities'
4
+
3
5
  module Spaceship
4
6
  # a wrapper around the concept of file required to make uploads to DU
5
7
  class UploadFile
@@ -0,0 +1,67 @@
1
+ module Spaceship
2
+ # Base class for errors that want to present their message as
3
+ # preferred error info for fastlane error handling. See:
4
+ # fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb
5
+ class BasicPreferredInfoError < StandardError
6
+ TITLE = 'The request could not be completed because:'.freeze
7
+
8
+ def preferred_error_info
9
+ message ? [TITLE, message] : nil
10
+ end
11
+ end
12
+
13
+ # Invalid user credentials were provided
14
+ class InvalidUserCredentialsError < BasicPreferredInfoError; end
15
+
16
+ # Raised when no user credentials were passed at all
17
+ class NoUserCredentialsError < BasicPreferredInfoError; end
18
+
19
+ class ProgramLicenseAgreementUpdated < BasicPreferredInfoError
20
+ def show_github_issues
21
+ false
22
+ end
23
+ end
24
+
25
+ # User doesn't have enough permission for given action
26
+ class InsufficientPermissions < BasicPreferredInfoError
27
+ TITLE = 'Insufficient permissions for your Apple ID:'.freeze
28
+
29
+ def preferred_error_info
30
+ message ? [TITLE, message] : nil
31
+ end
32
+
33
+ # We don't want to show similar GitHub issues, as the error message
34
+ # should be pretty clear
35
+ def show_github_issues
36
+ false
37
+ end
38
+ end
39
+
40
+ class UnexpectedResponse < StandardError
41
+ attr_reader :error_info
42
+
43
+ def initialize(error_info = nil)
44
+ super(error_info)
45
+ @error_info = error_info
46
+ end
47
+
48
+ def preferred_error_info
49
+ return nil unless @error_info.kind_of?(Hash) && @error_info['resultString']
50
+
51
+ [
52
+ "Apple provided the following error info:",
53
+ @error_info['resultString'],
54
+ @error_info['userString']
55
+ ].compact.uniq # sometimes 'resultString' and 'userString' are the same value
56
+ end
57
+ end
58
+
59
+ # Raised when 302 is received from portal request
60
+ class AppleTimeoutError < BasicPreferredInfoError; end
61
+
62
+ # Raised when 401 is received from portal request
63
+ class UnauthorizedAccessError < BasicPreferredInfoError; end
64
+
65
+ # Raised when 500 is received from iTunes Connect
66
+ class InternalServerError < BasicPreferredInfoError; end
67
+ end
@@ -4,7 +4,7 @@ module Spaceship
4
4
  # otherwise fallback to $verbose
5
5
  def self.verbose?
6
6
  if Object.const_defined?("FastlaneCore")
7
- return FastlaneCore::Globals.verbose?
7
+ return FastlaneCore::Globals.verbose? # rubocop:disable Lint/MissingRequireStatement
8
8
  end
9
9
  return $verbose
10
10
  end
@@ -3,7 +3,7 @@ require 'faraday_middleware/response_middleware'
3
3
  module FaradayMiddleware
4
4
  class PlistMiddleware < ResponseMiddleware
5
5
  dependency do
6
- require 'plist' unless defined?(::Plist)
6
+ require 'plist' unless Object.const_defined?("Plist")
7
7
  end
8
8
 
9
9
  define_parser do |body|
@@ -4,6 +4,8 @@ module Faraday
4
4
  end
5
5
  end
6
6
 
7
+ require 'faraday'
8
+
7
9
  module FaradayMiddleware
8
10
  class RelsMiddleware < Faraday::Middleware
9
11
  def initialize(app, options = {})
@@ -1,3 +1,5 @@
1
+ require_relative 'portal/portal_client'
2
+
1
3
  module Spaceship
2
4
  class Launcher
3
5
  attr_accessor :client
@@ -68,27 +70,27 @@ module Spaceship
68
70
 
69
71
  # @return (Class) Access the apps for this spaceship
70
72
  def app
71
- Spaceship::App.set_client(@client)
73
+ Spaceship::Portal::App.set_client(@client)
72
74
  end
73
75
 
74
76
  # @return (Class) Access the app groups for this spaceship
75
77
  def app_group
76
- Spaceship::AppGroup.set_client(@client)
78
+ Spaceship::Portal::AppGroup.set_client(@client)
77
79
  end
78
80
 
79
81
  # @return (Class) Access the devices for this spaceship
80
82
  def device
81
- Spaceship::Device.set_client(@client)
83
+ Spaceship::Portal::Device.set_client(@client)
82
84
  end
83
85
 
84
86
  # @return (Class) Access the certificates for this spaceship
85
87
  def certificate
86
- Spaceship::Certificate.set_client(@client)
88
+ Spaceship::Portal::Certificate.set_client(@client)
87
89
  end
88
90
 
89
91
  # @return (Class) Access the provisioning profiles for this spaceship
90
92
  def provisioning_profile
91
- Spaceship::ProvisioningProfile.set_client(@client)
93
+ Spaceship::Portal::ProvisioningProfile.set_client(@client)
92
94
  end
93
95
  end
94
96
  end
@@ -0,0 +1,4 @@
1
+ module Spaceship
2
+ ROOT = Pathname.new(File.expand_path('../../..', __FILE__))
3
+ DESCRIPTION = "Ruby library to access the Apple Dev Center and iTunes Connect".freeze
4
+ end
@@ -1,6 +1,9 @@
1
1
  require "colored"
2
2
  require "credentials_manager"
3
3
 
4
+ require_relative 'tunes/tunes'
5
+ require_relative 'portal/portal'
6
+
4
7
  module Spaceship
5
8
  class Playground
6
9
  def initialize(username: nil)
@@ -1,3 +1,6 @@
1
+ require_relative 'portal_base'
2
+ require_relative 'app_group'
3
+
1
4
  module Spaceship
2
5
  module Portal
3
6
  # Represents an App ID from the Developer Portal
@@ -1,3 +1,5 @@
1
+ require_relative 'portal_base'
2
+
1
3
  module Spaceship
2
4
  module Portal
3
5
  # Represents an app group of the Apple Dev Portal
@@ -30,85 +30,44 @@ module Spaceship
30
30
  end
31
31
  end
32
32
 
33
- class << self
34
- def app_group
35
- self::AppGroup
36
- end
37
-
38
- def apple_pay
39
- self::ApplePay
40
- end
41
-
42
- def associated_domains
43
- self::AssociatedDomains
44
- end
45
-
46
- def data_protection
47
- self::DataProtection
48
- end
49
-
50
- def game_center
51
- self::GameCenter
52
- end
53
-
54
- def health_kit
55
- self::HealthKit
56
- end
57
-
58
- def home_kit
59
- self::HomeKit
60
- end
61
-
62
- def wireless_accessory
63
- self::WirelessAccessory
64
- end
65
-
66
- def icloud
67
- self::Cloud
68
- end
69
-
70
- def cloud_kit
71
- self::CloudKit
72
- end
73
-
74
- def in_app_purchase
75
- self::InAppPurchase
76
- end
77
-
78
- def inter_app_audio
79
- self::InterAppAudio
80
- end
81
-
82
- def passbook
83
- self::Passbook
84
- end
85
-
86
- def push_notification
87
- self::PushNotification
88
- end
89
-
90
- def siri_kit
91
- self::SiriKit
92
- end
93
-
94
- def vpn_configuration
95
- self::VPNConfiguration
96
- end
97
-
98
- def network_extension
99
- self::NetworkExtension
100
- end
101
-
102
- def hotspot
103
- self::Hotspot
104
- end
105
-
106
- def multipath
107
- self::Multipath
108
- end
109
-
110
- def nfc_tag_reading
111
- self::NFCTagReading
33
+ def self.new_service(id, values: { on: true, off: false })
34
+ m = Module.new
35
+ values.each do |k, v|
36
+ m.define_singleton_method(k) do
37
+ AppService.new(id, v)
38
+ end
39
+ end
40
+ return m
41
+ end
42
+
43
+ AppGroup = AppService.new_service("APG3427HIY")
44
+ ApplePay = AppService.new_service("OM633U5T5G")
45
+ AssociatedDomains = AppService.new_service("SKC3T5S89Y")
46
+ DataProtection = AppService.new_service("dataProtection", values: { off: "", complete: "complete", unless_open: "unlessopen", until_first_auth: "untilfirstauth" })
47
+ GameCenter = AppService.new_service("gameCenter")
48
+ HealthKit = AppService.new_service("HK421J6T7P")
49
+ HomeKit = AppService.new_service("homeKit")
50
+ WirelessAccessory = AppService.new_service("WC421J6T7P")
51
+ Cloud = AppService.new_service("iCloud")
52
+ CloudKit = AppService.new_service("cloudKitVersion", values: { xcode5_compatible: 1, cloud_kit: 2 })
53
+ InAppPurchase = AppService.new_service("inAppPurchase")
54
+ InterAppAudio = AppService.new_service("IAD53UNK2F")
55
+ Passbook = AppService.new_service("pass")
56
+ PushNotification = AppService.new_service("push")
57
+ SiriKit = AppService.new_service("SI015DKUHP")
58
+ VPNConfiguration = AppService.new_service("V66P55NK2I")
59
+ NetworkExtension = AppService.new_service("NWEXT04537")
60
+ Hotspot = AppService.new_service("HSC639VEI8")
61
+ Multipath = AppService.new_service("MP49FN762P")
62
+ NFCTagReading = AppService.new_service("NFCTRMAY17")
63
+
64
+ constants.each do |c|
65
+ name = c.to_s
66
+ .gsub(/([A-Z0-9]+)([A-Z][a-z])/, '\1_\2') # ABBRVString -> ABBRV_String
67
+ .gsub(/([a-z0-9])([A-Z])/, '\1_\2') # CamelCase -> Camel_Case
68
+ .downcase
69
+ self.class.send(:define_method, name) do
70
+ AppService.const_get(c)
112
71
  end
113
72
  end
114
73
 
@@ -118,217 +77,6 @@ module Spaceship
118
77
  self.value == other.value &&
119
78
  self.service_uri == other.service_uri
120
79
  end
121
-
122
- #
123
- # Modules for "constants"
124
- #
125
- module AppGroup
126
- def self.off
127
- AppService.new("APG3427HIY", false)
128
- end
129
-
130
- def self.on
131
- AppService.new("APG3427HIY", true)
132
- end
133
- end
134
-
135
- module ApplePay
136
- def self.off
137
- AppService.new("OM633U5T5G", false)
138
- end
139
-
140
- def self.on
141
- AppService.new("OM633U5T5G", true)
142
- end
143
- end
144
-
145
- module AssociatedDomains
146
- def self.off
147
- AppService.new("SKC3T5S89Y", false)
148
- end
149
-
150
- def self.on
151
- AppService.new("SKC3T5S89Y", true)
152
- end
153
- end
154
-
155
- module DataProtection
156
- def self.off
157
- AppService.new("dataProtection", "")
158
- end
159
-
160
- def self.complete
161
- AppService.new("dataProtection", "complete")
162
- end
163
-
164
- def self.unless_open
165
- AppService.new("dataProtection", "unlessopen")
166
- end
167
-
168
- def self.until_first_auth
169
- AppService.new("dataProtection", "untilfirstauth")
170
- end
171
- end
172
-
173
- module GameCenter
174
- def self.off
175
- AppService.new("gameCenter", false)
176
- end
177
-
178
- def self.on
179
- AppService.new("gameCenter", true)
180
- end
181
- end
182
-
183
- module HealthKit
184
- def self.off
185
- AppService.new("HK421J6T7P", false)
186
- end
187
-
188
- def self.on
189
- AppService.new("HK421J6T7P", true)
190
- end
191
- end
192
-
193
- module HomeKit
194
- def self.off
195
- AppService.new("homeKit", false)
196
- end
197
-
198
- def self.on
199
- AppService.new("homeKit", true)
200
- end
201
- end
202
-
203
- module WirelessAccessory
204
- def self.off
205
- AppService.new("WC421J6T7P", false)
206
- end
207
-
208
- def self.on
209
- AppService.new("WC421J6T7P", true)
210
- end
211
- end
212
-
213
- module Cloud
214
- def self.off
215
- AppService.new("iCloud", false)
216
- end
217
-
218
- def self.on
219
- AppService.new("iCloud", true)
220
- end
221
- end
222
-
223
- module CloudKit
224
- def self.xcode5_compatible
225
- AppService.new("cloudKitVersion", 1)
226
- end
227
-
228
- def self.cloud_kit
229
- AppService.new("cloudKitVersion", 2)
230
- end
231
- end
232
-
233
- module InAppPurchase
234
- def self.off
235
- AppService.new("inAppPurchase", false)
236
- end
237
-
238
- def self.on
239
- AppService.new("inAppPurchase", true)
240
- end
241
- end
242
-
243
- module InterAppAudio
244
- def self.off
245
- AppService.new("IAD53UNK2F", false)
246
- end
247
-
248
- def self.on
249
- AppService.new("IAD53UNK2F", true)
250
- end
251
- end
252
-
253
- module Passbook
254
- def self.off
255
- AppService.new("pass", false)
256
- end
257
-
258
- def self.on
259
- AppService.new("pass", true)
260
- end
261
- end
262
-
263
- module PushNotification
264
- def self.off
265
- AppService.new("push", false)
266
- end
267
-
268
- def self.on
269
- AppService.new("push", true)
270
- end
271
- end
272
-
273
- module SiriKit
274
- def self.off
275
- AppService.new("SI015DKUHP", false)
276
- end
277
-
278
- def self.on
279
- AppService.new("SI015DKUHP", true)
280
- end
281
- end
282
-
283
- module VPNConfiguration
284
- def self.off
285
- AppService.new("V66P55NK2I", false)
286
- end
287
-
288
- def self.on
289
- AppService.new("V66P55NK2I", true)
290
- end
291
- end
292
-
293
- module NetworkExtension
294
- def self.off
295
- AppService.new("NWEXT04537", false)
296
- end
297
-
298
- def self.on
299
- AppService.new("NWEXT04537", true)
300
- end
301
- end
302
-
303
- module Hotspot
304
- def self.off
305
- AppService.new("HSC639VEI8", false)
306
- end
307
-
308
- def self.on
309
- AppService.new("HSC639VEI8", true)
310
- end
311
- end
312
-
313
- module Multipath
314
- def self.off
315
- AppService.new("MP49FN762P", false)
316
- end
317
-
318
- def self.on
319
- AppService.new("MP49FN762P", true)
320
- end
321
- end
322
-
323
- module NFCTagReading
324
- def self.off
325
- AppService.new("NFCTRMAY17", false)
326
- end
327
-
328
- def self.on
329
- AppService.new("NFCTRMAY17", true)
330
- end
331
- end
332
80
  end
333
81
  end
334
82
  end