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

https://www.hs2solutions.com

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, message = '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()