问题标签 [sparkle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - Sparkle Framework 和 Mac App Store:最佳实践?
在通过 Mac App Store 分发并一直使用 Sparkle 框架时,您的方法是什么?
我发现这两个网站提到了这些问题以及如何解决这些问题,但我想知道您如何处理这个问题。
http://furbo.org/2011/03/09/mac-app-store-guide/
http://danielkennett.org/blog/2010/12/techniques-for-managing-optional-code/
感谢大家。
[更新]
这是另一种方法:
sparkle - Sparkle 10.9 链接错误
在尝试使用运行 10.9 的 Xcode 5 将 Sparkle 添加到我的项目时遇到问题。
我已经按照教程进行了 T,但是当我到达需要复制框架并设置其复制位置的地步时,似乎无法在复制捆绑资源部分中设置复制目标,它只需将框架放入 /Resources 文件夹即可。
我已经彻底做好了准备,并尝试了这里的所有建议。
http://www.lists.apple.com/archives/xcode-users/2012/Aug/msg00249.html
我从最新源重新编译了 Sparkle,并将安装目录设置为 @loader_path/../Frameworks 中的 @executable_path/../Frameworks 我收到以下错误。
dyld:库未加载:@executable_path/../Frameworks/Sparkle.framework/
当我恢复并尝试重新添加框架时,我得到了这个错误。
dyld:库未加载:@loader_path/../Frameworks/Sparkle.framework/
如果我从二进制文件的链接框架中完全删除框架并只关注复制捆绑资源,那么我会收到此错误。
未知类“SUUpdater”,改用“NSObject”。
本教程是为我知道的 Xcode 4 编写的。一步说使用复制文件位置,但在 Xcode 5 中似乎没有任何帮助。
更新
我找到了一个解决方法,但它非常混乱。
- 将框架添加到“添加要构建的文件”构建步骤。
- 取消链接 sparkle 框架。
- 打开 Derived Data 文件夹,然后打开 App Build,然后浏览到资源。将 sparkle.framework 文件夹移动到应用程序的根目录,并将框架放入应用程序根目录中名为 Framework 的文件夹中。
- 从“添加要构建的文件”步骤中删除框架。
- 重新链接框架。
- 重建应用程序,瞧,它可以工作了。
基本上,您手动将框架添加到框架文件夹中,然后在最后将其链接起来。让它变得混乱的是,在派生数据文件夹中构建偶尔会发生变化。
xcode - Sparkle 包的 Xcode5 存档后脚本不再有效
Xcode 5 似乎改变了它存储构建应用程序包 (xxx.app) 的方式,因此同上不再有效。在 ../BuildProductsPath/Release/ 目录中,该应用程序实际上是指向 .../InstallationBuildProductsLocation/Applications/... 的符号链接
MyApp.app -> ~/Library/Developer/Xcode/DerivedData/MyApp-emwilkqhlayanxahjpexlpbbkato/Build/Intermediates/ArchiveIntermediates/MyApp/InstallationBuildProductsLocation/Applications/MyApp
这打破了我用来创建应用程序的 zip 文件以放在我的 Sparkle 更新服务器上的同上命令。
任何人都有用于构建 Sparkle XML 和 ZIP 文件的更新脚本?或者知道在存档阶段之后我需要使用什么环境变量来定位我的实际二进制文件?
以下是存档后脚本中的相关行:
ARCHIVE_FILENAME="$HOME/Desktop/$PROJECT_NAME-$VERSION_STRING.zip"
cd "$BUILT_PRODUCTS_DIR"
同上 -ck --keepParent "$PROJECT_NAME.app" "$ARCHIVE_FILENAME"
这来自 Sparkle 网站上的示例脚本。
xcode - Xcode 5 + Sparkle + 代码签名
我在我的应用程序中使用 Sparkle 并通过运行 shell 脚本构建阶段对框架进行签名,该阶段运行良好,没有构建错误。问题是,通过 Sparkle 工作没有更新,更新者说:
提取档案时出错
错误的代码签名是否可能导致此错误?我很确定这不是 Sparkle 错误,RSS xml 文件是 100% 正确的。更新旧版本也可以。
这是一个非 MAS 应用程序,我使用我的开发人员 ID 应用程序证书对所有内容进行签名。我可以在启用 Gatekeeper 的情况下运行该应用程序(spctl -a -v 说:已接受),我可以手动解压缩并启动它,然后出现正确的消息,所以没有问题。
与旧版本的不同之处在于,这是我在新 Mac 上构建的第一个应用程序版本,我在 Xcode 中添加了我的开发者 ID 并获得了我需要的所有证书。我认为 Xcode 创建了新的,但这不应该是一个问题,我只是使用新的。我不知道这是否也会导致错误。有人知道更多吗?谢谢。
顺便说一句:当我选择“开发人员 ID”进行代码签名,然后将构建设置视图中的代码签名设置为我的开发 ID 时,常规视图中的单选按钮会跳回“无”。
编辑:脚本
所以XPC服务没有线路,我需要吗?我想我不在我的应用程序中使用 xpc 服务。
xcode5 - 在 Xcode 5 中闪耀
我在 Xcode 5 中添加 sparkle 框架时遇到问题。这篇文章基本上描述了它。问题是 sparkle 没有复制到 frameworks 文件夹中。解决方案是下载源代码,更改一些设置并自己构建。但是:在构建过程中出现错误:
生产
格式字符串不是字符串文字(可能不安全)
我不知道如何解决这个问题。任何人都可以帮忙吗?
macos - 使用具有不同捆绑标识符的 Sparkle 更新 .app
我正在使用Sparkle将应用程序从 更新0.9.2
为1.0.0
.
在新的更新中,我将CFBundleIdentifier
的MyApp.app
从更改com.MyCompany.MyApp
为au.com.MyCompany.MyApp
。
当我测试下载此更新(通过 MyApp.app 内置的 Sparkle)时,它会下载更新,然后给我一个显示此消息的窗口:
提取存档时出错。请稍后再试。
除了让用户重新安装应用程序之外,还有其他方法可以让 Sparkle 识别旧应用程序CFBundleIdentifier
并将其更新到新应用程序吗?
xcode - 在 Mavericks 和 XCode 5 下 Sparkle 的 OS X 应用程序更新问题
我使用 Sparkle 框架来处理我的应用程序更新。直到最近,当我升级到 OS X 10.9 Mavericks 和 XCode 5.0.2 时,一切都运行良好。
当我在 OS X 10.8.4 和 XCode 4.6.3 下编译我的应用程序时,它可以毫无问题地更新。但是,当我在 Mavericks 和 XCode 5.0.2 下使用相同的 XCode 项目和相同的代码签名编译完全相同的代码时,生成的包无法更新,Sparkle 在更新过程中崩溃并出现以下错误:
由于未捕获的异常“NSDestinationInvalidException”而终止应用程序,原因:“ * + [SUPlainInstaller performSelector:onThread:withObject:waitUntilDone:modes:]: 目标线程在等待执行时退出”以 NSException 类型的未捕获异常终止
这可以从哪里来的任何想法?是签名问题吗?编译问题?
objective-c - Getting error on importing Sparkle Framwork for Xcode 5
I am downloaded Sparkle 1.5 from git hub. when i am copying it into my existing project it is giving following error.Can anybody tell me what is the reason of this
objective-c - 如何在 sparkle 中签署您的更新
谁能告诉我如何在 sparkle 中为 mac 应用程序签名更新。我检查了https://github.com/sparkle-project/Sparkle/wiki/publishing-an-update
但没有得到任何明确的想法。请告诉我
这是由 Mac 开发人员 ID 完成的吗?除了签名更新的开发人员 ID 之外,还有哪些其他方式。
macos - Sparkle 更新框架中的 Appcast 元素 pubDate 的目的是使更新推迟到某个所需的发布日期吗?
我希望 appcast pubDate xml 元素允许我指定我的应用程序不能考虑更新,除非当前日期是发布日期 (pubDate) 或更晚。
这是一个示例 appcast,其中包含 item 元素内的 pubDate 元素:
这是从 Sparkle 的网站复制的:https ://github.com/sparkle-project/Sparkle/blob/0ed83cf9f2eeb425d4fdd141c01a29d843970c20/Sample%20Appcast.xml
所以顺序是这样的:
- 我在星期一将我更新的应用程序--myapp v1.1--复制到我的更新网络服务器
- 在我的更新服务器上,我还将 pubDate 设置为星期三(采用正确的 RFC 822 格式)
- 周二,有人运行 myapp v1.0 并尝试使用 myapp v1.0 中捆绑的 sparkle appcast 将 myapp 更新为可用的任何内容
- 那时,sparkle 比较了版本并认为应该进行更新,但它仍然只是星期二,所以 sparkle 不会提供更新选项,直到他在星期三(或更晚)再次尝试
- 星期三到了,用户尝试再次更新 myapp v1.0,这一次它可以工作,因为版本是可更新的,日期是星期三。
这是 pubDate Sparkle 元素的目的吗?
除了版本号之外,Sparkle 是否使用 pubDate 来帮助确定是否应该进行更新?
阻止应用程序更新直到某个日期是我想要的,但我发现 pubDate 似乎并没有为我做这件事。
我在 Sparkle 文档中找不到对 pubDate 目的的参考:https ://github.com/sparkle-project/Sparkle/wiki