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

#build_typePod::BuildType

Note:

As CocoaPods does not support mixed packaging nor linkage for xcframework slices, we pick the first slice and assume all are the same

Returns the build type of the contained slices.

Returns:

  • (Pod::BuildType)

    the build type of the contained slices


69
70
71
# File 'lib/cocoapods/xcode/xcframework.rb', line 69

def build_type
  @build_type ||= slices.first.build_type
end

#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?
  build_type.dynamic?
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?
  build_type.static?
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