Добавих Settings.bundle
към моето приложение, за да добавя номера на версия и компилация в настройките на приложението, и то се добавя правилно. Проблемът, който имам, е, че винаги получава само стойност по подразбиране и след това не го актуализира въз основа на стойността от действителната версия на приложението и номера на компилация (дори след стартиране на приложението).
Root.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>StringsTable</key>
<string>Root</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>DefaultValue</key>
<string>1.0</string>
<key>Key</key>
<string>current_version_number</string>
<key>Title</key>
<string>Version</string>
<key>Type</key>
<string>PSTitleValueSpecifier</string>
</dict>
</array>
</dict>
</plist>
Създадох този персонализиран клас за актуализиране на версия и номер на компилация:
public static class SettingsBundleHelper
{
static string AppVersionKey = "current_version_number";
public static void SetVersionAndBuildNumber()
{
string version = NSBundle.MainBundle.ObjectForInfoDictionary("CFBundleShortVersionString").ToString();
string build = NSBundle.MainBundle.ObjectForInfoDictionary("CFBundleVersion").ToString();
NSUserDefaults.StandardUserDefaults.SetString(AppVersionKey, $"{version}({build})");
NSUserDefaults.StandardUserDefaults.Synchronize();
}
}
Делегат на приложението:
public override void OnActivated(UIApplication application)
{
SettingsBundleHelper.SetVersionAndBuildNumber();
}
Следвах този урок, за да внедря тази функция.
След това номерът на версията в настройките на приложението винаги е 1.0
Още един въпрос:
Как да внедря автоматично нарастващ номер на компилация в приложението Xamarin.iOS
? Защото не искам да актуализирам номера на компилация info.plist
всеки път, когато създавам нов ipa
.