plasmo_xcodeproj 1.21.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +19 -0
  3. data/README.md +95 -0
  4. data/bin/xcodeproj +10 -0
  5. data/lib/xcodeproj/command/config_dump.rb +91 -0
  6. data/lib/xcodeproj/command/project_diff.rb +56 -0
  7. data/lib/xcodeproj/command/show.rb +60 -0
  8. data/lib/xcodeproj/command/sort.rb +44 -0
  9. data/lib/xcodeproj/command/target_diff.rb +43 -0
  10. data/lib/xcodeproj/command.rb +63 -0
  11. data/lib/xcodeproj/config/other_linker_flags_parser.rb +73 -0
  12. data/lib/xcodeproj/config.rb +386 -0
  13. data/lib/xcodeproj/constants.rb +465 -0
  14. data/lib/xcodeproj/differ.rb +239 -0
  15. data/lib/xcodeproj/gem_version.rb +5 -0
  16. data/lib/xcodeproj/helper.rb +30 -0
  17. data/lib/xcodeproj/plist.rb +94 -0
  18. data/lib/xcodeproj/project/case_converter.rb +90 -0
  19. data/lib/xcodeproj/project/object/build_configuration.rb +255 -0
  20. data/lib/xcodeproj/project/object/build_file.rb +84 -0
  21. data/lib/xcodeproj/project/object/build_phase.rb +369 -0
  22. data/lib/xcodeproj/project/object/build_rule.rb +109 -0
  23. data/lib/xcodeproj/project/object/configuration_list.rb +117 -0
  24. data/lib/xcodeproj/project/object/container_item_proxy.rb +116 -0
  25. data/lib/xcodeproj/project/object/file_reference.rb +338 -0
  26. data/lib/xcodeproj/project/object/group.rb +506 -0
  27. data/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb +72 -0
  28. data/lib/xcodeproj/project/object/helpers/file_references_factory.rb +245 -0
  29. data/lib/xcodeproj/project/object/helpers/groupable_helper.rb +260 -0
  30. data/lib/xcodeproj/project/object/native_target.rb +751 -0
  31. data/lib/xcodeproj/project/object/reference_proxy.rb +86 -0
  32. data/lib/xcodeproj/project/object/root_object.rb +100 -0
  33. data/lib/xcodeproj/project/object/swift_package_product_dependency.rb +29 -0
  34. data/lib/xcodeproj/project/object/swift_package_remote_reference.rb +33 -0
  35. data/lib/xcodeproj/project/object/target_dependency.rb +94 -0
  36. data/lib/xcodeproj/project/object.rb +534 -0
  37. data/lib/xcodeproj/project/object_attributes.rb +522 -0
  38. data/lib/xcodeproj/project/object_dictionary.rb +210 -0
  39. data/lib/xcodeproj/project/object_list.rb +223 -0
  40. data/lib/xcodeproj/project/project_helper.rb +341 -0
  41. data/lib/xcodeproj/project/uuid_generator.rb +132 -0
  42. data/lib/xcodeproj/project.rb +874 -0
  43. data/lib/xcodeproj/scheme/abstract_scheme_action.rb +100 -0
  44. data/lib/xcodeproj/scheme/analyze_action.rb +19 -0
  45. data/lib/xcodeproj/scheme/archive_action.rb +59 -0
  46. data/lib/xcodeproj/scheme/build_action.rb +298 -0
  47. data/lib/xcodeproj/scheme/buildable_product_runnable.rb +55 -0
  48. data/lib/xcodeproj/scheme/buildable_reference.rb +129 -0
  49. data/lib/xcodeproj/scheme/command_line_arguments.rb +162 -0
  50. data/lib/xcodeproj/scheme/environment_variables.rb +170 -0
  51. data/lib/xcodeproj/scheme/execution_action.rb +86 -0
  52. data/lib/xcodeproj/scheme/launch_action.rb +179 -0
  53. data/lib/xcodeproj/scheme/location_scenario_reference.rb +49 -0
  54. data/lib/xcodeproj/scheme/macro_expansion.rb +34 -0
  55. data/lib/xcodeproj/scheme/profile_action.rb +57 -0
  56. data/lib/xcodeproj/scheme/remote_runnable.rb +92 -0
  57. data/lib/xcodeproj/scheme/send_email_action_content.rb +84 -0
  58. data/lib/xcodeproj/scheme/shell_script_action_content.rb +77 -0
  59. data/lib/xcodeproj/scheme/test_action.rb +394 -0
  60. data/lib/xcodeproj/scheme/xml_element_wrapper.rb +82 -0
  61. data/lib/xcodeproj/scheme.rb +375 -0
  62. data/lib/xcodeproj/user_interface.rb +22 -0
  63. data/lib/xcodeproj/workspace/file_reference.rb +79 -0
  64. data/lib/xcodeproj/workspace/group_reference.rb +67 -0
  65. data/lib/xcodeproj/workspace/reference.rb +40 -0
  66. data/lib/xcodeproj/workspace.rb +277 -0
  67. data/lib/xcodeproj/xcodebuild_helper.rb +108 -0
  68. data/lib/xcodeproj.rb +29 -0
  69. metadata +208 -0
@@ -0,0 +1,57 @@
1
+ require 'xcodeproj/scheme/abstract_scheme_action'
2
+
3
+ module Xcodeproj
4
+ class XCScheme
5
+ # This class wraps the ProfileAction node of a .xcscheme XML file
6
+ #
7
+ class ProfileAction < AbstractSchemeAction
8
+ # @param [REXML::Element] node
9
+ # The 'ProfileAction' XML node that this object will wrap.
10
+ # If nil, will create a default XML node to use.
11
+ #
12
+ def initialize(node = nil)
13
+ create_xml_element_with_fallback(node, 'ProfileAction') do
14
+ # Setup default values for other (handled) attributes
15
+ self.build_configuration = 'Release'
16
+ self.should_use_launch_scheme_args_env = true
17
+
18
+ # Add some attributes (that are not handled by this wrapper class yet but expected in the XML)
19
+ @xml_element.attributes['savedToolIdentifier'] = ''
20
+ @xml_element.attributes['useCustomWorkingDirectory'] = bool_to_string(false)
21
+ @xml_element.attributes['debugDocumentVersioning'] = bool_to_string(true)
22
+ end
23
+ end
24
+
25
+ # @return [Bool]
26
+ # Whether this Profile Action should use the same arguments and environment variables
27
+ # as the Launch Action.
28
+ #
29
+ def should_use_launch_scheme_args_env?
30
+ string_to_bool(@xml_element.attributes['shouldUseLaunchSchemeArgsEnv'])
31
+ end
32
+
33
+ # @param [Bool] flag
34
+ # Set Whether this Profile Action should use the same arguments and environment variables
35
+ # as the Launch Action.
36
+ #
37
+ def should_use_launch_scheme_args_env=(flag)
38
+ @xml_element.attributes['shouldUseLaunchSchemeArgsEnv'] = bool_to_string(flag)
39
+ end
40
+
41
+ # @return [BuildableProductRunnable]
42
+ # The BuildableProductRunnable to launch when launching the Profile action
43
+ #
44
+ def buildable_product_runnable
45
+ BuildableProductRunnable.new @xml_element.elements['BuildableProductRunnable'], 0
46
+ end
47
+
48
+ # @param [BuildableProductRunnable] runnable
49
+ # Set the BuildableProductRunnable referencing the target to launch when profiling
50
+ #
51
+ def buildable_product_runnable=(runnable)
52
+ @xml_element.delete_element('BuildableProductRunnable')
53
+ @xml_element.add_element(runnable.xml_element) if runnable
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,92 @@
1
+ module Xcodeproj
2
+ class XCScheme
3
+ # This class wraps the RemoteRunnable node of a .xcscheme XML file
4
+ #
5
+ # A RemoteRunnable is a product that is both buildable
6
+ # (it contains a BuildableReference) and
7
+ # runnable remotely (it can be launched and debugged on a remote device, i.e. an Apple Watch)
8
+ #
9
+ class RemoteRunnable < XMLElementWrapper
10
+ # @param [Xcodeproj::Project::Object::AbstractTarget, REXML::Element] target_or_node
11
+ # Either the Xcode target to reference,
12
+ # or an existing XML 'RemoteRunnable' node element to reference
13
+ # or nil to create an new, empty RemoteRunnable
14
+ #
15
+ # @param [#to_s] runnable_debugging_mode
16
+ # The debugging mode (usually '2')
17
+ #
18
+ # @param [#to_s] bundle_identifier
19
+ # The bundle identifier (usually 'com.apple.Carousel')
20
+ #
21
+ # @param [#to_s] remote_path
22
+ # The remote path (not required, unknown usage)
23
+ #
24
+ def initialize(target_or_node = nil, runnable_debugging_mode = nil, bundle_identifier = nil, remote_path = nil)
25
+ create_xml_element_with_fallback(target_or_node, 'RemoteRunnable') do
26
+ self.buildable_reference = BuildableReference.new(target_or_node) if target_or_node
27
+ @xml_element.attributes['runnableDebuggingMode'] = runnable_debugging_mode.to_s if runnable_debugging_mode
28
+ @xml_element.attributes['BundleIdentifier'] = bundle_identifier.to_s if bundle_identifier
29
+ @xml_element.attributes['RemotePath'] = remote_path.to_s if remote_path
30
+ end
31
+ end
32
+
33
+ # @return [String]
34
+ # The runnable debugging mode (usually '2')
35
+ #
36
+ def runnable_debugging_mode
37
+ @xml_element.attributes['runnableDebuggingMode']
38
+ end
39
+
40
+ # @param [String] value
41
+ # Set the runnable debugging mode
42
+ #
43
+ def runnable_debugging_mode=(value)
44
+ @xml_element.attributes['runnableDebuggingMode'] = value.to_s
45
+ end
46
+
47
+ # @return [String]
48
+ # The runnable bundle identifier (usually 'com.apple.Carousel')
49
+ #
50
+ def bundle_identifier
51
+ @xml_element.attributes['BundleIdentifier']
52
+ end
53
+
54
+ # @param [String] value
55
+ # Set the runnable bundle identifier
56
+ #
57
+ def bundle_identifier=(value)
58
+ @xml_element.attributes['BundleIdentifier'] = value.to_s
59
+ end
60
+
61
+ # @return [String]
62
+ # The runnable remote path (not required, unknown usage)
63
+ #
64
+ def remote_path
65
+ @xml_element.attributes['RemotePath']
66
+ end
67
+
68
+ # @param [String] value
69
+ # Set the runnable remote path
70
+ #
71
+ def remote_path=(value)
72
+ @xml_element.attributes['RemotePath'] = value.to_s
73
+ end
74
+
75
+ # @return [BuildableReference]
76
+ # The buildable reference this remote runnable is gonna build and run
77
+ #
78
+ def buildable_reference
79
+ @buildable_reference ||= BuildableReference.new @xml_element.elements['BuildableReference']
80
+ end
81
+
82
+ # @param [BuildableReference] ref
83
+ # Set the buildable reference this remote runnable is gonna build and run
84
+ #
85
+ def buildable_reference=(ref)
86
+ @xml_element.delete_element('BuildableReference')
87
+ @xml_element.add_element(ref.xml_element)
88
+ @buildable_reference = ref
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,84 @@
1
+ module Xcodeproj
2
+ class XCScheme
3
+ # This class wraps a 'ActionContent' node of type
4
+ # 'Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.SendEmailAction' of a .xcscheme XML file
5
+ #
6
+ class SendEmailActionContent < XMLElementWrapper
7
+ # @param [REXML::Element] node
8
+ # The 'ActionContent' XML node that this object will wrap.
9
+ # If nil, will create a default XML node to use.
10
+ #
11
+ def initialize(node = nil)
12
+ create_xml_element_with_fallback(node, 'ActionContent') do
13
+ self.title = 'Send Email'
14
+ # For some reason this is not visible in Xcode's UI and it's always set to 'NO'
15
+ # couldn't find much documentation on it so it might be safer to keep it read only
16
+ @xml_element.attributes['attachLogToEmail'] = 'NO'
17
+ end
18
+ end
19
+
20
+ # @return [Bool]
21
+ # Whether or not this action should attach log to email
22
+ #
23
+ def attach_log_to_email?
24
+ string_to_bool(@xml_element.attributes['attachLogToEmail'])
25
+ end
26
+
27
+ # @return [String]
28
+ # The title of this ActionContent
29
+ #
30
+ def title
31
+ @xml_element.attributes['title']
32
+ end
33
+
34
+ # @param [String] value
35
+ # Set the title of this ActionContent
36
+ #
37
+ def title=(value)
38
+ @xml_element.attributes['title'] = value
39
+ end
40
+
41
+ # @return [String]
42
+ # The email recipient of this ActionContent
43
+ #
44
+ def email_recipient
45
+ @xml_element.attributes['emailRecipient']
46
+ end
47
+
48
+ # @param [String] value
49
+ # Set the email recipient of this ActionContent
50
+ #
51
+ def email_recipient=(value)
52
+ @xml_element.attributes['emailRecipient'] = value
53
+ end
54
+
55
+ # @return [String]
56
+ # The email subject of this ActionContent
57
+ #
58
+ def email_subject
59
+ @xml_element.attributes['emailSubject']
60
+ end
61
+
62
+ # @param [String] value
63
+ # Set the email subject of this ActionContent
64
+ #
65
+ def email_subject=(value)
66
+ @xml_element.attributes['emailSubject'] = value
67
+ end
68
+
69
+ # @return [String]
70
+ # The email body of this ActionContent
71
+ #
72
+ def email_body
73
+ @xml_element.attributes['emailBody']
74
+ end
75
+
76
+ # @param [String] value
77
+ # Set the email body of this ActionContent
78
+ #
79
+ def email_body=(value)
80
+ @xml_element.attributes['emailBody'] = value
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,77 @@
1
+ module Xcodeproj
2
+ class XCScheme
3
+ # This class wraps a 'ActionContent' node of type
4
+ # 'Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction' of a .xcscheme XML file
5
+ #
6
+ class ShellScriptActionContent < XMLElementWrapper
7
+ # @param [REXML::Element] node
8
+ # The 'ActionContent' XML node that this object will wrap.
9
+ # If nil, will create a default XML node to use.
10
+ #
11
+ def initialize(node = nil)
12
+ create_xml_element_with_fallback(node, 'ActionContent') do
13
+ self.title = 'Run Script'
14
+ end
15
+ end
16
+
17
+ # @return [String]
18
+ # The title of this ActionContent
19
+ #
20
+ def title
21
+ @xml_element.attributes['title']
22
+ end
23
+
24
+ # @param [String] value
25
+ # Set the title of this ActionContent
26
+ #
27
+ def title=(value)
28
+ @xml_element.attributes['title'] = value
29
+ end
30
+
31
+ # @return [String]
32
+ # The contents of the shell script represented by this ActionContent
33
+ #
34
+ def script_text
35
+ @xml_element.attributes['scriptText']
36
+ end
37
+
38
+ # @param [String] value
39
+ # Set the contents of the shell script represented by this ActionContent
40
+ #
41
+ def script_text=(value)
42
+ @xml_element.attributes['scriptText'] = value
43
+ end
44
+
45
+ # @return [String]
46
+ # The preferred shell to invoke with this ActionContent
47
+ #
48
+ def shell_to_invoke
49
+ @xml_element.attributes['shellToInvoke']
50
+ end
51
+
52
+ # @param [String] value
53
+ # Set the preferred shell to invoke with this ActionContent
54
+ #
55
+ def shell_to_invoke=(value)
56
+ @xml_element.attributes['shellToInvoke'] = value
57
+ end
58
+
59
+ # @return [BuildableReference]
60
+ # The BuildableReference (Xcode target) associated with this ActionContent
61
+ #
62
+ def buildable_reference
63
+ BuildableReference.new(@xml_element.elements['EnvironmentBuildable'].elements['BuildableReference'])
64
+ end
65
+
66
+ # @param [BuildableReference] ref
67
+ # Set the BuildableReference (Xcode target) associated with this ActionContent
68
+ #
69
+ def buildable_reference=(ref)
70
+ @xml_element.delete_element('EnvironmentBuildable')
71
+
72
+ env_buildable = @xml_element.add_element('EnvironmentBuildable')
73
+ env_buildable.add_element(ref.xml_element)
74
+ end
75
+ end
76
+ end
77
+ end