gpt4 book ai didi

ios - 在启用 Assets 库的情况下在 Xcode 5 中修改 Info.plist 的 CFBundleVersion

转载 作者:技术小花猫 更新时间:2023-10-29 10:13:00 34 4
gpt4 key购买 nike

使用 Xcode 5 的新 Assets 库,添加图像和组织它们从未如此简单。但是,它似乎破坏了我用于创建构建的一些脚本。

我的运行脚本阶段中有一个脚本将 CFBundleVersion 设置为 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 似乎直到构建中途才生成,大概是由于 Assets 库。

我也使用过这个命令,虽然它没有抛出错误,但它仍然会破坏我的更改(假设 INFO_PLIST="${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Info"):

defaults write $INFO_PLIST CFBundleVersion $timestamp

当我开始使用 Assets 库来组织我的应用程序图标和初始图像时,情况并非如此。有谁知道为什么会这样?更好的是,是否有将此值添加到 plist 的解决方法?我已经尝试将脚本置于 Action 前构建阶段以及 Action 后构建阶段。我也试过在构建完成后运行命令,但是当我尝试对其进行代码签名和打包时,它说由于 plist 修改,签名无效。

如果不存在合理的解决方案,我想我总是可以从 Asset Libraries 中取消迁移,直到我的脚本可以正常工作。

最佳答案

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

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${INFOPLIST_FILE}")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${INFOPLIST_FILE}"

(直接使用INFOPLIST_FILE,而不是$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH)

希望这可能有用。

关于ios - 在启用 Assets 库的情况下在 Xcode 5 中修改 Info.plist 的 CFBundleVersion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19164939/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com