pindo 4.6.9 → 4.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pindo/base/aeshelper.rb +75 -0
  3. data/lib/pindo/base/funlog.rb +89 -0
  4. data/lib/pindo/base/githelper.rb +35 -18
  5. data/lib/pindo/base/plaininformative.rb +3 -0
  6. data/lib/pindo/base/standarderror.rb +1 -0
  7. data/lib/pindo/base/xcodeconst.rb +251 -0
  8. data/lib/pindo/client/applovinclient.rb +6 -3
  9. data/lib/pindo/client/aws3sclient.rb +33 -46
  10. data/lib/pindo/client/bossclient.rb +1 -1
  11. data/lib/pindo/client/bossconfigclient.rb +3 -3
  12. data/lib/pindo/client/pgyerclient.rb +159 -100
  13. data/lib/pindo/command/appstore/iap.rb +43 -0
  14. data/lib/pindo/command/appstore/itcapp.rb +41 -0
  15. data/lib/pindo/command/appstore/metadata.rb +43 -0
  16. data/lib/pindo/command/appstore/screenshots.rb +43 -0
  17. data/lib/pindo/command/appstore/upload.rb +40 -0
  18. data/lib/pindo/command/appstore.rb +17 -0
  19. data/lib/pindo/command/deploy/build.rb +109 -0
  20. data/lib/pindo/{deploy → command/deploy}/bundleid.rb +1 -1
  21. data/lib/pindo/command/deploy/cert.rb +183 -0
  22. data/lib/pindo/command/deploy/configproj.rb +105 -0
  23. data/lib/pindo/{deploy → command/deploy}/getitcinfo.rb +1 -1
  24. data/lib/pindo/{deploy → command/deploy}/iap.rb +30 -9
  25. data/lib/pindo/{deploy → command/deploy}/itcapp.rb +0 -1
  26. data/lib/pindo/{deploy → command/deploy}/itcinfo.rb +2 -3
  27. data/lib/pindo/{deploy → command/deploy}/pem.rb +3 -2
  28. data/lib/pindo/{deploy → command/deploy}/resign.rb +14 -63
  29. data/lib/pindo/command/deploy.rb +44 -0
  30. data/lib/pindo/{dev → command/dev}/autobuild.rb +28 -76
  31. data/lib/pindo/{dev → command/dev}/autoresign.rb +21 -64
  32. data/lib/pindo/command/dev/build.rb +94 -0
  33. data/lib/pindo/{dev → command/dev}/createbuild.rb +0 -2
  34. data/lib/pindo/{dev → command/dev}/debug.rb +6 -2
  35. data/lib/pindo/command/dev/pgyercert.rb +75 -0
  36. data/lib/pindo/command/dev.rb +26 -0
  37. data/lib/pindo/command/env.rb +17 -0
  38. data/lib/pindo/{ipa → command/ipa}/autoresign.rb +22 -70
  39. data/lib/pindo/{ipa → command/ipa}/import.rb +48 -103
  40. data/lib/pindo/{ipa → command/ipa}/output.rb +43 -135
  41. data/lib/pindo/command/ipa.rb +16 -0
  42. data/lib/pindo/{lib → command/lib}/update.rb +23 -14
  43. data/lib/pindo/command/lib.rb +16 -0
  44. data/lib/pindo/{pgyer → command/pgyer}/apptest.rb +7 -29
  45. data/lib/pindo/{pgyer → command/pgyer}/comment.rb +7 -30
  46. data/lib/pindo/{pgyer → command/pgyer}/download.rb +35 -30
  47. data/lib/pindo/{pgyer → command/pgyer}/login.rb +3 -4
  48. data/lib/pindo/command/pgyer/resign.rb +111 -0
  49. data/lib/pindo/command/pgyer/upload.rb +123 -0
  50. data/lib/pindo/command/pgyer.rb +18 -0
  51. data/lib/pindo/{repo.rb → command/repo.rb} +4 -4
  52. data/lib/pindo/{utils → command/utils}/applovin.rb +43 -33
  53. data/lib/pindo/{utils → command/utils}/boss.rb +3 -3
  54. data/lib/pindo/command/utils/icon.rb +81 -0
  55. data/lib/pindo/{utils → command/utils}/renewproj.rb +1 -0
  56. data/lib/pindo/command/utils.rb +26 -0
  57. data/lib/pindo/command.rb +23 -26
  58. data/lib/pindo/config/pindoconfig.rb +27 -0
  59. data/lib/pindo/module/appselect.rb +9 -8
  60. data/lib/pindo/module/build/swarkhelper.rb +95 -0
  61. data/lib/pindo/module/cert/certhelper.rb +187 -0
  62. data/lib/pindo/module/cert/keychainhelper.rb +150 -0
  63. data/lib/pindo/module/{pemcreate.rb → cert/pemhelper.rb} +3 -1
  64. data/lib/pindo/module/cert/provisioninghelper.rb +137 -0
  65. data/lib/pindo/module/cert/xcodecerthelper.rb +326 -0
  66. data/lib/pindo/module/{pgyerhelper.rb → pgyer/pgyerhelper.rb} +246 -36
  67. data/lib/pindo/module/xcode/xcodeappconfig.rb +188 -0
  68. data/lib/pindo/module/xcode/xcodebuildconfig.rb +12 -0
  69. data/lib/pindo/module/xcode/xcodebuildhelper.rb +312 -0
  70. data/lib/pindo/module/xcode/xcoderesconstant.rb +248 -0
  71. data/lib/pindo/module/xcode/xcodereshandler.rb +198 -0
  72. data/lib/pindo/module/xcode/xcodereshelper.rb +119 -0
  73. data/lib/pindo/options/appconfigoptions.rb +1 -0
  74. data/lib/pindo/options/deployoptions.rb +38 -42
  75. data/lib/pindo/version.rb +1 -1
  76. metadata +110 -97
  77. data/lib/pindo/deploy/Fastfile +0 -233
  78. data/lib/pindo/deploy/build.rb +0 -167
  79. data/lib/pindo/deploy/cert.rb +0 -508
  80. data/lib/pindo/deploy/configproj.rb +0 -89
  81. data/lib/pindo/deploy.rb +0 -44
  82. data/lib/pindo/dev.rb +0 -23
  83. data/lib/pindo/env/flutter.rb +0 -59
  84. data/lib/pindo/env/flutter.sh +0 -116
  85. data/lib/pindo/env.rb +0 -17
  86. data/lib/pindo/ipa.rb +0 -22
  87. data/lib/pindo/lib.rb +0 -18
  88. data/lib/pindo/module/buildconfighelper.rb +0 -13
  89. data/lib/pindo/module/buildhelper.rb +0 -76
  90. data/lib/pindo/module/config_project.sh +0 -143
  91. data/lib/pindo/module/configprojhelper.rb +0 -631
  92. data/lib/pindo/module/icon_contents.json +0 -116
  93. data/lib/pindo/module/imessage_icon.json +0 -91
  94. data/lib/pindo/module/imgset_contents.json +0 -21
  95. data/lib/pindo/module/launchimg_contents.json +0 -21
  96. data/lib/pindo/module/xcodebuildpre.rb +0 -258
  97. data/lib/pindo/pgyer/upload.rb +0 -234
  98. data/lib/pindo/pgyer.rb +0 -17
  99. data/lib/pindo/utils/icon.rb +0 -91
  100. data/lib/pindo/utils/icon.sh +0 -133
  101. data/lib/pindo/utils/podindex.rb +0 -56
  102. data/lib/pindo/utils/podindex.sh +0 -30
  103. data/lib/pindo/utils.rb +0 -29
  104. /data/lib/pindo/{deploy → command/deploy}/check.rb +0 -0
  105. /data/lib/pindo/{deploy → command/deploy}/confusecode.rb +0 -0
  106. /data/lib/pindo/{deploy → command/deploy}/confuseproj.rb +0 -0
  107. /data/lib/pindo/{deploy → command/deploy}/fabric.rb +0 -0
  108. /data/lib/pindo/{deploy → command/deploy}/initconfig.rb +0 -0
  109. /data/lib/pindo/{deploy → command/deploy}/pullconfig.rb +0 -0
  110. /data/lib/pindo/{deploy → command/deploy}/pushconfig.rb +0 -0
  111. /data/lib/pindo/{deploy → command/deploy}/quswark.rb +0 -0
  112. /data/lib/pindo/{deploy → command/deploy}/quswauth.rb +0 -0
  113. /data/lib/pindo/{deploy → command/deploy}/reportbug.rb +0 -0
  114. /data/lib/pindo/{deploy → command/deploy}/tag.rb +0 -0
  115. /data/lib/pindo/{deploy → command/deploy}/updateconfig.rb +0 -0
  116. /data/lib/pindo/{deploy → command/deploy}/uploadipa.rb +0 -0
  117. /data/lib/pindo/{dev → command/dev}/confusecode.rb +0 -0
  118. /data/lib/pindo/{dev → command/dev}/confuseproj.rb +0 -0
  119. /data/lib/pindo/{dev → command/dev}/pub.rb +0 -0
  120. /data/lib/pindo/{dev → command/dev}/renewcert.rb +0 -0
  121. /data/lib/pindo/{env → command/env}/dreamstudio.rb +0 -0
  122. /data/lib/pindo/{env → command/env}/quarkenv.rb +0 -0
  123. /data/lib/pindo/{env → command/env}/swarkenv.rb +0 -0
  124. /data/lib/pindo/{env → command/env}/workhard.rb +0 -0
  125. /data/lib/pindo/{lib → command/lib}/forcepush.rb +0 -0
  126. /data/lib/pindo/{lib → command/lib}/lint.rb +0 -0
  127. /data/lib/pindo/{lib → command/lib}/push.rb +0 -0
  128. /data/lib/pindo/{repo → command/repo}/clone.rb +0 -0
  129. /data/lib/pindo/{repo → command/repo}/create.rb +0 -0
  130. /data/lib/pindo/{repo → command/repo}/login.rb +0 -0
  131. /data/lib/pindo/{repo → command/repo}/search.rb +0 -0
  132. /data/lib/pindo/{setup.rb → command/setup.rb} +0 -0
  133. /data/lib/pindo/{upgrade.rb → command/upgrade.rb} +0 -0
  134. /data/lib/pindo/{utils → command/utils}/clearcert.rb +0 -0
  135. /data/lib/pindo/{utils → command/utils}/device.rb +0 -0
  136. /data/lib/pindo/{utils → command/utils}/tgate.rb +0 -0
  137. /data/lib/pindo/{utils → command/utils}/xcassets.rb +0 -0
  138. /data/lib/pindo/{utils → command/utils}/xcassets.sh +0 -0
  139. /data/lib/pindo/module/{appstore_in_app_purchase.rb → appstore/appstore_in_app_purchase.rb} +0 -0
  140. /data/lib/pindo/module/{appstore_metadata_connect_api_helper.rb → appstore/appstore_metadata_connect_api_helper.rb} +0 -0
  141. /data/lib/pindo/module/{appstore_metadata_fastlane_helper.rb → appstore/appstore_metadata_fastlane_helper.rb} +0 -0
  142. /data/lib/pindo/module/{iap_tier.json → appstore/iap_tier.json} +0 -0
  143. /data/lib/pindo/module/{commonconfuseproj.rb → build/commonconfuseproj.rb} +0 -0
  144. /data/lib/pindo/module/{xcodehelper.rb → xcode/xcodehelper.rb} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 78cbf0c3494294a495f70d4d68732ab4d7fcb111efb47c13832bcc5570fdda49
4
- data.tar.gz: 9b6072f6a35def3e42a09f36796bbe4a4999e2157d76225864ba3325a55d6d1c
3
+ metadata.gz: 5d5ed09cbd0c1dd5f1fae766fd8d97f98e786b25d34056f8065efede5f478cc0
4
+ data.tar.gz: b75e1716c757c7d2eabcb5c757c5ea8df886f4e1338cf984d04232a6acd180b6
5
5
  SHA512:
6
- metadata.gz: cb6837bd54cd72e830010a5d263437913af930b6c3e9ce1c15ee9450a0699fa58e74b3cc14de69f6979efd147b051536d4698e36eebecfa47c6b6d6c97f5f731
7
- data.tar.gz: 44b8eefc1b54857a60f20a72026f790bf134110976b97415dee6419086336cd7f30472cccdc37b7dda501a878609a279d55dbd5f8c9ca21eb99cf47dc773eb8e
6
+ metadata.gz: 670591b6329e7d53bdb36156a3dcea8cac1a1477ada5f1451e22d1e457cdc0c91f34c4a5c705844902c48f259e06fec7bb7800f003e41702f20b1e8026cbd14c
7
+ data.tar.gz: 1327366d3216fd62a113997380b48bf66797092cb81a374557abb9d50c942278efba586751134babafa27810cad6b30eeed5d7d367eadf7071e00c5f9c081ab5
@@ -1,9 +1,37 @@
1
+ require 'openssl'
2
+
1
3
  module Pindo
2
4
 
3
5
 
4
6
  module AESHelper
5
7
 
6
8
 
9
+ def self.fetch_password(keychain_name:nil)
10
+ # password = ENV["MATCH_PASSWORD"]
11
+
12
+ server_name = ["pindo", keychain_name].join("_")
13
+
14
+ item = Security::InternetPassword.find(server: server_name)
15
+
16
+ password = item.password if item
17
+
18
+ unless password
19
+
20
+ password = FastlaneCore::Helper.ask_password(message: "请输入证书仓库的加密密码: ", confirm: true)
21
+ Security::InternetPassword.add(server_name, "", password)
22
+ end
23
+ return password
24
+ end
25
+
26
+ def self.delete_password(keychain_name:nil)
27
+ server_name = ["pindo", keychain_name].join("_")
28
+ Security::InternetPassword.delete(server_name)
29
+ end
30
+
31
+ def self.store_password(keychain_name:nil, password:nil)
32
+ server_name = ["pindo", keychain_name].join("_")
33
+ Security::InternetPassword.add(server_name, "", password)
34
+ end
7
35
 
8
36
 
9
37
  def self.aes_128_ecb_encrypt(key, encrypted_string)
@@ -24,6 +52,53 @@ module Pindo
24
52
  end
25
53
 
26
54
 
55
+ def self.encrypt_specific_file(src_file: nil, password: nil, output_dir: nil)
56
+ UI.user_error!("No password supplied") if password.to_s.strip.length == 0
57
+
58
+ data_to_encrypt = File.binread(path)
59
+ salt = SecureRandom.random_bytes(8)
60
+
61
+ # The :: is important, as there is a name clash
62
+ cipher = ::OpenSSL::Cipher.new('AES-256-CBC')
63
+ cipher.encrypt
64
+ cipher.pkcs5_keyivgen(password, salt, 1, "MD5")
65
+ encrypted_data = "Salted__" + salt + cipher.update(data_to_encrypt) + cipher.final
66
+
67
+ destfile = File.join(output_dir, File.basename(src_file))
68
+ File.write(destfile, Base64.encode64(encrypted_data))
69
+ return destfile
70
+ rescue error
71
+ puts path
72
+ raise Informative, error
73
+ end
74
+
75
+ # The encryption parameters in this implementations reflect the old behavior which depended on the users' local OpenSSL version
76
+ # 1.0.x OpenSSL and earlier versions use MD5, 1.1.0c and newer uses SHA256, we try both before giving an error
77
+ def self.decrypt_specific_file(src_file: nil, password: nil, output_dir: nil, hash_algorithm: "MD5")
78
+
79
+ begin
80
+ stored_data = Base64.decode64(File.read(src_file))
81
+ salt = stored_data[8..15]
82
+ data_to_decrypt = stored_data[16..-1]
83
+
84
+ decipher = ::OpenSSL::Cipher.new('AES-256-CBC')
85
+ decipher.decrypt
86
+ decipher.pkcs5_keyivgen(password, salt, 1, hash_algorithm)
87
+
88
+ decrypted_data = decipher.update(data_to_decrypt) + decipher.final
89
+ destfile = File.join(output_dir, File.basename(src_file))
90
+ File.binwrite(destfile, decrypted_data)
91
+ return destfile
92
+ rescue => error
93
+ fallback_hash_algorithm = "SHA256"
94
+ if hash_algorithm != fallback_hash_algorithm
95
+ decrypt_specific_file(src_file: src_file, password: password, hash_algorithm: fallback_hash_algorithm)
96
+ else
97
+ Funlog.instance.fancyinfo_error("解析文件失败: #{src_file}")
98
+ return nil
99
+ end
100
+ end
101
+ end
27
102
 
28
103
  end
29
104
 
@@ -0,0 +1,89 @@
1
+ require "tty-spinner"
2
+
3
+ module Pindo
4
+
5
+ class Funlog
6
+
7
+
8
+ def create_spinner(info_key:nil)
9
+ # spinner = TTY::Spinner.new("[:spinner] :#{info_key}", format: :dots_2, error_mark: "❌", success_mark: "✅")
10
+ spinner = TTY::Spinner.new("[:spinner] :#{info_key}", format: :dots_2, error_mark: "❌")
11
+ spinner
12
+ end
13
+
14
+ def spinner_log_handle
15
+ if @spinner_log.nil?
16
+ @spinner_log = create_spinner(info_key:"title")
17
+ end
18
+ @spinner_log
19
+ end
20
+
21
+
22
+
23
+ def fancyinfo_start(*args)
24
+ message = args.join(" ")
25
+ spinner_log_handle.update(title:message)
26
+ spinner_log_handle.auto_spin
27
+ @spinner_log
28
+ end
29
+
30
+
31
+ def fancyinfo_update(*args)
32
+ message = args.join(" ")
33
+ spinner_log_handle.update(title:message)
34
+ spinner_log_handle.spin
35
+ @spinner_log
36
+ end
37
+
38
+ def fancyinfo_success(*args)
39
+ message = args.join(" ")
40
+ spinner_log_handle.update(title:message)
41
+ spinner_log_handle.success
42
+ @spinner_log =nil
43
+ end
44
+
45
+ def fancyinfo_error(*args)
46
+ message = args.join(" ")
47
+ spinner_log_handle.update(title:message)
48
+ spinner_log_handle.error
49
+ @spinner_log =nil
50
+ end
51
+
52
+ #-------------------------------------------------------------------------#
53
+ #-------------------------------------------------------------------------#
54
+ # @!group Singleton
55
+
56
+ # @return [Config] the current config instance creating one if needed.
57
+ #
58
+ def self.reload_instance
59
+ @instance = new
60
+ end
61
+
62
+ def self.instance
63
+ @instance ||= new
64
+ end
65
+
66
+ # Sets the current config instance. If set to nil the config will be
67
+ # recreated when needed.
68
+ #
69
+ # @param [Config, Nil] the instance.
70
+ #
71
+ # @return [void]
72
+ #
73
+ class << self
74
+ attr_writer :instance
75
+ end
76
+
77
+ # Provides support for accessing the configuration instance in other
78
+ # scopes.
79
+ #
80
+ module Mixin
81
+ def pindo_log_instance
82
+ Funlog.instance
83
+ end
84
+ end
85
+
86
+ end
87
+
88
+
89
+ end
@@ -199,6 +199,11 @@ module Pindo
199
199
  def git_latest_commit_id(local_repo_dir:nil)
200
200
 
201
201
  current=Dir.pwd
202
+
203
+ unless File.exist?(File::join(local_repo_dir, ".git"))
204
+ return nil
205
+ end
206
+
202
207
  commit_id = nil
203
208
 
204
209
  if File.exist?(local_repo_dir)
@@ -218,13 +223,14 @@ module Pindo
218
223
 
219
224
  def getcode_to_dir(reponame:nil, remote_url:nil, path: nil, new_branch:"master", new_tag: nil)
220
225
 
221
- current=Dir.pwd
222
- # puts reponame
223
- # puts remote_url
224
- # puts path
226
+ current=Dir.pwd
227
+ local_repo_dir = File::join(path, reponame)
228
+
229
+ Funlog.instance.fancyinfo_update("开始更新仓库:#{local_repo_dir}...")
230
+
231
+ begin
232
+
225
233
 
226
- local_repo_dir = File::join(path, reponame)
227
- puts "正在更新仓库: #{local_repo_dir}"
228
234
  if !reponame.empty? && !remote_url.empty? && !path.empty?
229
235
 
230
236
  if File.exist?(local_repo_dir)
@@ -243,15 +249,10 @@ module Pindo
243
249
 
244
250
  git!(%W(-C #{local_repo_dir} fetch origin --progress))
245
251
  else
246
- puts "Cloning `#{remote_url}` into `#{local_repo_dir}`."
247
252
  git! ['clone', remote_url, local_repo_dir]
248
253
  end
249
254
 
250
255
  Dir.chdir(local_repo_dir)
251
- if !remote_branch_exists?(local_repo_dir:local_repo_dir, branch:new_branch)
252
- raise Informative, "仓库中的#{new_branch}分支不存在 !!!"
253
- end
254
-
255
256
  current_branch = git!(%W(-C #{local_repo_dir} rev-parse --abbrev-ref HEAD)).strip
256
257
  if current_branch.eql?(new_branch)
257
258
  git!(%W(-C #{local_repo_dir} reset --hard origin/#{new_branch}))
@@ -263,7 +264,11 @@ module Pindo
263
264
  if local_branch_exists?(local_repo_dir:local_repo_dir, branch:new_branch)
264
265
  git!(%W(-C #{local_repo_dir} checkout #{new_branch}))
265
266
  else
266
- git!(%W(-C #{local_repo_dir} checkout -b #{new_branch}))
267
+ if !remote_branch_exists?(local_repo_dir:local_repo_dir, branch:new_branch)
268
+ git!(%W(-C #{local_repo_dir} checkout -b #{new_branch}))
269
+ else
270
+ raise Informative, "仓库中的#{new_branch}分支不存在 !!!"
271
+ end
267
272
  end
268
273
  git!(%W(-C #{local_repo_dir} branch --set-upstream-to=origin/#{new_branch} #{new_branch}))
269
274
  git!(%W(-C #{local_repo_dir} pull))
@@ -279,9 +284,17 @@ module Pindo
279
284
  end
280
285
 
281
286
  end
287
+ $stdin.flush
288
+ Funlog.instance.fancyinfo_success("仓库#{local_repo_dir}更新完成!")
289
+ rescue StandardError => e
282
290
 
283
- Dir.chdir(current)
284
- return local_repo_dir
291
+ Funlog.instance.fancyinfo_error("仓库#{local_repo_dir}更新失败!")
292
+
293
+ raise Informative, e.to_s
294
+ end
295
+
296
+ Dir.chdir(current)
297
+ return local_repo_dir
285
298
  end
286
299
 
287
300
  def get_repo_base_name(repo_url:nil)
@@ -294,6 +307,7 @@ module Pindo
294
307
 
295
308
  def clong_buildconfig_repo(repo_name:nil)
296
309
 
310
+
297
311
  pindo_dir = File::expand_path(Pindoconfig.instance.pindo_dir)
298
312
  if !File.exist?(pindo_dir)
299
313
  FileUtils.mkdir(pindo_dir)
@@ -310,6 +324,9 @@ module Pindo
310
324
  url = File.join("https://gitee.com", repo_org_name, repo_name + ".git")
311
325
  getcode_to_dir(reponame:repo_name, remote_url: url, path:pindo_dir)
312
326
  config_repo_dir = File.join(pindo_dir, repo_name)
327
+
328
+
329
+
313
330
  return config_repo_dir
314
331
  end
315
332
 
@@ -390,12 +407,12 @@ module Pindo
390
407
  git! ['commit', '-m ' + "#{message}"]
391
408
  git! ['push']
392
409
  else
393
- puts "\n#{path}\n!!!仓库中文件未发生变化,无需提交!!!\n"
410
+ # puts "\n#{path}\n!!!仓库中文件未发生变化,无需提交!!!\n"
394
411
  end
395
412
  else
396
413
  files_list = git! ['ls-files', '--other', '--modified', '--exclude-standard'] || []
397
- puts "提交如下内容:"
398
- puts files_list
414
+ # puts "提交如下内容:"
415
+ # puts files_list
399
416
  if !files_list.nil? && files_list.size > 0
400
417
  git! ['add', '-A']
401
418
  git! ['commit', '-m ' + "#{message}"]
@@ -406,7 +423,7 @@ module Pindo
406
423
  end
407
424
 
408
425
  rescue => error
409
- puts(error.to_s)
426
+ # puts(error.to_s)
410
427
  raise Informative, "\n#{path}\n 仓库失败 !!!"
411
428
  end
412
429
 
@@ -1,3 +1,6 @@
1
+ require 'pindo/base/standarderror'
2
+
3
+
1
4
  module Pindo
2
5
 
3
6
  require 'claide'
@@ -1,3 +1,4 @@
1
+
1
2
  module Pindo
2
3
 
3
4
  require 'pindo/version'
@@ -0,0 +1,251 @@
1
+ require 'openssl'
2
+
3
+ module Pindo
4
+
5
+
6
+ module XcodoeConst
7
+
8
+ def self.xcode_ios_icon_json
9
+ model_data = {
10
+ "images" => [
11
+ {
12
+ "size" => "20x20",
13
+ "idiom" => "iphone",
14
+ "filename" => "icon20@2x.png",
15
+ "scale" => "2x"
16
+ },
17
+ {
18
+ "size" => "20x20",
19
+ "idiom" => "iphone",
20
+ "filename" => "icon20@3x.png",
21
+ "scale" => "3x"
22
+ },
23
+ {
24
+ "size" => "29x29",
25
+ "idiom" => "iphone",
26
+ "filename" => "icon29@2x.png",
27
+ "scale" => "2x"
28
+ },
29
+ {
30
+ "size" => "29x29",
31
+ "idiom" => "iphone",
32
+ "filename" => "icon29@3x.png",
33
+ "scale" => "3x"
34
+ },
35
+ {
36
+ "size" => "40x40",
37
+ "idiom" => "iphone",
38
+ "filename" => "icon40@2x.png",
39
+ "scale" => "2x"
40
+ },
41
+ {
42
+ "size" => "40x40",
43
+ "idiom" => "iphone",
44
+ "filename" => "icon40@3x.png",
45
+ "scale" => "3x"
46
+ },
47
+ {
48
+ "size" => "60x60",
49
+ "idiom" => "iphone",
50
+ "filename" => "icon60@2x.png",
51
+ "scale" => "2x"
52
+ },
53
+ {
54
+ "size" => "60x60",
55
+ "idiom" => "iphone",
56
+ "filename" => "icon60@3x.png",
57
+ "scale" => "3x"
58
+ },
59
+ {
60
+ "size" => "20x20",
61
+ "idiom" => "ipad",
62
+ "filename" => "icon20@1x.png",
63
+ "scale" => "1x"
64
+ },
65
+ {
66
+ "size" => "20x20",
67
+ "idiom" => "ipad",
68
+ "filename" => "icon20@2x.png",
69
+ "scale" => "2x"
70
+ },
71
+ {
72
+ "size" => "29x29",
73
+ "idiom" => "ipad",
74
+ "filename" => "icon29@1x.png",
75
+ "scale" => "1x"
76
+ },
77
+ {
78
+ "size" => "29x29",
79
+ "idiom" => "ipad",
80
+ "filename" => "icon29@2x.png",
81
+ "scale" => "2x"
82
+ },
83
+ {
84
+ "size" => "40x40",
85
+ "idiom" => "ipad",
86
+ "filename" => "icon40@1x.png",
87
+ "scale" => "1x"
88
+ },
89
+ {
90
+ "size" => "40x40",
91
+ "idiom" => "ipad",
92
+ "filename" => "icon40@2x.png",
93
+ "scale" => "2x"
94
+ },
95
+ {
96
+ "size" => "76x76",
97
+ "idiom" => "ipad",
98
+ "filename" => "icon76@1x.png",
99
+ "scale" => "1x"
100
+ },
101
+ {
102
+ "size" => "76x76",
103
+ "idiom" => "ipad",
104
+ "filename" => "icon76@2x.png",
105
+ "scale" => "2x"
106
+ },
107
+ {
108
+ "size" => "83.5x83.5",
109
+ "idiom" => "ipad",
110
+ "filename" => "icon83_5@2x.png",
111
+ "scale" => "2x"
112
+ },
113
+ {
114
+ "size" => "1024x1024",
115
+ "idiom" => "ios-marketing",
116
+ "filename" => "icon1024@1x.png",
117
+ "scale" => "1x"
118
+ }
119
+ ],
120
+ "info" => {
121
+ "version" => 1,
122
+ "author" => "xcode"
123
+ }
124
+ }
125
+ return model_data
126
+ end
127
+
128
+ def self.xcode_ios_imessage_icon_json
129
+ model_data = {
130
+ "images" => [
131
+ {
132
+ "size" => "29x29",
133
+ "idiom" => "iphone",
134
+ "filename" => "icon29@2x.png",
135
+ "scale" => "2x"
136
+ },
137
+ {
138
+ "size" => "29x29",
139
+ "idiom" => "iphone",
140
+ "filename" => "icon29@3x.png",
141
+ "scale" => "3x"
142
+ },
143
+ {
144
+ "size" => "60x45",
145
+ "idiom" => "iphone",
146
+ "filename" => "icon60_45@2x.png",
147
+ "scale" => "2x"
148
+ },
149
+ {
150
+ "size" => "60x45",
151
+ "idiom" => "iphone",
152
+ "filename" => "icon60_45@3x.png",
153
+ "scale" => "3x"
154
+ },
155
+ {
156
+ "size" => "29x29",
157
+ "idiom" => "ipad",
158
+ "filename" => "icon29@2x.png",
159
+ "scale" => "2x"
160
+ },
161
+ {
162
+ "size" => "67x50",
163
+ "idiom" => "ipad",
164
+ "filename" => "icon67_50@2x.png",
165
+ "scale" => "2x"
166
+ },
167
+ {
168
+ "size" => "74x55",
169
+ "idiom" => "ipad",
170
+ "filename" => "icon74_55@2x.png",
171
+ "scale" => "2x"
172
+ },
173
+ {
174
+ "size" => "1024x1024",
175
+ "idiom" => "ios-marketing",
176
+ "filename" => "icon1024@1x.png",
177
+ "scale" => "1x"
178
+ },
179
+ {
180
+ "size" => "27x20",
181
+ "idiom" => "universal",
182
+ "filename" => "icon27_20@2x.png",
183
+ "scale" => "2x",
184
+ "platform" => "ios"
185
+ },
186
+ {
187
+ "size" => "27x20",
188
+ "idiom" => "universal",
189
+ "filename" => "icon27_20@3x.png",
190
+ "scale" => "3x",
191
+ "platform" => "ios"
192
+ },
193
+ {
194
+ "size" => "32x24",
195
+ "idiom" => "universal",
196
+ "filename" => "icon32_24@2x.png",
197
+ "scale" => "2x",
198
+ "platform" => "ios"
199
+ },
200
+ {
201
+ "size" => "32x24",
202
+ "idiom" => "universal",
203
+ "filename" => "icon32_24@3x.png",
204
+ "scale" => "3x",
205
+ "platform" => "ios"
206
+ },
207
+ {
208
+ "size" => "1024x768",
209
+ "idiom" => "ios-marketing",
210
+ "filename" => "icon1024_768@1x.png",
211
+ "scale" => "1x",
212
+ "platform" => "ios"
213
+ }
214
+ ],
215
+ "info" => {
216
+ "version" => 1,
217
+ "author" => "xcode"
218
+ }
219
+ }
220
+ return model_data
221
+ end
222
+
223
+
224
+
225
+ XCODE_IOS_LAUNCHIMG_JSON = {
226
+ "images" => [
227
+ {
228
+ "idiom" => "universal",
229
+ "scale" => "1x"
230
+ },
231
+ {
232
+ "idiom" => "universal",
233
+ "filename" => "w768_h1024@2x.png",
234
+ "scale" => "2x"
235
+ },
236
+ {
237
+ "idiom" => "universal",
238
+ "scale" => "3x"
239
+ }
240
+ ],
241
+ "info" => {
242
+ "version" => 1,
243
+ "author" => "xcode"
244
+ }
245
+ }
246
+
247
+
248
+ end
249
+
250
+
251
+ end
@@ -113,8 +113,11 @@ module Pindo
113
113
  result_data = JSON.parse(res.body)
114
114
 
115
115
  end
116
- puts JSON.pretty_generate(result_data)
116
+ # puts JSON.pretty_generate(result_data)
117
+
118
+ # return result_data
117
119
 
120
+ return nil
118
121
  end
119
122
 
120
123
 
@@ -144,9 +147,9 @@ module Pindo
144
147
  if !res.body.nil?
145
148
  result_data = JSON.parse(res.body)
146
149
  end
147
- puts JSON.pretty_generate(result_data)
150
+ # puts JSON.pretty_generate(result_data)
148
151
 
149
- return result_data
152
+ return nil
150
153
 
151
154
  end
152
155