xcode - Mavericks 和 XCode 5 下 Sparkle 的 OS X 应用程序更新问题

标签 xcode macos cocoa osx-mavericks sparkle

我使用 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 在更新过程中崩溃并出现以下错误:

Terminating app due to uncaught exception 'NSDestinationInvalidException', reason: '* +[SUPlainInstaller performSelector:onThread:withObject:waitUntilDone:modes:]: target thread exited while waiting for the perform' terminating with uncaught exception of type NSException

有什么想法可以从哪里来吗? 是签名问题吗?编译问题?

最佳答案

感谢this post,我终于找到了解决方案.

问题源于 Mavericks 改变了应用程序的签名方式。 应用程序中嵌入的每个框架现在也应该进行签名。

为此,我刚刚添加了一个“运行脚本”构建阶段,其中包含以下几行:

LOCATION="${BUILT_PRODUCTS_DIR}"/"${FRAMEWORKS_FOLDER_PATH}"
IDENTITY="Developer ID"
codesign --verbose --force --sign "$IDENTITY" "$LOCATION/Sparkle.framework"
codesign --verbose --force --sign "$IDENTITY" "$LOCATION/../XPCServices/com.andymatuschak.Sparkle.SandboxService.xpc"

关于xcode - Mavericks 和 XCode 5 下 Sparkle 的 OS X 应用程序更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20272170/

相关文章:

ios - 如何以编程方式从 UIViewController 转到 UITableViewController

macos - MacOS 上 zsh 终端中的穿梭 : "expected server init string b' SSHUTTLE000 1'; got b' '"

java - Rhino 报告丢失 : after property id

objective-c - NSView背景图片由3个不同的文件组成

ios - 基本 url 在 WebView 中不起作用

ios - "iPhone Developer"与配置文件代码签名身份

ios - 使用 Array 扩展获取最新数据

ios - 使用 `ipa build` 和 `deliver` 工具后出现无效的临时配置文件错误(自动提交应用程序)

postgresql - PostgresQL 安装失败 : "database cluster initialisation failed" MAC os

ios - Objective C NSStream 连接总是被拒绝