-
-
Save niklasberglund/129065e2612d00c811d0 to your computer and use it in GitHub Desktop.
Example of how to use the ruby gem xcodeproj to add a library to the Frameworks group of a project. Forked and updated to work with updated version of xcodeproj.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'xcodeproj' | |
project_path = "your_project_path"; | |
# Create project object | |
project = Xcodeproj::Project.new(project_path); | |
lib_path = "your_lib_path"; | |
# Add the lib file as a reference | |
libRef = project['Frameworks'].new_file(lib_path); | |
# Get the build phase | |
framework_buildphase = project.objects.select{|x| x.class == Xcodeproj::Project::Object::PBXFrameworksBuildPhase}[0]; | |
# Add it to the build phase | |
framework_buildphase.add_file_reference(libRef); | |
# Save the project | |
project.save(); | |
hi, could you give an example to add "libz.tbd"
many thanks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I am unable to get the PBXFrameworkBuildPhase all i get is the following classes.
Xcodeproj::Project::Object::PBXProject
Xcodeproj::Project::Object::PBXGroup
Xcodeproj::Project::Object::PBXGroup
Xcodeproj::Project::Object::XCConfigurationList
Xcodeproj::Project::Object::XCBuildConfiguration
Xcodeproj::Project::Object::XCBuildConfiguration
Xcodeproj::Project::Object::PBXGroup
Xcodeproj::Project::Object::PBXFileReference
Following is the code snipet
require 'xcodeproj'
project_path = "/Users/NileshAgrawal/Documents/ca-work/ios/ios-samples/ios-samples/MAAKitchenSink/MAAKitchenSink.xcodeproj";
Create project object
project = Xcodeproj::Project.new(project_path);
lib_path = "/Users/NileshAgrawal/Documents/ca-work/ios/ios-samples/ios-samples/MAAKitchenSink/libCAMobileAppAnalytics.a";
Add the lib file as a reference
libRef = project['Frameworks'].new_file(lib_path);
Get the build phase
framework_buildphase = project.objects.select{|x| x.class == Xcodeproj::Project::Object::PBXFrameworksBuildPhase}[0];
projectobjects.select { |x|
puts x.class
};
Add it to the build phase
framework_buildphase.add_file_reference(libRef);
Save the project
project.save_as(project_path);