Debugging Delta issues with BinaryDelta apply #2210
Replies: 1 comment 2 replies
-
I suggest you should investigate why this is happening. I include several pdf's in my app's Resources for example and they're all 0644.
git will only store file permissions 0644 or 0755 for regular files and I believe BinaryDelta warns when other permission modes are encountered.
How are the files localized? Maybe the tool or process that's doing the localization is the cause of the permissions changing. I doubt Xcode is responsible for the change, but if it is then I suggest filing a feedback report issue to Xcode. Xcode's full build log may give you some insight.
I suggest doing this as a workaround, if you cannot find the root cause of the issue. Code signing is not a problem. If you add a Run Script phase in Xcode after your copy phase that alters files in your produced app bundle, that phase will be run before Xcode signs your app bundle. (Also code signing doesn't validate file permissions).
2.1 onwards introduced a new and improved container/archive format for delta updates, but this bit of logic has stayed the same. It is actually a sort of optimization / simple case which opens the existing file in write mode instead of stat'ing the old file and applying new permissions after the patch. I don't think I want to change it unless this proves to be more widespread. Maybe I should even add a check during patch creation requiring all regular files to be writeable.. (we used to have it that we would reject permissions like this but relaxed the restriction a bit). |
Beta Was this translation helpful? Give feedback.
-
Hello,
We have recently added support for delta updates via Sparkle and we are on version 1.27.0 ( Updating to v2.x is still on the backlog ). During testing I noticed that my delta will not patch correctly. I ran the
BinaryDelta apply
to it and get:I have looked into and discovered a few things:
blah.pdf
has read-only permissions in the bundleblah.pdf
had read/write permissions in the repoCopy Bundle Resources
in Xcode.blah.pdf
files get read-only permissions when copied but the others do not.❓ How can I still deliver a delta update with this one file causing an issue?
❓ Is there a way to ignore this file when creating/applying the delta?
❓ Any idea why Xcode is changing the permission of my file?
❓ Are there changes in newer versions of Sparkle 1.x or 2.x that would give me more options in solving this problem?
Thanks for your time,
April
Beta Was this translation helpful? Give feedback.
All reactions