Skip to content

Instantly share code, notes, and snippets.

@brbowden
Created October 23, 2019 17:32
Show Gist options
  • Select an option

  • Save brbowden/672854ad271f797a993b2f847d9d4936 to your computer and use it in GitHub Desktop.

Select an option

Save brbowden/672854ad271f797a993b2f847d9d4936 to your computer and use it in GitHub Desktop.
Bulk create Swift Support library nuget packages
#!/bin/bash
# Creates Swift Support packages for Xamarin iOS Binding projects
# Usage:
# - Clean project folders
# - Run copy_new_dylibs.sh
# - Build all in Xamarin
# - sh create_packages.sh <version number> <release notes>
# - ex: create_packages.sh 4.1.0.1 "Xcode 9.3 support"
version="$1"
releaseNotes="$2"
PREFIX="Xamarin.Swift4."
SUFFIX="/"
for PROJECT in $(ls -1 -d Xamarin.Swift4.*/); do
libName=${PROJECT#$PREFIX}
libName=${libName%$SUFFIX}
libFile="libswift${libName}.dylib"
libPath="${PROJECT}Frameworks/${libFile}"
folderName=${PROJECT#$SUFFIX}
packageId=${PROJECT%$SUFFIX}
writeNuspec="${PROJECT}${packageId}.nuspec"
processNuspec="${packageId}.nuspec"
rm ${PROJECT}*.nuspec
echo $libFile
cat base.nuspec | sed s/'\$id\$'/${packageId}/ | sed s/'\$version\$'/${version}/ | sed s/'\$releaseNotes\$'/"${releaseNotes}"/ | sed s/'\$lib\$'/${libFile}/> $writeNuspec
cd ${folderName}
rm *.nupkg
nuget pack $processNuspec
cd ..
done
# The Swift4 folder is a special case - handle it here
cd Xamarin.Swift4
cat base_support.nuspec | sed s/'\$version\$'/${version}/ | sed s/'\$releaseNotes\$'/"${releaseNotes}"/ > Xamarin.Swift4.nuspec
rm *.nupkg
nuget pack Xamarin.Swift4.nuspec
cd ..
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment