Pod::Spec.new do |s| s.name = 'tsnet_flutter' s.version = '0.1.0' s.summary = 'Embedded Tailscale tsnet for Flutter' s.description = <<-DESC Embed Tailscale's tsnet in Flutter apps. Provides a userspace WireGuard tunnel with a localhost TCP proxy. Built with go build -buildmode=c-archive. No VPN entitlement needed — uses userspace netstack. DESC s.homepage = 'https://github.com/svrnty/tsnet_flutter' s.license = { :type => 'BSD-3-Clause', :file => '../LICENSE' } s.author = { 'Svrnty' => 'mathias@svrnty.io' } s.source = { :path => '.' } s.source_files = 'Classes/**/*.{swift,h}' s.public_header_files = 'Classes/**/*.h' s.preserve_paths = 'TailscaleKit.xcframework' s.dependency 'Flutter' s.platform = :ios, '14.0' s.swift_version = '5.0' s.libraries = 'resolv' s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386 x86_64', 'OTHER_LDFLAGS' => '$(inherited) -force_load "$(PODS_TARGET_SRCROOT)/_current_slice/TailscaleKit.framework/TailscaleKit"', } s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386 x86_64', } s.script_phase = { :name => 'Select TailscaleKit Slice', :script => <<-'SCRIPT', PLUGIN_DIR="${PODS_TARGET_SRCROOT}" LINK="${PLUGIN_DIR}/_current_slice" rm -f "$LINK" if [ "$PLATFORM_NAME" = "iphonesimulator" ]; then ln -sf "TailscaleKit.xcframework/ios-arm64-simulator" "$LINK" else ln -sf "TailscaleKit.xcframework/ios-arm64" "$LINK" fi echo "TailscaleKit: selected $PLATFORM_NAME slice" SCRIPT :execution_position => :before_compile, } end