Re: Question about Info.plists
Re: Question about Info.plists
- Subject: Re: Question about Info.plists
- From: Alex Zavatone via Cocoa-dev <email@hidden>
- Date: Wed, 19 Aug 2020 18:37:22 -0500
Here’s the info from my StackOverflow answer.
https://stackoverflow.com/a/55525399/1058199
Over the years, Apple has come up with several manners of changing version and
build numbers. Many of them are now outdated and poor practice. Changing
CURRENT_PROJECT_VERSION modifies values within your project's project.pbxproj
file and if you are running a distributed team, this will cause merge conflicts
if the other half of the team tries to update and while they were asleep, you
updated this internal value. If you are using pods, you'll get several more
merge conflicts per pod that you add to the project.
So, CURRENT_PROJECT_VERSION?
Don't use it.
Within the info.plist file are these keys.
CFBundleVersion
CFBundleShortVersionString
Use CFBundleVersion for your app's build number. Use CFBundleShortVersionString
for your app's version number.
Use Plistbuddy to do it.
<key>CFBundleShortVersionString</key>
<string>3.0.7</string>
<key>CFBundleVersion</key>
<string>934</string>
</dict>
</plist>
Try the script below.
#!/bin/sh
# To make executable, use: chmod u+x
Build-Versioning-Scripts/Increment_Build_Number.sh
# to locate your target's info.plist use
# ${PRODUCT_SETTINGS_PATH}
echo "----"
echo "Info.plist for target: ${PRODUCT_SETTINGS_PATH}"
buildNum=$(/usr/libexec/Plistbuddy -c "Print CFBundleVersion"
"${PRODUCT_SETTINGS_PATH}")
echo "Current build #: $buildNum"
if [ -z "$buildNum" ]; then
echo "No build number found in $PRODUCT_SETTINGS_PATH"
exit 2
fi
buildNum=$(expr $buildNum + 1)
echo "Build # incremented to: $buildNum"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNum"
"$PRODUCT_SETTINGS_PATH"
echo "----"
exit 0
By adding this script to your build or archive process on your build machine,
this will automatically update the app's build number. If you wish to increment
your app's versionnumber, change CFBundleShortVersionString (Bundle versions
string, short) in the info.plist manually.
> On Aug 19, 2020, at 3:07 PM, Alex Zavatone via Cocoa-dev
> <email@hidden> wrote:
>
> I have build scripts that do that based on the # of the git checkins.
>
> I’ll send you the projects.
>
>
>> On Aug 19, 2020, at 11:07 AM, Gabriel Zachmann via Cocoa-dev
>> <email@hidden> wrote:
>>
>> Question:
>>
>> Is there a way to use a key/value that was defined earlier in the plist file
>> to define a value for a later key?
>>
>> Explanation:
>> I have a macOS project with an automatically created "About" window.
>> The plist file has, additionally to all the default stuff, the key
>> CFBuildNumber (with a value that I increment automatically).
>>
>> In Xcode, I tried to change "Bundle version" to a value like
>>
>> $(CURRENT_PROJECT_VERSION)_$(CFBuildNumber)
>>
>> However, in the final Info.plist in the app's bundle, this then looks like
>>
>> <key>CFBundleVersion</key>
>> <string>3.1_</string>
>>
>> Notice the underscore, but the value of CFBuildNumber is gone.
>> "3.1", BTW, is the value I have set under
>>
>> Project / Targets / General / Identity / Build
>>
>> I have tried to change parentheses into curly braces, to no avail.
>>
>> So, question again: is there a way to use a key/value that was defined
>> earlier in the plist file
>> to define a value for a later key?
>> I'd like to do that so that the "About" window contains the build number,
>> too.
>>
>> Thanks a lot in advance.
>>
>>
>> _______________________________________________
>>
>> Cocoa-dev mailing list (email@hidden)
>>
>> Please do not post admin requests or moderator comments to the list.
>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
>
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden