Sparkle icon indicating copy to clipboard operation
Sparkle copied to clipboard

zip files generated from Xcode Cloud cannot be streamed during extraction

Open sktusing opened this issue 3 months ago • 7 comments

Description of the problem

Using generate_appcast with a .app.zip generated from Xcode Cloud results in an error:

sktusing@SKT-MBP Sparkle-2.6.0 % ./bin/generate_appcast /Users/sktusing/Desktop/Vor_Release 
ditto: Vor.app/Contents/Frameworks/DeckLink.framework/DeckLink: No such file or directory
ditto: Couldn't read pkzip signature.
ditto: Couldn't read pkzip signature.
ditto: Couldn't read pkzip signature.
ditto: Couldn't read pkzip signature.
ditto: Couldn't read pkzip signature.

Running generate_appcast a second time results in:

sktusing@SKT-MBP Sparkle-2.6.0 % ./bin/generate_appcast /Users/sktusing/Desktop/Vor_Release 
Could not unarchive /Users/sktusing/Desktop/Vor_Release/Vor.app.zip Error Domain=NSCocoaErrorDomain Code=516 "“Vor.app.zip” couldn’t be copied to “762209f0516ccdac78f286882388fccbe8cfbae5c16c22f1946db52ce85f7926.tmp” because an item with the same name already exists." UserInfo={NSSourceFilePathErrorKey=/Users/sktusing/Desktop/Vor_Release/Vor.app.zip, NSUserStringVariant=(
    Copy
), NSDestinationFilePath=/Users/sktusing/Library/Caches/Sparkle_generate_appcast/762209f0516ccdac78f286882388fccbe8cfbae5c16c22f1946db52ce85f7926.tmp/Vor.app.zip, NSFilePath=/Users/sktusing/Desktop/Vor_Release/Vor.app.zip, NSUnderlyingError=0x6000012e4d20 {Error Domain=NSPOSIXErrorDomain Code=17 "File exists"}}
Error generating appcast from directory /Users/sktusing/Desktop/Vor_Release 
 Error Domain=SUSparkleErrorDomain Code=1001 "No usable archives found in /Users/sktusing/Desktop/Vor_Release" UserInfo={NSLocalizedDescription=No usable archives found in /Users/sktusing/Desktop/Vor_Release}

Running sktusing@SKT-MBP ~ % zipinfo /Users/sktusing/Desktop/Vor_Release/Vor.app.zip shows that Decklink directory exists:

lrwxrwxr-x  2.0 unx       25 bX stor 24-Apr-21 14:21 Vor.app/Contents/Frameworks/DeckLink.framework/DeckLink

Unzipping, then zipping the app causes generate_appcast to function.

This is new with us migrating to Xcode Cloud for notarizing the application.

Do you use Sandboxing in your app?

No

Version of Sparkle.framework in the latest version of your app

2.6.0

Version of Sparkle.framework in the old version of app that your users have (or N/A)

N/A

Sparkle's output from Console.app

default	10:18:31.749037-0400	generate_appcast	Not internal release, disabling SIRL
default	10:18:31.749078-0400	generate_appcast	Enabling System Keychain Always due to platform
default	10:18:31.749119-0400	generate_appcast	[0x600003acc000] activating connection: mach=true listener=false peer=false name=com.apple.securityd.xpc
default	10:18:31.749536-0400	secd	Entitlement com.apple.application-identifier=org.sparkle-project.Sparkle.generate-appcast is ignored because of invalid application signature or incorrect provisioning profile
default	10:18:31.750303-0400	generate_appcast	[0x600003ac0000] activating connection: mach=true listener=false peer=false name=com.apple.cfprefsd.daemon
default	10:18:31.754100-0400	generate_appcast	UNIX error exception: 17
default	10:18:31.759236-0400	generate_appcast	UNIX error exception: 17
default	10:18:31.760170-0400	generate_appcast	UNIX error exception: 17
default	10:18:31.762017-0400	generate_appcast	UNIX error exception: 17
default	10:18:31.763014-0400	generate_appcast	UNIX error exception: 17
default	10:18:31.764159-0400	generate_appcast	UNIX error exception: 17
default	10:18:31.802500-0400	generate_appcast	[0x600003ad8000] activating connection: mach=true listener=false peer=false name=com.apple.cfprefsd.agent
default	10:18:31.813110-0400	generate_appcast	[0x14a205480] activating connection: mach=true listener=false peer=false name=com.apple.lsd.mapdb
default	10:18:31.814565-0400	generate_appcast	[0x600003ac42d0] activating connection: mach=true listener=false peer=false name=com.apple.distributed_notifications@Uv3
default	10:18:32.905052-0400	generate_appcast	Not internal release, disabling SIRL
default	10:18:32.905095-0400	generate_appcast	Enabling System Keychain Always due to platform
default	10:18:32.905138-0400	generate_appcast	[0x600000948000] activating connection: mach=true listener=false peer=false name=com.apple.securityd.xpc
default	10:18:32.905350-0400	secd	Entitlement com.apple.application-identifier=org.sparkle-project.Sparkle.generate-appcast is ignored because of invalid application signature or incorrect provisioning profile
default	10:18:32.906096-0400	generate_appcast	[0x6000009480f0] activating connection: mach=true listener=false peer=false name=com.apple.cfprefsd.daemon
default	10:18:32.909018-0400	generate_appcast	UNIX error exception: 17
default	10:18:32.910882-0400	generate_appcast	UNIX error exception: 17
default	10:18:32.912028-0400	generate_appcast	UNIX error exception: 17
default	10:18:32.913280-0400	generate_appcast	UNIX error exception: 17
default	10:18:32.914386-0400	generate_appcast	UNIX error exception: 17
default	10:18:32.915625-0400	generate_appcast	UNIX error exception: 17
default	10:18:32.952601-0400	generate_appcast	Extracting using '/usr/bin/ditto' '-x' '-k' '-' < '/Users/[user]/Library/Caches/Sparkle_generate_appcast/762209f0516ccdac78f286882388fccbe8cfbae5c16c22f1946db52ce85f7926.tmp/Vor.app.zip' '/Users/[user]/Library/Caches/Sparkle_generate_appcast/762209f0516ccdac78f286882388fccbe8cfbae5c16c22f1946db52ce85f7926.tmp'

Steps to reproduce the behavior

  1. Download zipped application from Xcode Cloud
  2. Sign .app.zip with generate_appcast
  3. generate_appcast errors and fails

sktusing avatar Apr 22 '24 14:04 sktusing