Ios 在启用资产库的情况下修改Xcode 5中Info.plist的CbundLeverVersion

Ios 在启用资产库的情况下修改Xcode 5中Info.plist的CbundLeverVersion,ios,xcode,plist,xcode5,Ios,Xcode,Plist,Xcode5,有了Xcode 5的新资源库,添加图像和组织图像变得前所未有的容易。然而,它似乎破坏了我用于创建构建的一些脚本 我在运行脚本阶段中有一个脚本,它将CbundLeverVersion设置为plist中的当前时间戳。在脚本中,我执行以下语句: /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $timestamp" $BUILT_PRODUCTS_DIR/$INFOPLIST_PATH 但是,当执行此操作时,将显示以下语句: Set: Entry,

有了Xcode 5的新资源库,添加图像和组织图像变得前所未有的容易。然而,它似乎破坏了我用于创建构建的一些脚本

我在运行脚本阶段中有一个脚本,它将CbundLeverVersion设置为plist中的当前时间戳。在脚本中,我执行以下语句:

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $timestamp" $BUILT_PRODUCTS_DIR/$INFOPLIST_PATH
但是,当执行此操作时,将显示以下语句:

Set: Entry, ":CFBundleVersion", Does Not Exist
File Doesn't Exist, Will Create: /Users/SpacePyro/Library/DerivedData/BundleTest-duikdqngfmrovnagrcsvdcuxxstz/Build/Products/Debug-iphoneos/BundleTest.app/Info.plist
这似乎发生在干净的构建上。plist似乎直到构建的中途才生成,这可能是由于资产库的缘故

我还使用了这个命令,虽然它没有抛出错误,但它仍然会清除我的更改假定INFO_PLIST=${builded_PRODUCTS_DIR}/${WRAPPER_NAME}/INFO:

当我开始使用资产库来组织我的应用程序图标和飞溅图像时,情况并非如此。有人知道为什么会这样吗?更好的是,是否有一种变通方法可以将此值添加到plist中?我已经尝试过将脚本置于动作前构建阶段和动作后构建阶段。我还尝试在构建完成后运行该命令,但当我尝试对其进行代码设计和打包时,它会说由于plist修改,签名无效


如果不存在合理的解决方案,我想我总是可以从资产库中反迁移,直到我的脚本能够正常工作。

找到了这个解决方案,这是一个愚蠢的解决方案。事实证明,您可以将脚本阶段移到最后。我甚至不知道这些是可移动的,也不知道这有什么关系!但通过将运行脚本阶段拖到底部,脚本可以根据需要运行和修改内容


我也有同样的问题,在我的例子中,我的XXX-Info.plist文件路径错误:

生成设置->打包->Info.plist文件

我改变了它的实际位置,开始工作

如果plist文件为Preprocessed-Info.plist,则将Preprocess Info.plist file INFOPLIST\u Preprocess的值更改为Yes true,如下所示:


我曾经遇到过类似的问题,以下是最终帮助我解决的问题:

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${INFOPLIST_FILE}")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${INFOPLIST_FILE}"
直接使用INFOPLIST\u文件,而不是$build\u PRODUCTS\u DIR/$INFOPLIST\u PATH


希望这可能有用。

在生成设置中搜索$SRCROOT并将其删除

将其从 $SRCROOT/TestProject/Info.plist 到 TestProject/Info.plist


谢谢这也解决了我的问题。我将主应用程序的运行脚本阶段移到了“复制捆绑资源”之后,但在“嵌入应用程序扩展和嵌入观看内容”之前。Xcode要求我选择一个info.plist。在我这样做之后,路径是一个完整路径,这意味着调用时sh找不到info.plist。因此,将其更改为相对路径。
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${INFOPLIST_FILE}")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${INFOPLIST_FILE}"