【发布时间】:2018-02-06 06:50:02
【问题描述】:
我已将Settings.bundle 添加到我的应用程序中以在应用程序设置中添加版本号和内部版本号,并且已正确添加。我遇到的问题是,它总是只获取默认值,之后它不会根据实际应用程序版本和内部版本号的值更新它(即使在运行应用程序之后)。
根.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();
}
我跟随this tutorial实现了这个功能。
此后,应用设置中的版本号始终为1.0
另一个问题:
如何在Xamarin.iOS 应用程序中实现自动递增内部版本号?因为我不想每次创建新的ipa 时都更新info.plist 内部版本号。
【问题讨论】:
标签: c# swift shell xamarin xamarin.ios