xcode_parser 1.0.4
xcode_parser: ^1.0.4 copied to clipboard
Xcode Parser is a package for working with Xcode project files (.pbxproj). This package allows you to read, modify, and save changes in .pbxproj files, which is especially useful for automating iOS de [...]
example/xcode_parser_example.dart
import 'package:xcode_parser/xcode_parser.dart';
void main() async {
Pbxproj project = Pbxproj(path: 'ios/Runner.xcodeproj/project.pbxproj');
addBuildConfiguration(project);
addFramework(project);
print(project);
// Output
//// !$*UTF8*$!
// {
// 12459B9B277D272A45EDBC24 = {
// isa = XCBuildConfiguration;
// name = "CustomDebug";
// buildSettings = {SWIFT_VERSION = 5.0; IPHONEOS_DEPLOYMENT_TARGET = 12.0; };
// };
// B1016741719B432C10A504E8 = {
// isa = PBXGroup;
// children = (
// DE9302C66A7999063CB76C6D /* FrameworkName.framework */,
// C43FE36031339AEC89A9EC36 /* Framework2Name.framework */,
// );
// };
// }
}
void addBuildConfiguration(Pbxproj project) {
var uuid = project.generateUuid();
var config = MapPbx(
uuid: uuid,
children: [
MapEntryPbx('isa', VarPbx('XCBuildConfiguration')),
MapEntryPbx('name', VarPbx('"CustomDebug"')),
MapPbx(
uuid: 'buildSettings',
children: [
MapEntryPbx('SWIFT_VERSION', VarPbx('5.0')),
MapEntryPbx('IPHONEOS_DEPLOYMENT_TARGET', VarPbx('12.0')),
],
),
],
);
project.add(config);
}
void addFramework(Pbxproj project) {
final uuidMap = project.generateUuid();
final uuidFrameworkName = project.generateUuid();
final uuidFramework2Name = project.generateUuid();
final frameworksGroup = MapPbx(
uuid: uuidMap,
children: [
MapEntryPbx('isa', VarPbx('PBXGroup')),
ListPbx('children', [
ElementOfListPbx(uuidFrameworkName, comment: 'FrameworkName.framework'),
ElementOfListPbx(uuidFramework2Name, comment: 'Framework2Name.framework'),
]),
],
);
project.add(frameworksGroup);
}