iosPackageSwiftContent function
Flutter 3.41+ SPM Package.swift for the iOS platform.
Creates two targets:
${className}Cpp— C++ bridge (compiled as Obj-C++ via.mmforwarder)$pluginName— Swift bridge (depends on the C++ target)
Implementation
String iosPackageSwiftContent(String pluginName, String className) =>
'// swift-tools-version: 5.9\n'
'import PackageDescription\n'
'\n'
'let package = Package(\n'
' name: "$pluginName",\n'
' platforms: [.iOS(.v13)],\n'
' products: [\n'
' .library(name: "${pluginName.replaceAll('_', '-')}", targets: ["$pluginName"])\n'
' ],\n'
' targets: [\n'
' .target(\n'
' name: "${className}Cpp",\n'
' path: "Sources/${className}Cpp",\n'
' publicHeadersPath: "include",\n'
' cxxSettings: [\n'
' .headerSearchPath("include"),\n'
' .unsafeFlags(["-std=c++17"])\n'
' ]\n'
' ),\n'
' .target(\n'
' name: "$pluginName",\n'
' dependencies: ["${className}Cpp"],\n'
' path: "Sources/$className"\n'
' )\n'
' ]\n'
')\n';