initializeIosVersion static method
Initializes the info.plist file. with the necessary key and value for versionName and buildNumber. @returns {bool} True is the file was initialized, false otherwise.
Implementation
static bool initializeIosVersion() {
final plistFilePath = p.join(
Directory.current.path,
'ios',
'Runner',
'Info.plist',
);
final plistFile = File(plistFilePath);
if (!plistFile.existsSync()) {
return false; // File not found
}
try {
var content = plistFile.readAsStringSync();
var originalContent = content;
// Add CFBundleShortVersionString
if (!content.contains('<key>CFBundleShortVersionString</key>')) {
content = content.replaceFirst(
'<dict>',
'<dict>\n <key>CFBundleShortVersionString</key>\n<string>\$(FLUTTER_BUILD_NAME)</string>',
);
}
// Add CFBundleVersion
if (!content.contains('<key>CFBundleVersion</key>')) {
content = content.replaceFirst(
'<dict>',
'<dict>\n <key>CFBundleVersion</key>\n<string>\$(FLUTTER_BUILD_NUMBER)</string>',
);
}
if (content != originalContent) {
plistFile.writeAsStringSync(content);
return true;
}
} catch (e) {
return false; // Error reading/writing file
}
return false; // No changes made
}