Skip to content

Instantly share code, notes, and snippets.

@rktalusani
Last active March 21, 2023 01:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rktalusani/a129c76b572ccad2b0c2c1177dc13cf4 to your computer and use it in GitHub Desktop.
Save rktalusani/a129c76b572ccad2b0c2c1177dc13cf4 to your computer and use it in GitHub Desktop.
#!/bin/bash
generate_podfile(){
echo "platform :ios, '12.0'
install! 'cocoapods', integrate_targets: false
use_frameworks!
pod 'OTXCFramework', '$1'
" > Podfile
}
generate_spm_info(){
rm -rf Opentok-SPM-$1
mkdir Opentok-SPM-$1
echo '// swift-tools-version:5.6
import PackageDescription
let package = Package(
name: "OpenTokLib",
products: [
.library(
name: "OpenTokLib",
targets: ["OpenTokLib","OpenTok","VonageWebRTC"]),
],
dependencies: [],
targets: [
.target(name: "OpenTokLib",
path: "./",
linkerSettings: [
.unsafeFlags(["-ObjC"]),
.linkedLibrary("c++"),
.linkedFramework("VideoToolbox"),
.linkedFramework("Foundation"),
.linkedFramework("Network")
]
),
.binaryTarget(name: "OpenTok",path: "OpenTok.xcframework"),
.binaryTarget(name: "VonageWebRTC",path: "VonageWebRTC.xcframework")
]
)
' > Opentok-SPM-$1/Package.swift
}
move_xcframework(){
mv -f Pods/OTXCFramework/OpenTok.xcframework Opentok-SPM-$1
mv -f Pods/VonageWebRTC/VonageWebRTC.xcframework Opentok-SPM-$1
cd Opentok-SPM-$1
mkdir Sources
mkdir Sources/OpenTokLib
touch Sources/OpenTokLib/Empty.swift
git init -b master
git add *
git add Package.swift
git commit -q -m "initial commit"
git tag $1
cd ..
rm -f Podfile
rm -f Podfile.lock
rm -rf Pods
}
echo "Generating Podfile for SDK version" $1
generate_podfile $1
echo "Installing pods"
pod install --repo-update
echo "Generating SPM package"
generate_spm_info $1
echo "Extracting XCFramework"
move_xcframework $1
@rktalusani
Copy link
Author

rktalusani commented Mar 21, 2023

HOW to run?

$./generateSPMV2.sh 2.24.2

This will create Opentok-SPM-2.24.2 folder with all the required files for SPM
Use the full path to the Opentok-SPM-x.y.z folder as the package path in Xcode and install it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment