README
ruby_build_ios is a set of helper methods to assist in the development of build scripts for IOS mobile development.
These methods all reside in module RubyBuildIos and were developed as part of HS2's 2017 Hackathon.
Installation / Usage
Install it yourself as:
$ gem install ruby_build_ios
Then in your build script:
require 'ruby_build_ios'
Who do I talk to?
HS2 Solutions
Documentation
Very sparse, but here it is:
build_project(project, target, configuration, build_number, output_dir)
build_workspace(workspace, scheme, configuration, build_number, archive_path)
clean(path)
copy_provision_file(file_name, uuid)
create_export_plist(file_name, key_string_pairs)
get_uuid_from_file(file_name)
install_provision_file(file_name)
install_provision_files(file_names_str)
latest_git_commit_comment(revision = '--all')
latest_git_commit_count(revision = '--all')
project_build_number(file_name = PROJECT_BUILD_NUMBER)
tag_latest_git_commit(tag, = 'Sorry, no tag message provided.')
upload_to_hockey(app_id, api_token, note, file_to_upload)
upload_to_itunes(user, password, archive)
xcode_path()
Testing
We're hacking, so our testing is not what it would usually be. Here are some commands I used in irb to test each function:
Play this to test Module (Class) Functions
require './lib/ruby_build_ios.rb'
x=RubyBuildIos.latest_git_commit_count
x=RubyBuildIos.latest_git_commit_count('badbranch')
require './lib/ruby_build_ios.rb'
y=RubyBuildIos.latest_git_commit_comment
require './lib/ruby_build_ios.rb'
RubyBuildIos.tag_latest_git_commit('v1.0', "It is a fine day to commit!")
require './lib/ruby_build_ios.rb'
z=RubyBuildIos.project_build_number()
TODO: David, add a play here to test copy_provision_files
require './lib/ruby_build_ios.rb'
RubyBuildIos.install_provision_files("<file1>,<file2>,<file3>")
TODO: David, add a play script here to test upload_to_hockey
require './lib/ruby_build_ios.rb'
RubyBuildIos.upload_to_hockey(app_id, api_token, file_to_upload)
require './lib/ruby_build_ios.rb'
RubyBuildIos.create_export_plist('test_plist.xml', {
"ca.xxx.iphoneapp" => "XXXXX Prod App",
"ca.xxx.iphoneapp.watchkitapp" => "XXXXX Prod WKApp",
"ca.xxx.iphoneapp.watchkitapp.extension" => "XXXXX Prod WKExt" })
require './lib/ruby_build_ios.rb'
RubyBuildIos.xcode_path()