相关疑难解决方法(0)

如何阻止Xcode 11将CFBundleVersion和CFBundleShortVersionString更改为$(CURRENT_PROJECT_VERSION)和$(MARKETING_VERSION)?

从版本11开始,每当我在目标设置(选项卡“常规”)中输入“版本”或“构建”值时,Xcode就会将我的CFBundleVersion值设置为,$(CURRENT_PROJECT_VERSION)并将我CFBundleShortVersionString的值$(MARKETING_VERSION)设置为。

我输入的实际版本和构建值现在存储在project.pbxproj文件中。我不希望或不喜欢这种行为,因为我在构建时使用shell脚本来修改值。

我可以在Info.plist文件中手动设置正确的值,但是一旦在目标设置中更改了版本号或内部版本号,Xcode就会再次更改Info.plist文件。

如何停止Xcode 11执行此操作?

当我修改构建脚本以更改项目文件本身时,Xcode将在更改项目文件后立即取消构建。

info.plist xcode11

10
推荐指数
1
解决办法
607
查看次数

iOS:如何在 Xcode 11 中自动升级我的 CFBundleVersion 和 CFBundleShortVersionString?(我的旧脚本不再起作用了)

我有一个脚本可以升级我的版本(0.01 by 0.01)和我的版本(1 by 1)。它不再适用于 Xcode 11。

在此输入图像描述

这是我的脚本:

    #!/bin/bash
    rm -rf build

    Version=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
    Version=$(echo "scale=2; $Version + 0.01" | bc)

    Build=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
    Build=$($Build + 1)

    /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $Build" 

    "$INFOPLIST_FILE"
        if [ "${CONFIGURATION}" = "Release" ]; then
        /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $Version" "$INFOPLIST_FILE"    
fi 
Run Code Online (Sandbox Code Playgroud)

这是当我想在 Xcode 中构建或存档时出现的错误消息:

细节

无法安装请求的应用程序
域:NSPOSIXErrorDomain 代码:22
失败原因:应用程序的 Info.plist 不包含 CFBundleShortVersionString。
恢复建议:确保您的捆绑包包含 CFBundleShortVersionString。
用户信息:{
bundleURL =“file:///Users/olosta/Library/Developer/Xcode/DerivedData/Formbox-cxaxehrhmxqaqabbijmxvasgmhwn/Build/Products/Debug-iphonesimulator/Formbox_Renault_BusinessDays.app/”;
}

我检查了那张,但它对我的脚本没有帮助

如果我进入 Xcode/General/Identity,我可以看到 Xcode 中填写了“版本”和“构建”, 在此输入图像描述但如果我通过手动打开 info.plist 来检查它,两个值都是空的

   <key>CFBundleVersion</key> …
Run Code Online (Sandbox Code Playgroud)

versioning xcode ios run-script

5
推荐指数
2
解决办法
9141
查看次数

标签 统计

info.plist ×1

ios ×1

run-script ×1

versioning ×1

xcode ×1

xcode11 ×1