cocoapods-bb-xcframework 0.2.5 → 0.2.6.1
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 +4 -4
- data/README.md +5 -0
- data/lib/cocoapods-xcframework/command/xcframework.rb +5 -2
- data/lib/cocoapods-xcframework/frameworker.rb +7 -3
- data/lib/cocoapods-xcframework/gem_version.rb +1 -1
- data/lib/cocoapods-xcframework/util/pod_util.rb +23 -1
- data/lib/cocoapods-xcframework/xbuilder.rb +21 -6
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '08c6a4feaf42fcaf08cf0850541fd0d64f28e2f35fce462bee195625b3aa02b1'
|
|
4
|
+
data.tar.gz: 2d10b0fdf6c83246d5858f21edade1cfa6c731099c3eae9931303144eecafd5b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 21f47c1d01df0b98de368bb131f6f2f384f180c429f10bb20d7ff96d18cc19ed74d41747c517f0c1b94e743d6a6d75762e0656aeb9d82a220eecc69af61a8401
|
|
7
|
+
data.tar.gz: 19ab879bc014ef08bd422ba70fdd9e6caed3e8f5b0b8b802b7af8f4f5b493fea78fbe3674ca6fd028de95b0de03bdefebfe5e8b1fef0997090b60b32ae7405c3
|
data/README.md
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
- 支持 `subspec` 打包
|
|
15
15
|
- 支持二进制库是否`生成符号表`、`生成Mac Catalyst`(默认生成)详见`pod xcframework --help`
|
|
16
16
|
- 支持Xcode14打包,去除armv7/i386架构
|
|
17
|
+
- 支持生成静态链接库/动态共享库
|
|
17
18
|
|
|
18
19
|
## Installation
|
|
19
20
|
|
|
@@ -61,6 +62,10 @@ Options:
|
|
|
61
62
|
--no-support-maccatalyst package support
|
|
62
63
|
generate
|
|
63
64
|
MacCatalyst
|
|
65
|
+
--no-support-dynamic package support
|
|
66
|
+
Mach-O dynamically
|
|
67
|
+
linked shared
|
|
68
|
+
library
|
|
64
69
|
--allow-root Allows CocoaPods
|
|
65
70
|
to run as root
|
|
66
71
|
--silent Show nothing
|
|
@@ -35,7 +35,8 @@ module Pod
|
|
|
35
35
|
['--no-static-library', 'package not use static library'],
|
|
36
36
|
['--enable-bitcode', 'package enable bitcode'],
|
|
37
37
|
['--no-symbols', 'package not use symbols'], # 符号表
|
|
38
|
-
['--no-support-maccatalyst', 'package support generate MacCatalyst'] # 是否支持MacCatalyst方式支持iOS应用在mac平台运行库生成
|
|
38
|
+
['--no-support-maccatalyst', 'package support generate MacCatalyst'], # 是否支持MacCatalyst方式支持iOS应用在mac平台运行库生成
|
|
39
|
+
['--no-support-dynamic', 'package support Mach-O dynamically linked shared library'] # 是否支持动态库生成
|
|
39
40
|
].concat super
|
|
40
41
|
end
|
|
41
42
|
|
|
@@ -52,6 +53,7 @@ module Pod
|
|
|
52
53
|
@enable_bitcode = argv.flag?('enable-bitcode',false)
|
|
53
54
|
@symbols = argv.flag?('symbols',true)
|
|
54
55
|
@support_maccatalyst = argv.flag?('support-maccatalyst',true)
|
|
56
|
+
@support_dynamic = argv.flag?('support-dynamic',false)
|
|
55
57
|
config.static_library_enable = @use_static_library
|
|
56
58
|
super
|
|
57
59
|
end
|
|
@@ -62,7 +64,8 @@ module Pod
|
|
|
62
64
|
end
|
|
63
65
|
|
|
64
66
|
def run
|
|
65
|
-
|
|
67
|
+
UI.puts "argvs @name:#{@name} @source:#{@source} @spec_sources:#{@spec_sources}"
|
|
68
|
+
frameworker = Frameworker.new(@name, @source, @spec_sources, @subspecs, @configuration, @force, @use_modular_headers, @enable_bitcode, @symbols, @support_maccatalyst, @support_dynamic)
|
|
66
69
|
frameworker.run
|
|
67
70
|
end
|
|
68
71
|
end
|
|
@@ -3,7 +3,7 @@ module Pod
|
|
|
3
3
|
include PodUtil
|
|
4
4
|
include DirUtil
|
|
5
5
|
include Config::Mixin
|
|
6
|
-
def initialize(name, source, spec_sources, subspecs, configuration, force, use_modular_headers=true, enable_bitcode=false, symbols=true, support_maccatalyst=true)
|
|
6
|
+
def initialize(name, source, spec_sources, subspecs, configuration, force, use_modular_headers=true, enable_bitcode=false, symbols=true, support_maccatalyst=true, support_dynamic=false)
|
|
7
7
|
@name = name
|
|
8
8
|
@source = source
|
|
9
9
|
@spec_sources = spec_sources
|
|
@@ -14,10 +14,12 @@ module Pod
|
|
|
14
14
|
@enable_bitcode = enable_bitcode
|
|
15
15
|
@symbols = symbols
|
|
16
16
|
@support_maccatalyst = support_maccatalyst
|
|
17
|
+
@support_dynamic = support_dynamic
|
|
17
18
|
end
|
|
18
19
|
|
|
19
20
|
def run
|
|
20
21
|
spec = spec_with_path @name
|
|
22
|
+
UI.warn "正在生成XCFramework #{spec.name}(#{spec.version})"
|
|
21
23
|
@is_spec_from_path = true if spec
|
|
22
24
|
spec ||= spec_with_name @name
|
|
23
25
|
|
|
@@ -41,7 +43,8 @@ module Pod
|
|
|
41
43
|
@spec_sources,
|
|
42
44
|
true,
|
|
43
45
|
@use_modular_headers,
|
|
44
|
-
@enable_bitcode
|
|
46
|
+
@enable_bitcode,
|
|
47
|
+
@support_dynamic
|
|
45
48
|
)
|
|
46
49
|
|
|
47
50
|
perform_build(
|
|
@@ -62,7 +65,8 @@ module Pod
|
|
|
62
65
|
spec,
|
|
63
66
|
@configuration,
|
|
64
67
|
@symbols,
|
|
65
|
-
@support_maccatalyst
|
|
68
|
+
@support_maccatalyst,
|
|
69
|
+
@support_dynamic
|
|
66
70
|
)
|
|
67
71
|
builder.build
|
|
68
72
|
builder.outputs target_dir
|
|
@@ -63,7 +63,7 @@ module Pod
|
|
|
63
63
|
Sandbox.new(config.sandbox_root)
|
|
64
64
|
end
|
|
65
65
|
|
|
66
|
-
def installation_root sandbox, spec, subspecs, sources,use_frameworks = true,use_modular_headers = true, enable_bitcode = false
|
|
66
|
+
def installation_root sandbox, spec, subspecs, sources,use_frameworks = true,use_modular_headers = true, enable_bitcode = false, support_dynamic=false
|
|
67
67
|
podfile = podfile_from_spec(
|
|
68
68
|
@path,
|
|
69
69
|
spec,
|
|
@@ -72,6 +72,23 @@ module Pod
|
|
|
72
72
|
use_frameworks,
|
|
73
73
|
use_modular_headers
|
|
74
74
|
)
|
|
75
|
+
other_flags=""
|
|
76
|
+
if support_dynamic
|
|
77
|
+
# 解析podspec获取依赖关系
|
|
78
|
+
spec.dependencies.uniq.each do |dependency|
|
|
79
|
+
other_flags << "-framework #{dependency.name} "
|
|
80
|
+
end
|
|
81
|
+
# spec.frameworks系统库没有提供公共方法,故手动解析引用系统库
|
|
82
|
+
spec_hash = spec.to_hash
|
|
83
|
+
spec_hash.uniq.each do |configuration|
|
|
84
|
+
key = configuration[0]
|
|
85
|
+
if key == 'frameworks'
|
|
86
|
+
val = configuration[1]
|
|
87
|
+
other_flags << "-framework #{val} "
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
UI.puts "support_dynamic:#{support_dynamic} other_flags: #{other_flags}"
|
|
75
92
|
|
|
76
93
|
installer = Installer.new(sandbox, podfile)
|
|
77
94
|
installer.repo_update = true
|
|
@@ -91,6 +108,11 @@ module Pod
|
|
|
91
108
|
if target.name == spec.name
|
|
92
109
|
target.build_configurations.each do |configuration|
|
|
93
110
|
configuration.build_settings['CLANG_MODULES_AUTOLINK'] = 'NO'
|
|
111
|
+
# 动态链接库需要配置project工程库依赖,否则导致无法编译通过 by hm 23/7/13
|
|
112
|
+
if !other_flags.empty?
|
|
113
|
+
UI.puts "configuration other_flags: #{other_flags}"
|
|
114
|
+
configuration.build_settings['OTHER_LDFLAGS'] = "#{other_flags}"
|
|
115
|
+
end
|
|
94
116
|
end
|
|
95
117
|
end
|
|
96
118
|
end
|
|
@@ -6,7 +6,7 @@ module Pod
|
|
|
6
6
|
include XcodeProjHelper
|
|
7
7
|
include PodUtil
|
|
8
8
|
include Config::Mixin
|
|
9
|
-
def initialize(installer, source_dir, sandbox_root, spec, configuration, symbols=true, support_maccatalyst=true)
|
|
9
|
+
def initialize(installer, source_dir, sandbox_root, spec, configuration, symbols=true, support_maccatalyst=true, support_dynamic=false)
|
|
10
10
|
# def initialize(platform, installer, source_dir, sandbox_root, spec, config)
|
|
11
11
|
# @platform = platform
|
|
12
12
|
@installer = installer
|
|
@@ -21,23 +21,38 @@ module Pod
|
|
|
21
21
|
@outputs = Hash.new
|
|
22
22
|
@symbols = symbols
|
|
23
23
|
@support_maccatalyst = support_maccatalyst
|
|
24
|
+
@support_dynamic = support_dynamic
|
|
24
25
|
end
|
|
25
26
|
|
|
26
27
|
def build
|
|
27
28
|
UI.puts("Building framework #{@spec} with configuration #{@configuration}")
|
|
28
|
-
UI.puts "Work dir is :#{@sandbox_root}"
|
|
29
|
+
UI.puts "Work dir is :#{@sandbox_root} isSymbols:#{@symbols} isDynamic:#{@support_dynamic}"
|
|
29
30
|
# defines = "GCC_PREPROCESSOR_DEFINITIONS='$(inherited) PodsDummy_Pods_#{@spec.name}=PodsDummy_PodPackage_#{@spec.name}'"
|
|
30
31
|
defines = ""
|
|
31
32
|
if @configuration == 'Debug'
|
|
32
|
-
|
|
33
|
+
if @support_dynamic
|
|
34
|
+
defines << 'GCC_GENERATE_DEBUGGING_SYMBOLS=YES ONLY_ACTIVE_ARCH=NO MACH_O_TYPE=mh_dylib'
|
|
35
|
+
else
|
|
36
|
+
defines << 'GCC_GENERATE_DEBUGGING_SYMBOLS=YES ONLY_ACTIVE_ARCH=NO MACH_O_TYPE=staticlib'
|
|
37
|
+
end
|
|
33
38
|
else
|
|
34
39
|
if @symbols
|
|
35
|
-
|
|
40
|
+
if @support_dynamic
|
|
41
|
+
defines << 'GCC_GENERATE_DEBUGGING_SYMBOLS=YES MACH_O_TYPE=mh_dylib'
|
|
42
|
+
else
|
|
43
|
+
defines << 'GCC_GENERATE_DEBUGGING_SYMBOLS=YES MACH_O_TYPE=staticlib'
|
|
44
|
+
end
|
|
45
|
+
# defines << "GCC_GENERATE_DEBUGGING_SYMBOLS=YES" # Release模式需要符号表应于问题排查(二进制切源码操作) by hm 21/10/13
|
|
36
46
|
else
|
|
37
|
-
|
|
47
|
+
if @support_dynamic
|
|
48
|
+
defines << 'GCC_GENERATE_DEBUGGING_SYMBOLS=NO MACH_O_TYPE=mh_dylib'
|
|
49
|
+
else
|
|
50
|
+
defines << 'GCC_GENERATE_DEBUGGING_SYMBOLS=NO MACH_O_TYPE=staticlib'
|
|
51
|
+
end
|
|
52
|
+
# defines << "GCC_GENERATE_DEBUGGING_SYMBOLS=NO" # 去除符号表
|
|
38
53
|
end
|
|
39
54
|
end
|
|
40
|
-
|
|
55
|
+
|
|
41
56
|
build_all_device defines
|
|
42
57
|
|
|
43
58
|
collect_xc_frameworks
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cocoapods-bb-xcframework
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.6.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- humin
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-
|
|
11
|
+
date: 2023-07-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cocoapods
|
|
@@ -106,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
106
106
|
- !ruby/object:Gem::Version
|
|
107
107
|
version: '0'
|
|
108
108
|
requirements: []
|
|
109
|
-
rubygems_version: 3.4.
|
|
109
|
+
rubygems_version: 3.4.16
|
|
110
110
|
signing_key:
|
|
111
111
|
specification_version: 4
|
|
112
112
|
summary: 把podspec打包成xcframework的小工具。packager pod to a xcframework
|