Class: Pod::Xcode::XCFramework

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods/xcode/xcframework.rb,
lib/cocoapods/xcode/xcframework/xcframework_slice.rb

Defined Under Namespace

Classes: Slice

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ XCFramework

Initializes an XCFramework instance with a path on disk

Parameters:

  • path (Pathname, String)

    The path to the .xcframework on disk


31
32
33
34
35
36
37
38
# File 'lib/cocoapods/xcode/xcframework.rb', line 31

def initialize(path)
  @path = Pathname.new(path).tap do |p|
    raise 'Absolute path is required' unless p.absolute?
  end

  @plist = Xcodeproj::Plist.read_from_path(plist_path)
  parse_plist_contents
end

Instance Attribute Details

#format_versionPod::Version (readonly)

Returns the format version of the .xcframework.

Returns:

  • (Pod::Version)

    the format version of the .xcframework


14
15
16
# File 'lib/cocoapods/xcode/xcframework.rb', line 14

def format_version
  @format_version
end

#pathPathname (readonly)

Returns path the path to the .xcframework on disk.

Returns:

  • (Pathname)

    path the path to the .xcframework on disk


10
11
12
# File 'lib/cocoapods/xcode/xcframework.rb', line 10

def path
  @path
end

#plistHash (readonly)

Returns the contents of the parsed plist.

Returns:

  • (Hash)

    the contents of the parsed plist


22
23
24
# File 'lib/cocoapods/xcode/xcframework.rb', line 22

def plist
  @plist
end

#slicesArray<XCFramework::Slice> (readonly)

Returns the slices contained inside this .xcframework.

Returns:


18
19
20
# File 'lib/cocoapods/xcode/xcframework.rb', line 18

def slices
  @slices
end

Instance Method Details

#includes_dynamic_slices?Boolean

Returns true if any slices use dynamic linkage.

Returns:

  • (Boolean)

    true if any slices use dynamic linkage


54
55
56
# File 'lib/cocoapods/xcode/xcframework.rb', line 54

def includes_dynamic_slices?
  slices.any? { |slice| Xcode::LinkageAnalyzer.dynamic_binary?(slice.binary_path) }
end

#includes_static_slices?Boolean

Returns true if any slices use dynamic linkage.

Returns:

  • (Boolean)

    true if any slices use dynamic linkage


60
61
62
# File 'lib/cocoapods/xcode/xcframework.rb', line 60

def includes_static_slices?
  slices.any? { |slice| !Xcode::LinkageAnalyzer.dynamic_binary?(slice.binary_path) }
end

#nameString

Returns the basename of the framework.

Returns:

  • (String)

    the basename of the framework


48
49
50
# File 'lib/cocoapods/xcode/xcframework.rb', line 48

def name
  File.basename(path, '.xcframework')
end

#plist_pathPathname

Returns the path to the Info.plist.

Returns:

  • (Pathname)

    the path to the Info.plist


42
43
44
# File 'lib/cocoapods/xcode/xcframework.rb', line 42

def plist_path
  path + 'Info.plist'
end