Class: Fastlane::Actions::CheckbuildAction

Inherits:
Action
  • Object
show all
Defined in:
lib/fastlane/plugin/checkbuild/actions/checkbuild_action.rb

Class Method Summary collapse

Class Method Details

.authorsObject



168
169
170
# File 'lib/fastlane/plugin/checkbuild/actions/checkbuild_action.rb', line 168

def self.authors
  ["Johannes Steudle"]
end

.available_optionsObject



193
194
195
196
197
198
199
200
201
202
203
204
205
206
# File 'lib/fastlane/plugin/checkbuild/actions/checkbuild_action.rb', line 193

def self.available_options
  [
    FastlaneCore::ConfigItem.new(key: :file_path,
     env_name: 'FILE_PATH',
     description: 'Path to the file that should be checked. This must point to a binary file, either a library or an app\'s binary',
     optional: false,
     type: String),
    FastlaneCore::ConfigItem.new(key: :req_archs,
     env_name: 'REQ_ARCHS',
     description: 'The architectures that are required, e.g. i386, x86_64, armv7, arm64',
     optional: false,
     type: String)
  ]
end

.descriptionObject



164
165
166
# File 'lib/fastlane/plugin/checkbuild/actions/checkbuild_action.rb', line 164

def self.description
  "This plugin will check any binary library for unwanted symbols and architectures."
end

.detailsObject



176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# File 'lib/fastlane/plugin/checkbuild/actions/checkbuild_action.rb', line 176

def self.details
  [
    "This plugin can be used if there should be a check of the given binary file for unwanted symbols and architectures. ",
    "Various checks will be executed and provide information about the symbols that are part of the binary file.\n\n",
    "Sample output:\n\n",
    " ------------------------\n",
    " --- Step: checkbuild ---\n",
    " ------------------------\n",
    " Non fat file, missing ['i386', 'x86_64']\n",
    " File does not contain any assertions!\n",
    " File does not contain any profiling data!\n",
    " File contains encryption info!\n",
    " File does not contain any coverage symbols!\n",
    " Bitcode inactive!\n"
  ].join
end

.example_codeObject



208
209
210
211
212
213
214
215
# File 'lib/fastlane/plugin/checkbuild/actions/checkbuild_action.rb', line 208

def self.example_code
  [
    'checkbuild(
    file_path: \'../build/DerivedData/Build/Products/Debug-iphoneos/<AppName>.app/<AppName>\',
    req_archs: \'i386, x86_64, armv7, arm64\'
    )'
  ]
end

.is_supported?(platform) ⇒ Boolean

Returns:

  • (Boolean)


217
218
219
# File 'lib/fastlane/plugin/checkbuild/actions/checkbuild_action.rb', line 217

def self.is_supported?(platform)
  true
end

.return_valueObject



172
173
174
# File 'lib/fastlane/plugin/checkbuild/actions/checkbuild_action.rb', line 172

def self.return_value
  # If your method provides a return value, you can describe here what it does
end

.run(params) ⇒ Object



151
152
153
154
155
156
157
158
159
160
161
162
# File 'lib/fastlane/plugin/checkbuild/actions/checkbuild_action.rb', line 151

def self.run(params)
  file_path = File.expand_path(params[:file_path])
  required_archs = params[:req_archs].gsub(/[[:space:]]/, '').split(pattern=',')
  checker = BinaryChecker.new(file_path)
  checker.check_architectures(required_archs)
  checker.check_for_assertion
  checker.check_debug_symbols
  checker.check_profiling_data
  checker.check_encryption
  checker.check_coverage_symbols
  checker.check_bitcode_availability
end