cocoapods-binary-flutter 0.0.9 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d8015e84e4cd63fcc94031d9c42061ccbcba859d6a7c25897b7d2ed5b8c78eda
4
- data.tar.gz: 620592d6f2b537f272da97b94725313dd57e9c1605a6317cd010c5794fe407db
3
+ metadata.gz: b88c597014cb78cd0a8e606d2898626bd7f196cfb7ce1f4fca3963799364ed1a
4
+ data.tar.gz: af937c5707eedf713370c9cd377fe2acae5d439ad211c3d08789351c5c20ef21
5
5
  SHA512:
6
- metadata.gz: 4011e3fd4efd2f2dd677947a03bc3579c132e3fb6988b1e3d3da31f25366fd8324eb7df640c8b0f03d9716c662edf43615c42703c13439130ef11555c4b241d4
7
- data.tar.gz: 6a0a1581ebccac9e6e377bf26bf2d36b665aac031fb126093d37a644f750252f1b5310a3a6489a0a1376b02a1af514fed13c04958d2cd4816be30b5610b2a12b
6
+ metadata.gz: 15b2c41508730bcab43c192c6785deb78621a162dd816103eca1e09b520a8d8cbda3849499d280622246e41af79cf3dd853ca4b29ee5e1e6e362f18ba913be84
7
+ data.tar.gz: a2716823fc3d0bc5cfd619716bdb6d5616b1fb15de2280fb06f7c1a258cf85f4190c1d005be55eb9ab9cbd9ee64bc5bb21382ca188fceb7594083592cb3fcb66
@@ -1,3 +1,3 @@
1
1
  module CocoapodsBinaryFlutter
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.11"
3
3
  end
@@ -7,12 +7,22 @@ require 'fileutils'
7
7
  require 'uri'
8
8
  require 'net/http'
9
9
  require 'net/https'
10
- require 'colorize'
11
10
 
12
11
  module Pod
13
12
  class Podfile
14
13
  module DSL
15
14
 
15
+ @@enable_fix_flutter_post_install = false
16
+
17
+ def self.enable_fix_flutter_post_install
18
+ @@enable_fix_flutter_post_install
19
+ end
20
+
21
+ def enable_fix_flutter_post_install!
22
+ @@enable_fix_flutter_post_install = true
23
+ end
24
+
25
+
16
26
  #下载
17
27
  def install_remote_flutter_binary(url = nil)
18
28
  #md5
@@ -41,12 +51,18 @@ module Pod
41
51
 
42
52
  end
43
53
 
44
- #判断缓存
45
- if File::directory?(flutter_binary_path) == false
46
- #下载
47
- puts "开始下载 "+url
54
+ #下载解压
55
+ if File.directory?(flutter_binary_path) == false
56
+ # 获取文件大小
48
57
  uri = URI(url)
49
- download_file = open(flutter_binary_home+"/binary.zip", "wb")
58
+ http = Net::HTTP.new(uri.host, uri.port)
59
+ http.use_ssl = true if uri.scheme == 'https'
60
+ response = http.head(uri.request_uri)
61
+ expected_size = response['Content-Length'].to_i
62
+
63
+ # 下载文件
64
+ puts "开始下载 " + url
65
+ download_file = open(File.join(flutter_binary_home, "binary.zip"), "wb")
50
66
  Net::HTTP.start(uri.host, uri.port,
51
67
  :use_ssl => uri.scheme == 'https',
52
68
  :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http|
@@ -61,9 +77,22 @@ module Pod
61
77
  download_file.close
62
78
  end
63
79
  end
64
- #解压
65
- puts "开始解压"+flutter_binary_home
66
- system("unzip", "-n", flutter_binary_home+'/binary.zip', "-d", flutter_binary_home)
80
+
81
+ # 校验文件大小
82
+ actual_size = File.size(File.join(flutter_binary_home, "binary.zip"))
83
+ if actual_size != expected_size
84
+ puts "文件大小和预期不匹配"
85
+ raise "文件大小和预期不匹配"
86
+ end
87
+
88
+ # 解压文件
89
+ puts "开始解压 " + flutter_binary_home
90
+ begin
91
+ system("unzip", "-n", File.join(flutter_binary_home, "binary.zip"), "-d", flutter_binary_home)
92
+ rescue => exception
93
+ puts "解压失败: " + exception.message
94
+ raise "解压失败"
95
+ end
67
96
  end
68
97
 
69
98
  #集成
@@ -80,7 +109,7 @@ module Pod
80
109
 
81
110
  raise "产物依赖需要修改 flutter_post_install(installer) 增加define判断` in Podfile `post_install` block
82
111
  flutter_post_install(installer) if defined?(flutter_post_install)
83
- ".colorize(:red)
112
+ "
84
113
 
85
114
  end
86
115
 
@@ -1,2 +1,37 @@
1
1
  require 'cocoapods-binary-flutter/command'
2
2
  require 'cocoapods-binary-flutter/hook'
3
+
4
+ # 解决多工程 target 的情况下,编译错误,找不到 <Flutter/Flutter.h> 文件
5
+ Pod::HooksManager.register('cocoapods-binary-flutter', :pre_install) do |installer_context, options|
6
+ return unless Pod::Podfile::DSL.enable_fix_flutter_post_install
7
+ return unless defined?(Pod::Podfile.instance_method(:flutter_post_install))
8
+
9
+ swizzled_parse_subspecs = Pod::Podfile.instance_method(:flutter_post_install)
10
+
11
+ define_method(:flutter_post_install) do |installer, skip: false|
12
+ puts "解决多工程 target 的情况下,编译错误,找不到 <Flutter/Flutter.h> 文件"
13
+ # 解决多工程 target 的情况下,编译错误,找不到 <Flutter/Flutter.h> 文件
14
+ installer.aggregate_targets.each do |t|
15
+ t.user_project.native_targets.each do |target|
16
+ # 如果本来就有依赖 Flutter 的话,就不处理了
17
+ next if (target.dependencies.map(&:name).filter { |name| name == 'Flutter' } || []).length > 0
18
+
19
+ # 添加一个 Flutter 的依赖 Target,用于欺骗 Flutter 的 podhelper 脚本来未工程添加配置,用完后去除,避免影响工程
20
+ flutter_target = Xcodeproj::Project::Object::PBXTargetDependency.new(target.project, nil)
21
+ flutter_target.name = 'Flutter'
22
+ target.dependencies << flutter_target
23
+ flutter_additional_ios_build_settings(target)
24
+ target.dependencies.delete flutter_target
25
+ target.project.save
26
+ end
27
+ end
28
+
29
+ # Call old method
30
+ swizzled_parse_subspecs.bind(self).(installer)
31
+ end
32
+ end
33
+
34
+
35
+
36
+
37
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-binary-flutter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jacky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-30 00:00:00.000000000 Z
11
+ date: 2023-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: colorize
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
27
  description: lz binary flutter zip integrated.
42
28
  email:
43
29
  - shanhaoqiang@lizhi.fm
@@ -71,7 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
57
  - !ruby/object:Gem::Version
72
58
  version: '0'
73
59
  requirements: []
74
- rubygems_version: 3.1.4
60
+ rubygems_version: 3.1.6
75
61
  signing_key:
76
62
  specification_version: 4
77
63
  summary: A longer description of cocoapods-binary-flutter.