TDLibFramework is distributed only via SPM. You will need some additional setup to include this framework to your Flutter Swift plugin or CocoaPods project.
- Patch
Podfile
to support SPM and changeTARGET
with Your Swift Plugin name
SPM_DEPS = [
{
targets: ["TARGET"],
spec: {
url: "https://github.com/Swiftgram/TDLibFramework",
requirement: {
kind: "upToNextMajorVersion",
# Grab latest version from https://github.com/Swiftgram/TDLibFramework/releases
minimumVersion: "1.8.26-b41f3219"
},
product_name: "TDLibFramework"
}
}
]
# Patching support for SPM deps https://github.com/CocoaPods/CocoaPods/issues/10049#issuecomment-819480131
def add_spm_to_target(project, target_name, url, requirement, product_name)
project.targets.each do |target|
if target.name == target_name
pkg = project.new(Xcodeproj::Project::Object::XCRemoteSwiftPackageReference)
pkg.repositoryURL = url
pkg.requirement = requirement
ref = project.new(Xcodeproj::Project::Object::XCSwiftPackageProductDependency)
ref.package = pkg
ref.product_name = product_name
target.package_product_dependencies << ref
project.root_object.package_references << pkg
end
end
project.save
end
- Append
post_install
script with SPM deps install
post_install do |installer|
### Flutter only
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
###
# Add SPM deps
puts "Including SPM dependencies"
SPM_DEPS.each do |spm_dep|
spm_dep[:targets].each do |target|
add_spm_to_target(
installer.pods_project,
target,
spm_dep[:spec][:url],
spm_dep[:spec][:requirement],
spm_dep[:spec][:product_name]
)
end
end
end