2个回答

8

您可以尝试以下步骤,这可能会有所帮助:

  1. 手动设置您的info.plist中的CFBundleShortVersionString(又名“Bundle版本字符串,短”)值为主要.次要版本号(例如1.0)

  2. 向您的项目添加一个“运行脚本”构建阶段,并使用以下脚本

REV=`svnversion -nc | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'`
BASEVERNUM=`/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "${INFOPLIST_FILE}"`
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BASEVERNUM.$REV" "${INFOPLIST_FILE}"

3.清理并构建(清理步骤会强制Xcode重新处理info.plist文件)。

图片描述


这是一个优雅的解决方案,但由于某些原因脚本中的REV组件始终为空。起初我以为这是由于Mac OS上的客户端版本1.7没有更新导致的,但现在已经解决了。我可以通过将其放在项目目录中的命令行中看到所需的输出。但它没有像预期的那样提供输入给我的应用程序。BASEVERNUM似乎获得了它的值。有什么想法吗? - Jay Snayder

0

请注意,Xcode 5对svn目录格式进行了更改。因此,如果您同时安装了Xcode 4和5,并已将svn项目目录转换为新的1.7格式,则会在Xcode 4中失去svn功能(缺少状态,svnversion不起作用等)。幸运的是,Tommy Domain为仍在使用Xcode 4和Xcode 5的Mac用户提供了解决方法。您可以在这里找到它。简而言之,解决方案可能是:

  • 关闭Xcode 4。
  • 下载并安装svn 1.7客户端(下载链接在这里
  • 进入XCode4.app包内部,到达SVN二进制文件所在位置:

cd /Applications/Xcode.app/Contents/Developer/usr/bin/

  • 通过将它们移动到任何其他目录来备份svn*文件:
移动svn*到backup文件夹: ``` mv svn* backup ```
创建指向安装的svn 1.7客户端包的符号链接: ``` ln -s /opt/subversion/bin/svn* ./ ```
之后重新打开Xcode 4,享受svn工具的工作以及来自Shekhar的solution,再次感谢Tommy's Domain blog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接