Я добавил 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
.