【发布时间】:2010-11-10 14:54:20
【问题描述】:
我按照本指南在 XCode iPhone 项目 (guide) 中实现内部版本号。 我试过了,在 NSLogging 时我得到了错误的内部版本号。它没有正确更新,并且总是在 info.plist 后面一两个数字。我需要它是相同的数字。有人知道为什么会这样吗?
即 "[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBuildNumber"]" 与 plist 的 CFBuildNumber 不同。
脚本设置为先运行,然后再复制捆绑资源和所有内容。这是我得到的输出和 info.plist 数字:
应用程序版本:1.0 内部版本号:52 内部版本日期:2010 年 11 月 10 日星期三 15:10:05 CET
(info.plist 是内部版本号:54 和日期:2010 年 11 月 10 日星期三 15:10:43 CET)
应用程序版本:1.0 内部版本号:54 内部版本日期:2010 年 11 月 10 日星期三 15:10:43 CET
(info.plist 是内部版本号:55 和日期:2010 年 11 月 10 日星期三 15:12:54 CET)
应用程序版本:1.0 内部版本号:54 内部版本日期:2010 年 11 月 10 日星期三 15:10:43 CET
(info.plist 是内部版本号:56 和日期:2010 年 11 月 10 日星期三 15:13:49 CET)
应用程序版本:1.0 内部版本号:56 内部版本日期:2010 年 11 月 10 日星期三 15:13:49 CET
(info.plist 是内部版本号:57,日期:2010 年 11 月 10 日星期三 15:14:46 CET)
它似乎始终遵循这种模式。所以继续它会是 56 (real 58), 58 (real 59), 58 (real 60), 60 (real 61), 60 real (62), 62 (real 63) 等等。
脚本(设置为在其他所有内容之前运行)是:
#!/bin/bash
# Auto Increment Version Script
buildPlist="Project-Info.plist"
CFBuildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBuildNumber" $buildPlist)
CFBuildNumber=$(($CFBuildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBuildNumber $CFBuildNumber" $buildPlist
CFBuildDate=$(date)
/usr/libexec/PlistBuddy -c "Set :CFBuildDate $CFBuildDate" $buildPlist
【问题讨论】:
标签: iphone objective-c xcode synchronization plist