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.
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