如果你细心的话,会发现OS X下面的很多应用的自动更新机制都非常相似,没错,他们都用的是Sparkle这个framework。(App Store里面的应用除外,因为苹果禁止使用第三方更新系统) ! H" i* w# R5 x' r 七度苹果电脑软件 同类的framwork还有Google的Update Engine,相比较要强大一些,不过对于一般的应用来说Sparkle就足够了。2 B: ]# {" p( h1 W0 a 七度苹果电脑软件 4 W; t- X# h) C1 r3 M. O 七度苹果电脑软件 如何为我的程序添加自动更新系统? 基本设定 在你的项目中添加 Sparkle framwork; M' K4 M. G3 X$ H1 d 七度苹果电脑软件 0 H a' e$ c9 a# _ 七度苹果电脑软件 下载Sparkle,解压/ t* V0 X" ]' v! } 七度苹果电脑软件 将 Sparkle.framework 拖拽到项目的Framework folder中,同时确定勾选Xcode提示框中的“Copy items into the destination group’s folder”: p+ h2 l5 w& U 七度苹果电脑软件 在Project Navigator中单击你的项目,选择你的Target,切换到Build Phases选项卡% z4 k% C. g1 a! w- d 七度苹果电脑软件 单击右下角的Add Build Phase,选择Copy Files/ e; @% F6 C G! D9 ? 七度苹果电脑软件 5 K5 f# A V* K5 z1 E3 { 七度苹果电脑软件 7 _, G5 H5 J/ z# W 七度苹果电脑软件 在Destination中选择Frameworks,然后把Sparkle.framwork拖拽进去 2 S) p% q6 e3 L# a( f 七度苹果电脑软件 $ M7 L2 ?4 |! ]$ w' s# M5 Q! k 七度苹果电脑软件 设置 Sparkle Updater Object 9 X4 ?9 ^% N3 r, f/ P4 l 七度苹果电脑软件 打开你的MainMenu.nib a# t8 Y: y$ J5 q 七度苹果电脑软件 选择 View → Utilities → Object Library,找到Object,双击添加 单击刚刚添加的Object" Z# x7 G0 X r. V! w1 C& q 七度苹果电脑软件 在Custom Class里面输入SUUpdater 如果需要,你也可以创建一个Menu Item,然后把它的taeget设置到SUUpdater实例的checkForUpdates:方法 数字签名" i! P8 t, I: R, h 七度苹果电脑软件 l& R# C. M) v" V" U 七度苹果电脑软件 为了确保更新是来自开发者的服务器并经过开发者的授权,不被第三方篡改,Sparkle添加了数字签名机制。 o; k/ I9 F' S z 七度苹果电脑软件 . ?1 p+ n# p( b% {% ] 七度苹果电脑软件 打开终端,cd到Sparkle目录的Extras/Signing\ Tools文件夹下 ruby generate_keys.rb 稍等片刻就可以看到如下提示: , U' t* Q( V8 {- H 七度苹果电脑软件 % x* h4 J% A2 Y' z 七度苹果电脑软件 这时目录中就会出现dsa_pub.pem和dsa_priv.pem两个文件,保存好dsa_priv.pem这个似有的密钥。 * 将Public Key (dsa_pub.pem) 添加到项目的资源文件夹中 * 在项目的Info.plist中添加一个SUPublicDSAKeyFile Key,然后将它的值设置为Public Key的文件名称(默认dsa_pub.pem)2 F1 c& ~( X" L- R/ V3 V9 E, _ 七度苹果电脑软件 t9 t: ]% [ q3 k4 ] 七度苹果电脑软件 设置更新通知服务、发布新更新 通知采用一个RSS Feed,具体格式及发布更新的方法参见:https://github.com/andymatuschak ... ublishing-an-update 在项目的Info.plist中添加一个SUFeedURL Key,然后把它的值设置成RSS的URL。 确保在Info.plist里面有一个合适的CFBundleVersion8 E4 o0 k% ]+ N1 v7 P 七度苹果电脑软件 如果需要,测试整个系统, g( Y9 M1 |8 r0 U 七度苹果电脑软件 确保要新程序的CFBundleVersion要比旧版本的CFBundleVersion值大/ J. j: X+ C9 I 七度苹果电脑软件 程序会在第二次运行的时候提示是否自动检查更新,不在第一次启动的时候就提示是给用户为了留下一个好印象 A' a' X$ m$ }% }& j/ F9 M 七度苹果电脑软件 这样,整个过程就完成了,后续发布更新可以参照第四步中的引用的URL中的说明进行。 |