cocoapods-tt 0.0.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 +7 -0
- data/lib/cocoapods-tt/command/native/install.rb +56 -0
- data/lib/cocoapods-tt/command/native/update.rb +157 -0
- data/lib/cocoapods-tt/command/tt/make.rb +92 -0
- data/lib/cocoapods-tt/command/tt.rb +115 -0
- data/lib/cocoapods-tt/command.rb +1 -0
- data/lib/cocoapods-tt/gem_version.rb +3 -0
- data/lib/cocoapods-tt/native/command.rb +185 -0
- data/lib/cocoapods-tt/native/config.rb +366 -0
- data/lib/cocoapods-tt/native/core_overrides.rb +1 -0
- data/lib/cocoapods-tt/native/downloader/cache.rb +322 -0
- data/lib/cocoapods-tt/native/downloader/request.rb +86 -0
- data/lib/cocoapods-tt/native/downloader/response.rb +16 -0
- data/lib/cocoapods-tt/native/downloader.rb +192 -0
- data/lib/cocoapods-tt/native/executable.rb +247 -0
- data/lib/cocoapods-tt/native/external_sources/abstract_external_source.rb +205 -0
- data/lib/cocoapods-tt/native/external_sources/downloader_source.rb +30 -0
- data/lib/cocoapods-tt/native/external_sources/path_source.rb +55 -0
- data/lib/cocoapods-tt/native/external_sources/podspec_source.rb +54 -0
- data/lib/cocoapods-tt/native/external_sources.rb +57 -0
- data/lib/cocoapods-tt/native/gem_version.rb +5 -0
- data/lib/cocoapods-tt/native/generator/acknowledgements/markdown.rb +44 -0
- data/lib/cocoapods-tt/native/generator/acknowledgements/plist.rb +94 -0
- data/lib/cocoapods-tt/native/generator/acknowledgements.rb +107 -0
- data/lib/cocoapods-tt/native/generator/app_target_helper.rb +363 -0
- data/lib/cocoapods-tt/native/generator/bridge_support.rb +22 -0
- data/lib/cocoapods-tt/native/generator/constant.rb +19 -0
- data/lib/cocoapods-tt/native/generator/copy_dsyms_script.rb +56 -0
- data/lib/cocoapods-tt/native/generator/copy_resources_script.rb +223 -0
- data/lib/cocoapods-tt/native/generator/copy_xcframework_script.rb +227 -0
- data/lib/cocoapods-tt/native/generator/dummy_source.rb +31 -0
- data/lib/cocoapods-tt/native/generator/embed_frameworks_script.rb +196 -0
- data/lib/cocoapods-tt/native/generator/file_list.rb +39 -0
- data/lib/cocoapods-tt/native/generator/header.rb +103 -0
- data/lib/cocoapods-tt/native/generator/info_plist_file.rb +128 -0
- data/lib/cocoapods-tt/native/generator/module_map.rb +99 -0
- data/lib/cocoapods-tt/native/generator/prefix_header.rb +60 -0
- data/lib/cocoapods-tt/native/generator/script_phase_constants.rb +100 -0
- data/lib/cocoapods-tt/native/generator/umbrella_header.rb +46 -0
- data/lib/cocoapods-tt/native/hooks_manager.rb +132 -0
- data/lib/cocoapods-tt/native/installer/analyzer/analysis_result.rb +87 -0
- data/lib/cocoapods-tt/native/installer/analyzer/locking_dependency_analyzer.rb +103 -0
- data/lib/cocoapods-tt/native/installer/analyzer/pod_variant.rb +87 -0
- data/lib/cocoapods-tt/native/installer/analyzer/pod_variant_set.rb +175 -0
- data/lib/cocoapods-tt/native/installer/analyzer/podfile_dependency_cache.rb +55 -0
- data/lib/cocoapods-tt/native/installer/analyzer/sandbox_analyzer.rb +268 -0
- data/lib/cocoapods-tt/native/installer/analyzer/specs_state.rb +108 -0
- data/lib/cocoapods-tt/native/installer/analyzer/target_inspection_result.rb +58 -0
- data/lib/cocoapods-tt/native/installer/analyzer/target_inspector.rb +258 -0
- data/lib/cocoapods-tt/native/installer/analyzer.rb +1204 -0
- data/lib/cocoapods-tt/native/installer/base_install_hooks_context.rb +135 -0
- data/lib/cocoapods-tt/native/installer/installation_options.rb +195 -0
- data/lib/cocoapods-tt/native/installer/pod_source_installer.rb +224 -0
- data/lib/cocoapods-tt/native/installer/pod_source_preparer.rb +77 -0
- data/lib/cocoapods-tt/native/installer/podfile_validator.rb +168 -0
- data/lib/cocoapods-tt/native/installer/post_install_hooks_context.rb +9 -0
- data/lib/cocoapods-tt/native/installer/post_integrate_hooks_context.rb +9 -0
- data/lib/cocoapods-tt/native/installer/pre_install_hooks_context.rb +51 -0
- data/lib/cocoapods-tt/native/installer/pre_integrate_hooks_context.rb +9 -0
- data/lib/cocoapods-tt/native/installer/project_cache/project_cache.rb +11 -0
- data/lib/cocoapods-tt/native/installer/project_cache/project_cache_analysis_result.rb +53 -0
- data/lib/cocoapods-tt/native/installer/project_cache/project_cache_analyzer.rb +200 -0
- data/lib/cocoapods-tt/native/installer/project_cache/project_cache_version.rb +43 -0
- data/lib/cocoapods-tt/native/installer/project_cache/project_installation_cache.rb +103 -0
- data/lib/cocoapods-tt/native/installer/project_cache/project_metadata_cache.rb +73 -0
- data/lib/cocoapods-tt/native/installer/project_cache/target_cache_key.rb +176 -0
- data/lib/cocoapods-tt/native/installer/project_cache/target_metadata.rb +74 -0
- data/lib/cocoapods-tt/native/installer/sandbox_dir_cleaner.rb +105 -0
- data/lib/cocoapods-tt/native/installer/sandbox_header_paths_installer.rb +45 -0
- data/lib/cocoapods-tt/native/installer/source_provider_hooks_context.rb +34 -0
- data/lib/cocoapods-tt/native/installer/target_uuid_generator.rb +34 -0
- data/lib/cocoapods-tt/native/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb +179 -0
- data/lib/cocoapods-tt/native/installer/user_project_integrator/target_integrator.rb +815 -0
- data/lib/cocoapods-tt/native/installer/user_project_integrator.rb +280 -0
- data/lib/cocoapods-tt/native/installer/xcode/multi_pods_project_generator.rb +82 -0
- data/lib/cocoapods-tt/native/installer/xcode/pods_project_generator/aggregate_target_dependency_installer.rb +66 -0
- data/lib/cocoapods-tt/native/installer/xcode/pods_project_generator/aggregate_target_installer.rb +192 -0
- data/lib/cocoapods-tt/native/installer/xcode/pods_project_generator/app_host_installer.rb +154 -0
- data/lib/cocoapods-tt/native/installer/xcode/pods_project_generator/file_references_installer.rb +329 -0
- data/lib/cocoapods-tt/native/installer/xcode/pods_project_generator/pod_target_dependency_installer.rb +195 -0
- data/lib/cocoapods-tt/native/installer/xcode/pods_project_generator/pod_target_installer.rb +1239 -0
- data/lib/cocoapods-tt/native/installer/xcode/pods_project_generator/pod_target_integrator.rb +312 -0
- data/lib/cocoapods-tt/native/installer/xcode/pods_project_generator/pods_project_writer.rb +90 -0
- data/lib/cocoapods-tt/native/installer/xcode/pods_project_generator/project_generator.rb +120 -0
- data/lib/cocoapods-tt/native/installer/xcode/pods_project_generator/target_installation_result.rb +140 -0
- data/lib/cocoapods-tt/native/installer/xcode/pods_project_generator/target_installer.rb +257 -0
- data/lib/cocoapods-tt/native/installer/xcode/pods_project_generator/target_installer_helper.rb +110 -0
- data/lib/cocoapods-tt/native/installer/xcode/pods_project_generator.rb +291 -0
- data/lib/cocoapods-tt/native/installer/xcode/pods_project_generator_result.rb +54 -0
- data/lib/cocoapods-tt/native/installer/xcode/single_pods_project_generator.rb +38 -0
- data/lib/cocoapods-tt/native/installer/xcode/target_validator.rb +170 -0
- data/lib/cocoapods-tt/native/installer/xcode.rb +11 -0
- data/lib/cocoapods-tt/native/installer.rb +1044 -0
- data/lib/cocoapods-tt/native/native_target_extension.rb +60 -0
- data/lib/cocoapods-tt/native/open-uri.rb +33 -0
- data/lib/cocoapods-tt/native/podfile.rb +13 -0
- data/lib/cocoapods-tt/native/project.rb +544 -0
- data/lib/cocoapods-tt/native/resolver/lazy_specification.rb +88 -0
- data/lib/cocoapods-tt/native/resolver/resolver_specification.rb +41 -0
- data/lib/cocoapods-tt/native/resolver.rb +600 -0
- data/lib/cocoapods-tt/native/sandbox/file_accessor.rb +532 -0
- data/lib/cocoapods-tt/native/sandbox/headers_store.rb +163 -0
- data/lib/cocoapods-tt/native/sandbox/path_list.rb +242 -0
- data/lib/cocoapods-tt/native/sandbox/pod_dir_cleaner.rb +71 -0
- data/lib/cocoapods-tt/native/sandbox/podspec_finder.rb +23 -0
- data/lib/cocoapods-tt/native/sandbox.rb +470 -0
- data/lib/cocoapods-tt/native/sources_manager.rb +221 -0
- data/lib/cocoapods-tt/native/target/aggregate_target.rb +558 -0
- data/lib/cocoapods-tt/native/target/build_settings.rb +1385 -0
- data/lib/cocoapods-tt/native/target/pod_target.rb +1168 -0
- data/lib/cocoapods-tt/native/target.rb +378 -0
- data/lib/cocoapods-tt/native/user_interface/error_report.rb +204 -0
- data/lib/cocoapods-tt/native/user_interface/inspector_reporter.rb +102 -0
- data/lib/cocoapods-tt/native/user_interface.rb +463 -0
- data/lib/cocoapods-tt/native/validator.rb +1170 -0
- data/lib/cocoapods-tt/native/version_metadata.rb +26 -0
- data/lib/cocoapods-tt/native/xcode/framework_paths.rb +54 -0
- data/lib/cocoapods-tt/native/xcode/linkage_analyzer.rb +22 -0
- data/lib/cocoapods-tt/native/xcode/xcframework/xcframework_slice.rb +138 -0
- data/lib/cocoapods-tt/native/xcode/xcframework.rb +99 -0
- data/lib/cocoapods-tt/native/xcode.rb +7 -0
- data/lib/cocoapods-tt.rb +1 -0
- data/lib/cocoapods_plugin.rb +17 -0
- metadata +193 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
module Pod
|
2
|
+
module VersionMetadata
|
3
|
+
CACHE_VERSION = '003'.freeze
|
4
|
+
|
5
|
+
def self.gem_version
|
6
|
+
Pod::VERSION
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.project_cache_version
|
10
|
+
[
|
11
|
+
gem_version,
|
12
|
+
cocoapods_sha,
|
13
|
+
'project-cache',
|
14
|
+
CACHE_VERSION,
|
15
|
+
].compact.join('.')
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.cocoapods_sha
|
19
|
+
return unless gemspec = Gem.loaded_specs['cocoapods']
|
20
|
+
return unless source = gemspec.source
|
21
|
+
return unless source.respond_to?(:revision)
|
22
|
+
source.revision
|
23
|
+
end
|
24
|
+
private_class_method :cocoapods_sha
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Pod
|
2
|
+
module Xcode
|
3
|
+
class FrameworkPaths
|
4
|
+
# @return [String] the path to the .framework
|
5
|
+
#
|
6
|
+
attr_reader :source_path
|
7
|
+
|
8
|
+
# @return [String, Nil] the dSYM path, if one exists
|
9
|
+
#
|
10
|
+
attr_reader :dsym_path
|
11
|
+
|
12
|
+
# @return [Array<String>, Nil] the bcsymbolmap files path array, if one exists
|
13
|
+
#
|
14
|
+
attr_reader :bcsymbolmap_paths
|
15
|
+
|
16
|
+
def initialize(source_path, dsym_path = nil, bcsymbolmap_paths = nil)
|
17
|
+
@source_path = source_path
|
18
|
+
@dsym_path = dsym_path
|
19
|
+
@bcsymbolmap_paths = bcsymbolmap_paths
|
20
|
+
end
|
21
|
+
|
22
|
+
def ==(other)
|
23
|
+
if other.class == self.class
|
24
|
+
other.source_path == @source_path && other.dsym_path == @dsym_path && other.bcsymbolmap_paths == @bcsymbolmap_paths
|
25
|
+
else
|
26
|
+
false
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
alias eql? ==
|
31
|
+
|
32
|
+
def hash
|
33
|
+
[source_path, dsym_path, bcsymbolmap_paths].hash
|
34
|
+
end
|
35
|
+
|
36
|
+
def all_paths
|
37
|
+
[source_path, dsym_path, bcsymbolmap_paths].flatten.compact
|
38
|
+
end
|
39
|
+
|
40
|
+
# @param [Pathname] path the path to the `.framework` bundle
|
41
|
+
#
|
42
|
+
# @return [FrameworkPaths] the path of the framework with dsym & bcsymbolmap paths, if found
|
43
|
+
#
|
44
|
+
def self.from_path(path)
|
45
|
+
dsym_name = "#{path.basename}.dSYM"
|
46
|
+
dsym_path = Pathname.new("#{path.dirname}/#{dsym_name}")
|
47
|
+
dsym_path = nil unless dsym_path.exist?
|
48
|
+
bcsymbolmap_paths = Pathname.glob(path.dirname, '*.bcsymbolmap')
|
49
|
+
|
50
|
+
FrameworkPaths.new(path, dsym_path, bcsymbolmap_paths)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'macho'
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
module Xcode
|
5
|
+
class LinkageAnalyzer
|
6
|
+
# @param [Pathname] binary
|
7
|
+
# The file to be checked for being a dynamic Mach-O binary.
|
8
|
+
#
|
9
|
+
# @return [Boolean] Whether `binary` can be dynamically linked.
|
10
|
+
#
|
11
|
+
def self.dynamic_binary?(binary)
|
12
|
+
@cached_dynamic_binary_results ||= {}
|
13
|
+
return @cached_dynamic_binary_results[binary] unless @cached_dynamic_binary_results[binary].nil?
|
14
|
+
return false unless binary.file?
|
15
|
+
|
16
|
+
@cached_dynamic_binary_results[binary] = MachO.open(binary).dylib?
|
17
|
+
rescue MachO::MachOError
|
18
|
+
@cached_dynamic_binary_results[binary] = false
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,138 @@
|
|
1
|
+
require 'cocoapods/xcode/linkage_analyzer'
|
2
|
+
|
3
|
+
module Pod
|
4
|
+
module Xcode
|
5
|
+
class XCFramework
|
6
|
+
class Slice
|
7
|
+
# @return [Pathname] the path to the .framework or .a of this slice
|
8
|
+
#
|
9
|
+
attr_reader :path
|
10
|
+
|
11
|
+
# @return [Array<String>] list of supported architectures
|
12
|
+
#
|
13
|
+
attr_reader :supported_archs
|
14
|
+
|
15
|
+
# @return [String] the framework identifier
|
16
|
+
#
|
17
|
+
attr_reader :identifier
|
18
|
+
|
19
|
+
# @return [Platform] the supported platform
|
20
|
+
#
|
21
|
+
attr_reader :platform
|
22
|
+
|
23
|
+
# @return [Symbol] the platform variant. Either :simulator or nil
|
24
|
+
#
|
25
|
+
attr_reader :platform_variant
|
26
|
+
|
27
|
+
# @return [Pathname] the path to the headers
|
28
|
+
#
|
29
|
+
attr_reader :headers
|
30
|
+
|
31
|
+
def initialize(path, identifier, archs, platform, platform_variant: nil, headers: path.join('Headers'))
|
32
|
+
@path = path
|
33
|
+
@identifier = identifier
|
34
|
+
@supported_archs = archs
|
35
|
+
@platform = Pod::Platform.new(platform)
|
36
|
+
@platform_variant = platform_variant.to_sym unless platform_variant.nil?
|
37
|
+
@headers = headers
|
38
|
+
end
|
39
|
+
|
40
|
+
# @return [String] the name of the framework
|
41
|
+
#
|
42
|
+
def name
|
43
|
+
@name ||= begin
|
44
|
+
case package_type
|
45
|
+
when :framework
|
46
|
+
File.basename(path, '.framework')
|
47
|
+
when :library
|
48
|
+
result = File.basename(path, '.a').gsub(/^lib/, '')
|
49
|
+
result[0] = result.downcase[0]
|
50
|
+
result
|
51
|
+
else
|
52
|
+
raise Informative, "Invalid package type `#{package_type}`"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# @return [Boolean] true if this is a slice built for simulator
|
58
|
+
#
|
59
|
+
def simulator_variant?
|
60
|
+
@platform_variant == :simulator
|
61
|
+
end
|
62
|
+
|
63
|
+
# @return [Symbol] the package type of the slice - either :framework or :library
|
64
|
+
#
|
65
|
+
def package_type
|
66
|
+
@package_type ||= begin
|
67
|
+
ext = File.extname(path)
|
68
|
+
case ext
|
69
|
+
when '.framework'
|
70
|
+
:framework
|
71
|
+
when '.a'
|
72
|
+
:library
|
73
|
+
else
|
74
|
+
raise Informative, "Invalid XCFramework slice type `#{ext}`"
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
# @return [Boolean] true if this slice is a framework, not a library
|
80
|
+
#
|
81
|
+
def framework?
|
82
|
+
build_type.framework?
|
83
|
+
end
|
84
|
+
|
85
|
+
# @return [Boolean] true if this slice is a library, not a framework
|
86
|
+
#
|
87
|
+
def library?
|
88
|
+
build_type.library?
|
89
|
+
end
|
90
|
+
|
91
|
+
# @return [Boolean] true if this slice contains a statically-linked binary
|
92
|
+
#
|
93
|
+
def static?
|
94
|
+
build_type.static?
|
95
|
+
end
|
96
|
+
|
97
|
+
# @return [Boolean] true if this slice contains a dynamically-linked binary
|
98
|
+
#
|
99
|
+
def dynamic?
|
100
|
+
build_type.dynamic?
|
101
|
+
end
|
102
|
+
|
103
|
+
# @return [BuildType] the build type of the binary
|
104
|
+
#
|
105
|
+
def build_type
|
106
|
+
@build_type ||= begin
|
107
|
+
linkage = Xcode::LinkageAnalyzer.dynamic_binary?(binary_path) ? :dynamic : :static
|
108
|
+
ext = File.extname(path)
|
109
|
+
packaging = case ext
|
110
|
+
when '.framework'
|
111
|
+
:framework
|
112
|
+
when '.a'
|
113
|
+
:library
|
114
|
+
else
|
115
|
+
raise Informative, "Invalid XCFramework slice type `#{ext}`"
|
116
|
+
end
|
117
|
+
BuildType.new(:linkage => linkage, :packaging => packaging)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
# @return [Pathname] the path to the bundled binary
|
122
|
+
#
|
123
|
+
def binary_path
|
124
|
+
@binary_path ||= begin
|
125
|
+
case package_type
|
126
|
+
when :framework
|
127
|
+
path + name
|
128
|
+
when :library
|
129
|
+
path
|
130
|
+
else
|
131
|
+
raise Informative, "Invalid package type `#{package_type}`"
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'cocoapods/xcode/xcframework/xcframework_slice'
|
4
|
+
|
5
|
+
module Pod
|
6
|
+
module Xcode
|
7
|
+
class XCFramework
|
8
|
+
# @return [String] target_name the target name this XCFramework belongs to
|
9
|
+
#
|
10
|
+
attr_reader :target_name
|
11
|
+
|
12
|
+
# @return [Pathname] path the path to the .xcframework on disk
|
13
|
+
#
|
14
|
+
attr_reader :path
|
15
|
+
|
16
|
+
# @return [Pod::Version] the format version of the .xcframework
|
17
|
+
#
|
18
|
+
attr_reader :format_version
|
19
|
+
|
20
|
+
# @return [Array<XCFramework::Slice>] the slices contained inside this .xcframework
|
21
|
+
#
|
22
|
+
attr_reader :slices
|
23
|
+
|
24
|
+
# @return [Hash] the contents of the parsed plist
|
25
|
+
#
|
26
|
+
attr_reader :plist
|
27
|
+
|
28
|
+
# Initializes an XCFramework instance with a path on disk
|
29
|
+
#
|
30
|
+
# @param [String] target_name @see target_name
|
31
|
+
# @param [Pathname, String] path @see path
|
32
|
+
#
|
33
|
+
# @return [XCFramework] the xcframework at the given path
|
34
|
+
#
|
35
|
+
def initialize(target_name, path)
|
36
|
+
@target_name = target_name
|
37
|
+
@path = Pathname.new(path).tap do |p|
|
38
|
+
raise 'Absolute path is required' unless p.absolute?
|
39
|
+
end
|
40
|
+
|
41
|
+
@plist = Xcodeproj::Plist.read_from_path(plist_path)
|
42
|
+
parse_plist_contents
|
43
|
+
end
|
44
|
+
|
45
|
+
# @return [Pathname] the path to the Info.plist
|
46
|
+
#
|
47
|
+
def plist_path
|
48
|
+
path + 'Info.plist'
|
49
|
+
end
|
50
|
+
|
51
|
+
# @return [String] the basename of the framework
|
52
|
+
#
|
53
|
+
def name
|
54
|
+
File.basename(path, '.xcframework')
|
55
|
+
end
|
56
|
+
|
57
|
+
# @return [Boolean] true if any slices use dynamic linkage
|
58
|
+
#
|
59
|
+
def includes_dynamic_slices?
|
60
|
+
build_type.dynamic?
|
61
|
+
end
|
62
|
+
|
63
|
+
# @return [Boolean] true if any slices use dynamic linkage
|
64
|
+
#
|
65
|
+
def includes_static_slices?
|
66
|
+
build_type.static?
|
67
|
+
end
|
68
|
+
|
69
|
+
# @return [Pod::BuildType] the build type of the contained slices
|
70
|
+
#
|
71
|
+
# @note As CocoaPods does not support mixed packaging nor linkage for xcframework slices,
|
72
|
+
# we pick the first slice and assume all are the same
|
73
|
+
#
|
74
|
+
def build_type
|
75
|
+
@build_type ||= slices.first.build_type
|
76
|
+
end
|
77
|
+
|
78
|
+
private
|
79
|
+
|
80
|
+
def parse_plist_contents
|
81
|
+
@format_version = Pod::Version.new(plist['XCFrameworkFormatVersion'])
|
82
|
+
@slices = plist['AvailableLibraries'].map do |library|
|
83
|
+
identifier = library['LibraryIdentifier']
|
84
|
+
relative_path = library['LibraryPath']
|
85
|
+
archs = library['SupportedArchitectures']
|
86
|
+
platform_name = library['SupportedPlatform']
|
87
|
+
platform_variant = library['SupportedPlatformVariant']
|
88
|
+
headers = library['HeadersPath']
|
89
|
+
|
90
|
+
slice_root = path.join(identifier)
|
91
|
+
slice_path = slice_root.join(relative_path)
|
92
|
+
headers = slice_root.join(headers) unless headers.nil?
|
93
|
+
XCFramework::Slice.new(slice_path, identifier, archs, platform_name, :platform_variant => platform_variant, :headers => headers)
|
94
|
+
end
|
95
|
+
raise Informative, "XCFramework at #{path} does not contain any frameworks or libraries." if slices.empty?
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
data/lib/cocoapods-tt.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'cocoapods-tt/gem_version'
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'cocoapods-tt/command'
|
2
|
+
require 'cocoapods'
|
3
|
+
#入口
|
4
|
+
|
5
|
+
module CocoapodsTt
|
6
|
+
# 注册 pod install 钩子
|
7
|
+
Pod::HooksManager.register('cocoapods-tt', :pre_install) do |context|
|
8
|
+
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
Pod::HooksManager.register('cocoapods-tt', :post_install) do |context|
|
13
|
+
puts "hello world!"
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,193 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cocoapods-tt
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- 王小树
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-06-07 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
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
|
+
description: A short description of cocoapods-tt.
|
42
|
+
email:
|
43
|
+
- wangxiaoshu@oppo.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- lib/cocoapods-tt.rb
|
49
|
+
- lib/cocoapods-tt/command.rb
|
50
|
+
- lib/cocoapods-tt/command/native/install.rb
|
51
|
+
- lib/cocoapods-tt/command/native/update.rb
|
52
|
+
- lib/cocoapods-tt/command/tt.rb
|
53
|
+
- lib/cocoapods-tt/command/tt/make.rb
|
54
|
+
- lib/cocoapods-tt/gem_version.rb
|
55
|
+
- lib/cocoapods-tt/native/command.rb
|
56
|
+
- lib/cocoapods-tt/native/config.rb
|
57
|
+
- lib/cocoapods-tt/native/core_overrides.rb
|
58
|
+
- lib/cocoapods-tt/native/downloader.rb
|
59
|
+
- lib/cocoapods-tt/native/downloader/cache.rb
|
60
|
+
- lib/cocoapods-tt/native/downloader/request.rb
|
61
|
+
- lib/cocoapods-tt/native/downloader/response.rb
|
62
|
+
- lib/cocoapods-tt/native/executable.rb
|
63
|
+
- lib/cocoapods-tt/native/external_sources.rb
|
64
|
+
- lib/cocoapods-tt/native/external_sources/abstract_external_source.rb
|
65
|
+
- lib/cocoapods-tt/native/external_sources/downloader_source.rb
|
66
|
+
- lib/cocoapods-tt/native/external_sources/path_source.rb
|
67
|
+
- lib/cocoapods-tt/native/external_sources/podspec_source.rb
|
68
|
+
- lib/cocoapods-tt/native/gem_version.rb
|
69
|
+
- lib/cocoapods-tt/native/generator/acknowledgements.rb
|
70
|
+
- lib/cocoapods-tt/native/generator/acknowledgements/markdown.rb
|
71
|
+
- lib/cocoapods-tt/native/generator/acknowledgements/plist.rb
|
72
|
+
- lib/cocoapods-tt/native/generator/app_target_helper.rb
|
73
|
+
- lib/cocoapods-tt/native/generator/bridge_support.rb
|
74
|
+
- lib/cocoapods-tt/native/generator/constant.rb
|
75
|
+
- lib/cocoapods-tt/native/generator/copy_dsyms_script.rb
|
76
|
+
- lib/cocoapods-tt/native/generator/copy_resources_script.rb
|
77
|
+
- lib/cocoapods-tt/native/generator/copy_xcframework_script.rb
|
78
|
+
- lib/cocoapods-tt/native/generator/dummy_source.rb
|
79
|
+
- lib/cocoapods-tt/native/generator/embed_frameworks_script.rb
|
80
|
+
- lib/cocoapods-tt/native/generator/file_list.rb
|
81
|
+
- lib/cocoapods-tt/native/generator/header.rb
|
82
|
+
- lib/cocoapods-tt/native/generator/info_plist_file.rb
|
83
|
+
- lib/cocoapods-tt/native/generator/module_map.rb
|
84
|
+
- lib/cocoapods-tt/native/generator/prefix_header.rb
|
85
|
+
- lib/cocoapods-tt/native/generator/script_phase_constants.rb
|
86
|
+
- lib/cocoapods-tt/native/generator/umbrella_header.rb
|
87
|
+
- lib/cocoapods-tt/native/hooks_manager.rb
|
88
|
+
- lib/cocoapods-tt/native/installer.rb
|
89
|
+
- lib/cocoapods-tt/native/installer/analyzer.rb
|
90
|
+
- lib/cocoapods-tt/native/installer/analyzer/analysis_result.rb
|
91
|
+
- lib/cocoapods-tt/native/installer/analyzer/locking_dependency_analyzer.rb
|
92
|
+
- lib/cocoapods-tt/native/installer/analyzer/pod_variant.rb
|
93
|
+
- lib/cocoapods-tt/native/installer/analyzer/pod_variant_set.rb
|
94
|
+
- lib/cocoapods-tt/native/installer/analyzer/podfile_dependency_cache.rb
|
95
|
+
- lib/cocoapods-tt/native/installer/analyzer/sandbox_analyzer.rb
|
96
|
+
- lib/cocoapods-tt/native/installer/analyzer/specs_state.rb
|
97
|
+
- lib/cocoapods-tt/native/installer/analyzer/target_inspection_result.rb
|
98
|
+
- lib/cocoapods-tt/native/installer/analyzer/target_inspector.rb
|
99
|
+
- lib/cocoapods-tt/native/installer/base_install_hooks_context.rb
|
100
|
+
- lib/cocoapods-tt/native/installer/installation_options.rb
|
101
|
+
- lib/cocoapods-tt/native/installer/pod_source_installer.rb
|
102
|
+
- lib/cocoapods-tt/native/installer/pod_source_preparer.rb
|
103
|
+
- lib/cocoapods-tt/native/installer/podfile_validator.rb
|
104
|
+
- lib/cocoapods-tt/native/installer/post_install_hooks_context.rb
|
105
|
+
- lib/cocoapods-tt/native/installer/post_integrate_hooks_context.rb
|
106
|
+
- lib/cocoapods-tt/native/installer/pre_install_hooks_context.rb
|
107
|
+
- lib/cocoapods-tt/native/installer/pre_integrate_hooks_context.rb
|
108
|
+
- lib/cocoapods-tt/native/installer/project_cache/project_cache.rb
|
109
|
+
- lib/cocoapods-tt/native/installer/project_cache/project_cache_analysis_result.rb
|
110
|
+
- lib/cocoapods-tt/native/installer/project_cache/project_cache_analyzer.rb
|
111
|
+
- lib/cocoapods-tt/native/installer/project_cache/project_cache_version.rb
|
112
|
+
- lib/cocoapods-tt/native/installer/project_cache/project_installation_cache.rb
|
113
|
+
- lib/cocoapods-tt/native/installer/project_cache/project_metadata_cache.rb
|
114
|
+
- lib/cocoapods-tt/native/installer/project_cache/target_cache_key.rb
|
115
|
+
- lib/cocoapods-tt/native/installer/project_cache/target_metadata.rb
|
116
|
+
- lib/cocoapods-tt/native/installer/sandbox_dir_cleaner.rb
|
117
|
+
- lib/cocoapods-tt/native/installer/sandbox_header_paths_installer.rb
|
118
|
+
- lib/cocoapods-tt/native/installer/source_provider_hooks_context.rb
|
119
|
+
- lib/cocoapods-tt/native/installer/target_uuid_generator.rb
|
120
|
+
- lib/cocoapods-tt/native/installer/user_project_integrator.rb
|
121
|
+
- lib/cocoapods-tt/native/installer/user_project_integrator/target_integrator.rb
|
122
|
+
- lib/cocoapods-tt/native/installer/user_project_integrator/target_integrator/xcconfig_integrator.rb
|
123
|
+
- lib/cocoapods-tt/native/installer/xcode.rb
|
124
|
+
- lib/cocoapods-tt/native/installer/xcode/multi_pods_project_generator.rb
|
125
|
+
- lib/cocoapods-tt/native/installer/xcode/pods_project_generator.rb
|
126
|
+
- lib/cocoapods-tt/native/installer/xcode/pods_project_generator/aggregate_target_dependency_installer.rb
|
127
|
+
- lib/cocoapods-tt/native/installer/xcode/pods_project_generator/aggregate_target_installer.rb
|
128
|
+
- lib/cocoapods-tt/native/installer/xcode/pods_project_generator/app_host_installer.rb
|
129
|
+
- lib/cocoapods-tt/native/installer/xcode/pods_project_generator/file_references_installer.rb
|
130
|
+
- lib/cocoapods-tt/native/installer/xcode/pods_project_generator/pod_target_dependency_installer.rb
|
131
|
+
- lib/cocoapods-tt/native/installer/xcode/pods_project_generator/pod_target_installer.rb
|
132
|
+
- lib/cocoapods-tt/native/installer/xcode/pods_project_generator/pod_target_integrator.rb
|
133
|
+
- lib/cocoapods-tt/native/installer/xcode/pods_project_generator/pods_project_writer.rb
|
134
|
+
- lib/cocoapods-tt/native/installer/xcode/pods_project_generator/project_generator.rb
|
135
|
+
- lib/cocoapods-tt/native/installer/xcode/pods_project_generator/target_installation_result.rb
|
136
|
+
- lib/cocoapods-tt/native/installer/xcode/pods_project_generator/target_installer.rb
|
137
|
+
- lib/cocoapods-tt/native/installer/xcode/pods_project_generator/target_installer_helper.rb
|
138
|
+
- lib/cocoapods-tt/native/installer/xcode/pods_project_generator_result.rb
|
139
|
+
- lib/cocoapods-tt/native/installer/xcode/single_pods_project_generator.rb
|
140
|
+
- lib/cocoapods-tt/native/installer/xcode/target_validator.rb
|
141
|
+
- lib/cocoapods-tt/native/native_target_extension.rb
|
142
|
+
- lib/cocoapods-tt/native/open-uri.rb
|
143
|
+
- lib/cocoapods-tt/native/podfile.rb
|
144
|
+
- lib/cocoapods-tt/native/project.rb
|
145
|
+
- lib/cocoapods-tt/native/resolver.rb
|
146
|
+
- lib/cocoapods-tt/native/resolver/lazy_specification.rb
|
147
|
+
- lib/cocoapods-tt/native/resolver/resolver_specification.rb
|
148
|
+
- lib/cocoapods-tt/native/sandbox.rb
|
149
|
+
- lib/cocoapods-tt/native/sandbox/file_accessor.rb
|
150
|
+
- lib/cocoapods-tt/native/sandbox/headers_store.rb
|
151
|
+
- lib/cocoapods-tt/native/sandbox/path_list.rb
|
152
|
+
- lib/cocoapods-tt/native/sandbox/pod_dir_cleaner.rb
|
153
|
+
- lib/cocoapods-tt/native/sandbox/podspec_finder.rb
|
154
|
+
- lib/cocoapods-tt/native/sources_manager.rb
|
155
|
+
- lib/cocoapods-tt/native/target.rb
|
156
|
+
- lib/cocoapods-tt/native/target/aggregate_target.rb
|
157
|
+
- lib/cocoapods-tt/native/target/build_settings.rb
|
158
|
+
- lib/cocoapods-tt/native/target/pod_target.rb
|
159
|
+
- lib/cocoapods-tt/native/user_interface.rb
|
160
|
+
- lib/cocoapods-tt/native/user_interface/error_report.rb
|
161
|
+
- lib/cocoapods-tt/native/user_interface/inspector_reporter.rb
|
162
|
+
- lib/cocoapods-tt/native/validator.rb
|
163
|
+
- lib/cocoapods-tt/native/version_metadata.rb
|
164
|
+
- lib/cocoapods-tt/native/xcode.rb
|
165
|
+
- lib/cocoapods-tt/native/xcode/framework_paths.rb
|
166
|
+
- lib/cocoapods-tt/native/xcode/linkage_analyzer.rb
|
167
|
+
- lib/cocoapods-tt/native/xcode/xcframework.rb
|
168
|
+
- lib/cocoapods-tt/native/xcode/xcframework/xcframework_slice.rb
|
169
|
+
- lib/cocoapods_plugin.rb
|
170
|
+
homepage: https://github.com/EXAMPLE/cocoapods-tt
|
171
|
+
licenses:
|
172
|
+
- MIT
|
173
|
+
metadata: {}
|
174
|
+
post_install_message:
|
175
|
+
rdoc_options: []
|
176
|
+
require_paths:
|
177
|
+
- lib
|
178
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
179
|
+
requirements:
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0'
|
183
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
requirements: []
|
189
|
+
rubygems_version: 3.2.3
|
190
|
+
signing_key:
|
191
|
+
specification_version: 4
|
192
|
+
summary: A longer description of cocoapods-tt.
|
193
|
+
test_files: []
|