Preserve symlinks in WebRTC.framework to avoid bundle signing failure

Nathan Sobo created

Change summary

crates/live_kit_client/build.rs | 13 ++++++++++++-
script/bundle                   |  1 -
2 files changed, 12 insertions(+), 2 deletions(-)

Detailed changes

crates/live_kit_client/build.rs 🔗

@@ -128,9 +128,20 @@ fn swift_package_root() -> PathBuf {
 }
 
 fn copy_dir(source: &Path, destination: &Path) {
+    assert!(
+        Command::new("rm")
+            .arg("-rf")
+            .arg(destination)
+            .status()
+            .unwrap()
+            .success(),
+        "could not remove {:?} before copying",
+        destination
+    );
+
     assert!(
         Command::new("cp")
-            .arg("-r")
+            .arg("-R")
             .args(&[source, destination])
             .status()
             .unwrap()

script/bundle 🔗

@@ -39,7 +39,6 @@ lipo \
 echo "Copying WebRTC.framework into the frameworks folder"
 mkdir target/x86_64-apple-darwin/release/bundle/osx/Zed.app/Contents/Frameworks
 cp -R target/x86_64-apple-darwin/release/WebRTC.framework target/x86_64-apple-darwin/release/bundle/osx/Zed.app/Contents/Frameworks/
-rm -rf target/x86_64-apple-darwin/release/bundle/osx/Zed.app/Contents/Frameworks/WebRTC.framework/Versions
 
 if [[ -n $MACOS_CERTIFICATE && -n $MACOS_CERTIFICATE_PASSWORD && -n $APPLE_NOTARIZATION_USERNAME && -n $APPLE_NOTARIZATION_PASSWORD ]]; then
     echo "Signing bundle with Apple-issued certificate"