cocoapods-binary-flutter 0.0.9 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.