Skip to content

Instantly share code, notes, and snippets.

@ty0x2333
Last active March 16, 2017 12:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ty0x2333/59aad64e2871c45318958b765e0c8d1f to your computer and use it in GitHub Desktop.
Save ty0x2333/59aad64e2871c45318958b765e0c8d1f to your computer and use it in GitHub Desktop.
CLI Remove XCode App Extension
#!/usr/bin/env ruby
# https://gist.github.com/luckytianyiyan/59aad64e2871c45318958b765e0c8d1f
# Author: luckytianyiyan
# License: MIT
require 'xcodeproj'
project_path = ARGV[0]
project = Xcodeproj::Project.open(project_path)
main_target_name = ARGV[1]
dependency_target_name = ARGV[2]
puts "> Finding Dependency: #{dependency_target_name}"
project.targets.each do |target|
if target.name == main_target_name
target.dependencies.each do |dependency|
if dependency.target.name == dependency_target_name
dependency.remove_from_project
puts "Remove Dependency: #{dependency.target.name}"
end
end
file_display_name = "#{dependency_target_name}.appex"
puts "> Finding CopyFilesBuildPhase: #{file_display_name}"
target.build_phases.each do |phases|
if phases.instance_of? Xcodeproj::Project::Object::PBXCopyFilesBuildPhase
phases.files.each do |file|
if file.display_name == file_display_name
puts "Remove CopyFilesBuildPhase: #{file.display_name}"
file.remove_from_project
end
end
end
end
break
end
end
project.save
@ty0x2333
Copy link
Author

ty0x2333 commented Mar 16, 2017

Requirement

Xcodeproj

Usage

$ delete_app_extension.rb your/project/path app_target extension_target

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment