fastlane 2.40.0.beta.20170622010014 โ†’ 2.40.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/cert/README.md +3 -1
  3. data/deliver/README.md +5 -1
  4. data/deliver/lib/deliver/options.rb +16 -0
  5. data/deliver/lib/deliver/runner.rb +36 -2
  6. data/fastlane/README.md +3 -1
  7. data/fastlane/lib/fastlane/actions/precheck.rb +52 -0
  8. data/fastlane/lib/fastlane/tools.rb +2 -1
  9. data/fastlane/lib/fastlane/version.rb +1 -1
  10. data/fastlane_core/README.md +2 -1
  11. data/frameit/README.md +3 -1
  12. data/gym/README.md +3 -1
  13. data/match/README.md +3 -1
  14. data/pem/README.md +3 -1
  15. data/pilot/README.md +3 -1
  16. data/precheck/README.md +174 -0
  17. data/precheck/lib/assets/PrecheckfileTemplate +28 -0
  18. data/precheck/lib/precheck.rb +22 -0
  19. data/precheck/lib/precheck/commands_generator.rb +56 -0
  20. data/precheck/lib/precheck/item_to_check.rb +58 -0
  21. data/precheck/lib/precheck/options.rb +63 -0
  22. data/precheck/lib/precheck/rule.rb +169 -0
  23. data/precheck/lib/precheck/rule_check_result.rb +19 -0
  24. data/precheck/lib/precheck/rule_processor.rb +199 -0
  25. data/precheck/lib/precheck/rules/abstract_text_match_rule.rb +64 -0
  26. data/precheck/lib/precheck/rules/copyright_date_rule.rb +38 -0
  27. data/precheck/lib/precheck/rules/curse_words_rule.rb +57 -0
  28. data/precheck/lib/precheck/rules/custom_text_rule.rb +36 -0
  29. data/precheck/lib/precheck/rules/future_functionality_rule.rb +34 -0
  30. data/precheck/lib/precheck/rules/negative_apple_sentiment_rule.rb +38 -0
  31. data/precheck/lib/precheck/rules/other_platforms_rule.rb +38 -0
  32. data/precheck/lib/precheck/rules/placeholder_words_rule.rb +33 -0
  33. data/precheck/lib/precheck/rules/rules_data/curse_word_hashes/en_us.txt +349 -0
  34. data/precheck/lib/precheck/rules/test_words_rule.rb +31 -0
  35. data/precheck/lib/precheck/rules/unreachable_urls_rule.rb +42 -0
  36. data/precheck/lib/precheck/runner.rb +164 -0
  37. data/produce/README.md +3 -1
  38. data/scan/README.md +3 -1
  39. data/screengrab/README.md +2 -1
  40. data/sigh/README.md +3 -1
  41. data/snapshot/README.md +3 -1
  42. data/spaceship/README.md +2 -1
  43. data/spaceship/lib/spaceship/tunes/language_item.rb +5 -1
  44. data/supply/README.md +3 -1
  45. metadata +38 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 24e1584025e30a98366341d6dee9ccab0725c624
4
- data.tar.gz: 1fd1a82d10f60e498db07edbc5693bcabe9d6aa6
3
+ metadata.gz: 4df481d021e63a7af1a713c236cd214b09bcadc6
4
+ data.tar.gz: 58dd9c9d6f10b8b927c6792b34784fd8ce63d427
5
5
  SHA512:
6
- metadata.gz: a4e7bcc3bddeca49898c0502ce54f675a0de0a245537bb6e4a1432c54b0be8b2b30294529f0271126f96a5c820ee4335dbbbb57e2a101700b855f223cf30688b
7
- data.tar.gz: 268c4f3cb975cf7e24901b213349d501c08f63e766fcf3d6c734e4abef2914d1e0f927a894dd75192b34b6f426b4030433c697f7210a6d053329a45a54510d94
6
+ metadata.gz: 7aeb736feb916475c74ff074974c107ceea80bb4c02704799f8058a564a934797f6eb171e0ce89ccb24910bb26389761fb595dd17765d7041d199eec6e9271cc
7
+ data.tar.gz: 678f24e0cfbe793298213425fca3a2384d786c196c78e8f2c5d5afa6eb82f33ad0fb23e56214c2fda1e04477232a9f79b1366c4766da1500413db7526bb8a13a
data/cert/README.md CHANGED
@@ -18,7 +18,8 @@
18
18
  <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
19
19
  <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
20
20
  <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
21
- <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a>
21
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a> &bull;
22
+ <a href="https://github.com/fastlane/fastlane/tree/master/precheck">precheck</a>
22
23
  </p>
23
24
 
24
25
  -------
@@ -145,6 +146,7 @@ This will result in `sigh` always using the correct signing certificate, which i
145
146
  - [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS apps has never been easier
146
147
  - [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
147
148
  - [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
149
+ - [`precheck`](https://github.com/fastlane/fastlane/tree/master/precheck): Check your app using a community driven set of App Store review rules to avoid being rejected
148
150
 
149
151
  ##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
150
152
 
data/deliver/README.md CHANGED
@@ -18,7 +18,8 @@
18
18
  <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
19
19
  <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
20
20
  <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
21
- <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a>
21
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a> &bull;
22
+ <a href="https://github.com/fastlane/fastlane/tree/master/precheck">precheck</a>
22
23
  </p>
23
24
 
24
25
  -------
@@ -61,6 +62,7 @@ Get in contact with the developer on Twitter: [@FastlaneTools](https://twitter.c
61
62
  - Easily implement a real Continuous Deployment process using [fastlane](https://fastlane.tools)
62
63
  - Store the configuration in git to easily deploy from **any** Mac, including your Continuous Integration server
63
64
  - Get a HTML preview of the fetched metadata before uploading the app metadata and screenshots to iTC
65
+ - Automatically uses [precheck](https://github.com/fastlane/fastlane/tree/master/precheck) to ensure your app has the highest chances of passing app review the first time
64
66
 
65
67
  To upload builds to TestFlight check out [pilot](https://github.com/fastlane/fastlane/tree/master/pilot).
66
68
 
@@ -179,6 +181,8 @@ Before actually uploading anything to iTunes, ```deliver``` will generate a HTML
179
181
  - [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS apps has never been easier
180
182
  - [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
181
183
  - [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
184
+ - [`precheck`](https://github.com/fastlane/fastlane/tree/master/precheck): Check your app using a community driven set of App Store review rules to avoid being rejected
185
+
182
186
 
183
187
  ##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
184
188
 
@@ -93,6 +93,10 @@ module Deliver
93
93
  description: "Don't upload the metadata (e.g. title, description), this will still upload screenshots",
94
94
  is_string: false,
95
95
  default_value: false),
96
+ FastlaneCore::ConfigItem.new(key: :skip_app_version_update,
97
+ description: "Don't update app version for submission",
98
+ is_string: false,
99
+ default_value: false),
96
100
  FastlaneCore::ConfigItem.new(key: :force,
97
101
  short_option: "-f",
98
102
  description: "Skip the HTML report file verification",
@@ -181,6 +185,18 @@ module Deliver
181
185
  description: "Clear all previously uploaded screenshots before uploading the new ones",
182
186
  is_string: false,
183
187
  default_value: false),
188
+ FastlaneCore::ConfigItem.new(key: :run_precheck_before_submit,
189
+ short_option: "-x",
190
+ env_name: "DELIVER_RUN_PRECHECK_BEFORE_SUBMIT",
191
+ description: "Run precheck before submitting to app review",
192
+ is_string: false,
193
+ default_value: true),
194
+ FastlaneCore::ConfigItem.new(key: :precheck_default_rule_level,
195
+ short_option: "-d",
196
+ env_name: "DELIVER_PRECHECK_DEFAULT_RULE_LEVEL",
197
+ description: "The default rule level unless otherwise configured",
198
+ is_string: false,
199
+ default_value: :warn),
184
200
 
185
201
  # App Metadata
186
202
  # Non Localised
@@ -1,3 +1,5 @@
1
+ require 'precheck'
2
+
1
3
  module Deliver
2
4
  class Runner
3
5
  attr_accessor :options
@@ -10,6 +12,7 @@ module Deliver
10
12
  end
11
13
 
12
14
  def login
15
+ UI.message("Running precheck before submitting to review, if you'd like to disable this check you can set run_precheck_before_submit to false") unless options[:run_precheck_before_submit] == false
13
16
  UI.message("Login to iTunes Connect (#{options[:username]})")
14
17
  Spaceship::Tunes.login(options[:username])
15
18
  Spaceship::Tunes.select_team
@@ -17,7 +20,7 @@ module Deliver
17
20
  end
18
21
 
19
22
  def run
20
- verify_version if options[:app_version].to_s.length > 0
23
+ verify_version if options[:app_version].to_s.length > 0 && !options[:skip_app_version_update]
21
24
  upload_metadata
22
25
 
23
26
  has_binary = (options[:ipa] || options[:pkg])
@@ -27,7 +30,38 @@ module Deliver
27
30
 
28
31
  UI.success("Finished the upload to iTunes Connect") unless options[:skip_binary_upload]
29
32
 
30
- submit_for_review if options[:submit_for_review]
33
+ precheck_success = precheck_app
34
+
35
+ submit_for_review if options[:submit_for_review] && precheck_success
36
+ end
37
+
38
+ # Make sure we pass precheck before uploading
39
+ def precheck_app
40
+ return true unless options[:run_precheck_before_submit]
41
+
42
+ if options[:submit_for_review]
43
+ UI.message("Making sure we pass precheck ๐Ÿ‘ฎโ€โ™€๏ธ ๐Ÿ‘ฎ before we submit ๐Ÿ›ซ")
44
+ else
45
+ UI.message("Running precheck ๐Ÿ‘ฎโ€โ™€๏ธ ๐Ÿ‘ฎ")
46
+ end
47
+
48
+ precheck_options = { default_rule_level: options[:precheck_default_rule_level] }
49
+ precheck_config = FastlaneCore::Configuration.create(Precheck::Options.available_options, precheck_options)
50
+ Precheck.config = precheck_config
51
+
52
+ precheck_success = true
53
+ begin
54
+ precheck_success = Precheck::Runner.new.run
55
+ rescue => ex
56
+ UI.error("fastlane precheck just tried to inspect your app's metadata for App Store guideline violations and ran into a problem. We're not sure what the problem was, but precheck failed to finished. You can run it in verbose mode if you want to see the whole error. We'll have a fix out soon ๐Ÿš€")
57
+ UI.verbose(ex.inspect)
58
+ UI.verbose(ex.backtrace.join("\n"))
59
+
60
+ # always report this back, since this is a new tool, we don't want to crash, but we still want to see this
61
+ FastlaneCore::CrashReporter.report_crash(exception: ex)
62
+ end
63
+
64
+ return precheck_success
31
65
  end
32
66
 
33
67
  # Make sure the version on iTunes Connect matches the one in the ipa
data/fastlane/README.md CHANGED
@@ -14,7 +14,8 @@
14
14
  <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
15
15
  <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
16
16
  <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
17
- <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a>
17
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a> &bull;
18
+ <a href="https://github.com/fastlane/fastlane/tree/master/precheck">precheck</a>
18
19
  </p>
19
20
 
20
21
  -------
@@ -183,6 +184,7 @@ See how [Wikipedia](https://github.com/fastlane/examples#wikipedia-by-wikimedia-
183
184
  - [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
184
185
  - [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS apps has never been easier
185
186
  - [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
187
+ - [`precheck`](https://github.com/fastlane/fastlane/tree/master/precheck): Check your app using a community driven set of App Store review rules to avoid being rejected
186
188
 
187
189
  ## Credentials
188
190
  A detailed description about how `fastlane` stores your credentials is available on a [separate repo](https://github.com/fastlane/fastlane/tree/master/credentials_manager).
@@ -0,0 +1,52 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ end
5
+
6
+ class PrecheckAction < Action
7
+ def self.run(config)
8
+ require 'precheck'
9
+ Precheck.config = config
10
+ return Precheck::Runner.new.run
11
+ end
12
+
13
+ def self.description
14
+ "Check your app's metadata before you submit your app to review using _precheck_"
15
+ end
16
+
17
+ def self.details
18
+ "More information: https://fastlane.tools/precheck"
19
+ end
20
+
21
+ def self.available_options
22
+ require 'precheck/options'
23
+ Precheck::Options.available_options
24
+ end
25
+
26
+ def self.return_value
27
+ return "true if precheck passes, else, false"
28
+ end
29
+
30
+ def self.authors
31
+ ["taquitos"]
32
+ end
33
+
34
+ def self.is_supported?(platform)
35
+ platform == :ios
36
+ end
37
+
38
+ def self.example_code
39
+ [
40
+ 'precheck(
41
+ negative_apple_sentiment(level: :skip), # Set to skip to not run the `negative_apple_sentiment` rule
42
+ curse_words(level: :warn) # Set to warn to only warn on curse word check failures
43
+ )'
44
+ ]
45
+ end
46
+
47
+ def self.category
48
+ :misc
49
+ end
50
+ end
51
+ end
52
+ end
@@ -14,6 +14,7 @@ module Fastlane
14
14
  :sigh,
15
15
  :match,
16
16
  :scan,
17
- :gym
17
+ :gym,
18
+ :precheck
18
19
  ]
19
20
  end
@@ -1,4 +1,4 @@
1
1
  module Fastlane
2
- VERSION = '2.40.0.beta.20170622010014'.freeze
2
+ VERSION = '2.40.0'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  end
@@ -18,7 +18,8 @@
18
18
  <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
19
19
  <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
20
20
  <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
21
- <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a>
21
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a> &bull;
22
+ <a href="https://github.com/fastlane/fastlane/tree/master/precheck">precheck</a>
22
23
  </p>
23
24
 
24
25
  -------
data/frameit/README.md CHANGED
@@ -18,7 +18,8 @@
18
18
  <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
19
19
  <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
20
20
  <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
21
- <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a>
21
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a> &bull;
22
+ <a href="https://github.com/fastlane/fastlane/tree/master/precheck">precheck</a>
22
23
  </p>
23
24
 
24
25
  -------
@@ -246,6 +247,7 @@ Check out the [MindNode example project](https://github.com/fastlane/examples/tr
246
247
  - [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS apps has never been easier
247
248
  - [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
248
249
  - [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
250
+ - [`precheck`](https://github.com/fastlane/fastlane/tree/master/precheck): Check your app using a community driven set of App Store review rules to avoid being rejected
249
251
 
250
252
  ##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
251
253
 
data/gym/README.md CHANGED
@@ -18,7 +18,8 @@
18
18
  <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
19
19
  <b>gym</b> &bull;
20
20
  <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
21
- <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a>
21
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a> &bull;
22
+ <a href="https://github.com/fastlane/fastlane/tree/master/precheck">precheck</a>
22
23
  </p>
23
24
 
24
25
  -------
@@ -281,6 +282,7 @@ Afterwards the `ipa` file is moved to the output folder. The `dSYM` file is comp
281
282
  - [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
282
283
  - [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
283
284
  - [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
285
+ - [`precheck`](https://github.com/fastlane/fastlane/tree/master/precheck): Check your app using a community driven set of App Store review rules to avoid being rejected
284
286
 
285
287
  ##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
286
288
 
data/match/README.md CHANGED
@@ -18,7 +18,8 @@
18
18
  <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
19
19
  <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
20
20
  <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
21
- <b>match</b>
21
+ <b>match</b> &bull;
22
+ <a href="https://github.com/fastlane/fastlane/tree/master/precheck">precheck</a>
22
23
  </p>
23
24
 
24
25
  -------
@@ -406,6 +407,7 @@ Because of the potentially dangerous nature of In-House profiles please use _mat
406
407
  - [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
407
408
  - [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS apps has never been easier
408
409
  - [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
410
+ - [`precheck`](https://github.com/fastlane/fastlane/tree/master/precheck): Check your app using a community driven set of App Store review rules to avoid being rejected
409
411
 
410
412
  # Need help?
411
413
  Please submit an issue on GitHub and provide information about your setup
data/pem/README.md CHANGED
@@ -18,7 +18,8 @@
18
18
  <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
19
19
  <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
20
20
  <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
21
- <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a>
21
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a> &bull;
22
+ <a href="https://github.com/fastlane/fastlane/tree/master/precheck">precheck</a>
22
23
  </p>
23
24
 
24
25
  -------
@@ -167,6 +168,7 @@ Run `fastlane pem --help` to get a list of available environment variables.
167
168
  - [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS app has never been easier
168
169
  - [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
169
170
  - [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
171
+ - [`precheck`](https://github.com/fastlane/fastlane/tree/master/precheck): Check your app using a community driven set of App Store review rules to avoid being rejected
170
172
 
171
173
  ##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
172
174
 
data/pilot/README.md CHANGED
@@ -18,7 +18,8 @@
18
18
  <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
19
19
  <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
20
20
  <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
21
- <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a>
21
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a> &bull;
22
+ <a href="https://github.com/fastlane/fastlane/tree/master/precheck">precheck</a>
22
23
  </p>
23
24
 
24
25
  -------
@@ -242,6 +243,7 @@ fastlane pilot import -c ~/Desktop/testers.csv
242
243
  - [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS apps has never been easier
243
244
  - [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
244
245
  - [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
246
+ - [`precheck`](https://github.com/fastlane/fastlane/tree/master/precheck): Check your app using a community driven set of App Store review rules to avoid being rejected
245
247
 
246
248
  ##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
247
249
 
@@ -0,0 +1,174 @@
1
+ <h3 align="center">
2
+ <a href="https://github.com/fastlane/fastlane/tree/master/fastlane">
3
+ <img src="../fastlane/assets/fastlane.png" width="150" />
4
+ <br />
5
+ fastlane
6
+ </a>
7
+ </h3>
8
+ <p align="center">
9
+ <a href="https://github.com/fastlane/fastlane/tree/master/deliver">deliver</a> &bull;
10
+ <a href="https://github.com/fastlane/fastlane/tree/master/snapshot">snapshot</a> &bull;
11
+ <a href="https://github.com/fastlane/fastlane/tree/master/frameit">frameit</a> &bull;
12
+ <a href="https://github.com/fastlane/fastlane/tree/master/pem">pem</a> &bull;
13
+ <a href="https://github.com/fastlane/fastlane/tree/master/sigh">sigh</a> &bull;
14
+ <a href="https://github.com/fastlane/fastlane/tree/master/produce">produce</a> &bull;
15
+ <a href="https://github.com/fastlane/fastlane/tree/master/cert">cert</a> &bull;
16
+ <a href="https://github.com/fastlane/fastlane/tree/master/spaceship">spaceship</a> &bull;
17
+ <a href="https://github.com/fastlane/fastlane/tree/master/pilot">pilot</a> &bull;
18
+ <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
19
+ <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
20
+ <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
21
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a> &bull;
22
+ <b>precheck</b>
23
+ </p>
24
+
25
+ -------
26
+
27
+ <p align="center">
28
+ <img src="assets/precheck.png" height="110">
29
+ </p>
30
+
31
+ Precheck
32
+ ============
33
+
34
+ [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
35
+ [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/LICENSE)
36
+
37
+ ###### Check your app using a community driven set of App Store review rules to avoid being rejected
38
+
39
+ Apple rejects builds for many avoidable metadata issues like including swear words ๐Ÿ˜ฎ, other companiesโ€™ trademarks, or even mentioning an iOS bug ๐Ÿ›. _fastlane precheck_ takes a lot of the guess work out by scanning your appโ€™s details in iTunes Connect for avoidable problems. fastlane precheck helps you get your app through app review without rejections so you can ship faster ๐Ÿš€
40
+
41
+
42
+ Get in contact with the developers on Twitter: [@FastlaneTools](https://twitter.com/FastlaneTools)
43
+
44
+ -------
45
+
46
+ <p align="center">
47
+ <a href="#features">Features</a> &bull;
48
+ <a href="#quick-start">Quick Start</a> &bull;
49
+ <a href="#usage">Usage</a> &bull;
50
+ <a href="#example">Example</a> &bull;
51
+ <a href="#how-does-it-work">How does it work?</a> &bull;
52
+ <a href="#tips">Tips</a> &bull;
53
+ <a href="#need-help">Need help?</a>
54
+ </p>
55
+
56
+ -------
57
+
58
+ <h5 align="center"><code>precheck</code> is part of <a href="https://fastlane.tools">fastlane</a>: The easiest way to automate beta deployments and releases for your iOS and Android apps.</h5>
59
+
60
+ # Features
61
+
62
+
63
+ | | precheck Features |
64
+ |----------|-----------------|
65
+ |๐Ÿ›| ๏ฃฟ product bug mentions|
66
+ |๐Ÿ™…โ€โ™‚๏ธ|Swear word checker|
67
+ |๐Ÿค–|Mentioning other platforms|
68
+ |๐Ÿ˜ต|URL reachability checker|
69
+ |๐Ÿ“|Placeholder/test words/mentioning future features|
70
+ |๐Ÿ“…|Copyright date checking|
71
+ |๐Ÿ™ˆ|Customizable word list checking|
72
+ |๐Ÿ“ข|You can decide if you want to warn about potential problems and continue or have _fastlane_ show an error and stop after all scans are done.|
73
+
74
+ ##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
75
+
76
+ # Quick Start
77
+
78
+ sudo gem install fastlane
79
+
80
+ # Usage
81
+ Run _fastlane precheck_ to check the app metadata from iTunes Connect
82
+
83
+ fastlane precheck
84
+
85
+ To get a list of available options run
86
+
87
+ fastlane precheck --help
88
+
89
+ <img src="assets/precheck.gif" />
90
+
91
+ # Example
92
+
93
+ Since you might want to manually trigger _precheck_ but don't want to specify all the parameters every time, you can store your defaults in a so called `Precheckfile`.
94
+
95
+ Run `fastlane precheck init` to create a new configuration file. Example:
96
+
97
+ ```ruby
98
+ # indicates that your metadata will not be checked by this rule
99
+ negative_apple_sentiment(level: :skip)
100
+
101
+ # when triggered, this rule will warn you of a potential problem
102
+ curse_words(level: :warn)
103
+
104
+ # show error and prevent any further commands from running after fastlane precheck finishes
105
+ unreachable_urls(level: :error)
106
+
107
+ # pass in whatever words you want to check for
108
+ custom_text(data: ["chrome", "webos"],
109
+ level: :warn)
110
+ ```
111
+
112
+ ### Use with [_fastlane_](https://github.com/fastlane/fastlane/tree/master/fastlane)
113
+
114
+ _precheck_ is fully integrated with [_deliver_](https://github.com/fastlane/fastlane/tree/master/deliver) another [_fastlane_](https://github.com/fastlane/fastlane/tree/master/fastlane) tool.
115
+
116
+ Update your `Fastfile` to contain the following code:
117
+
118
+ ```ruby
119
+ lane :production do
120
+ ...
121
+ # by default deliver will call precheck and warn you of any problems
122
+ # if you want precheck to halt submitting to app review, you can pass
123
+ # precheck_default_rule_level: :error
124
+ deliver(precheck_default_rule_level: :error)
125
+ ...
126
+ end
127
+
128
+ # or if you prefer, you can run precheck alone
129
+ lane :check_metadata do
130
+ precheck
131
+ end
132
+
133
+ ```
134
+
135
+ # How does it work?
136
+
137
+ `precheck` will access `iTunes Connect` to download your app's metadata. It uses [spaceship](https://spaceship.airforce) to communicate with Apple's web services.
138
+
139
+
140
+ # Tips
141
+ ## [`fastlane`](https://fastlane.tools) Toolchain
142
+
143
+ - [`fastlane`](https://fastlane.tools): The easiest way to automate beta deployments and releases for your iOS and Android apps
144
+ - [`deliver`](https://github.com/fastlane/fastlane/tree/master/deliver): Upload screenshots, metadata and your app to the App Store
145
+ - [`snapshot`](https://github.com/fastlane/fastlane/tree/master/snapshot): Automate taking localized screenshots of your iOS app on every device
146
+ - [`frameit`](https://github.com/fastlane/fastlane/tree/master/frameit): Quickly put your screenshots into the right device frames
147
+ - [`pem`](https://github.com/fastlane/fastlane/tree/master/pem): Automatically generate and renew your push notification profiles
148
+ - [`sigh`](https://github.com/fastlane/fastlane/tree/master/sigh): Because you would rather spend your time building stuff than fighting provisioning
149
+ - [`produce`](https://github.com/fastlane/fastlane/tree/master/produce): Create new iOS apps on iTunes Connect and Dev Portal using the command line
150
+ - [`cert`](https://github.com/fastlane/fastlane/tree/master/cert): Automatically create and maintain iOS code signing certificates
151
+ - [`spaceship`](https://github.com/fastlane/fastlane/tree/master/spaceship): Ruby library to access the Apple Dev Center and iTunes Connect
152
+ - [`pilot`](https://github.com/fastlane/fastlane/tree/master/pilot): The best way to manage your TestFlight testers and builds from your terminal
153
+ - [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
154
+ - [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS apps has never been easier
155
+ - [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
156
+ - [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
157
+
158
+ ##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
159
+
160
+ # Need help?
161
+ Please submit an issue on GitHub and provide information about your setup
162
+
163
+ # Want to improve precheck's rules?
164
+ Please submit an issue on GitHub and provide information about your App Store rejection! Make sure you scrub out any personally identifiable information since this will be public.
165
+
166
+ # Code of Conduct
167
+ Help us keep _precheck_ open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
168
+
169
+ # License
170
+ This project is licensed under the terms of the MIT license. See the LICENSE file.
171
+
172
+ > This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.
173
+
174
+