antenna-ota 0.1.4 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5268c6276e2dd2cdebbd16c1a1df41dc49bab722
4
- data.tar.gz: 953bc51904fcb09accd8aa90df9691fb7ba09113
3
+ metadata.gz: 1cca2a6dae4fc47cc88f5eacb32aab337cdc7360
4
+ data.tar.gz: 6a7fd2e44625b70df3d159ebece9a408309ecf76
5
5
  SHA512:
6
- metadata.gz: b26482d957a336ef3c6ecc5b659d0d6f07947ceccd1738687608aa94027f6aee35791f4b4c4821fc06aafe92bbbbbcc906f0fed8581d2e620583e51be42569ed
7
- data.tar.gz: 322384d8829dcd4dd5dc5743be1a2d2b52b030250bdda63b59d48eb1ca42fa0bbe4a00a5e6beadb41a12328dc4e4f16d7acff59f1c2da813f1f95340c0c8605c
6
+ metadata.gz: f6c7abf14f8c470064074aa38635f229a4aaa22d5b93371bbbd586e1d3a2d277d7be42546806c5f233e5e7a573d0d519547adfd9c3ad4305e14ee7bb3a0f9a54
7
+ data.tar.gz: 2f11040e094155e3ac93a44dcfd96cd22c3506411d74829224fa4e76982950d409739d4166f3848a9cd86d85224f777fdf084a70b9d567aa20ee0508f0f5d08d
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Antenna
4
4
 
5
- Antenna aims to take the pain out of creating and distributing all the necessary files for Enterprise iOS over-the-air distribution. It generates the mandatory XML manifest, app icons and an HTML file, automatically extracting all the needed information from the specified `.ipa` file, and uploads everything via a distribution method of your choice (currently only S3 is supported, but you're encouraged to create other storage backends). The result is a (signed S3) URL, which you may then send to your clients, so they can easily install your app from Mobile Safari with just one tap.
5
+ Antenna aims to take the pain out of creating and distributing all the necessary files for Enterprise iOS over-the-air distribution. It generates the mandatory XML manifest, app icons and an HTML file, automatically extracting all the needed information from the specified `.ipa` file, and uploads everything via a distribution method of your choice (currently only S3 and local filesystem are supported, but you're encouraged to create other storage backends). The result is a (signed S3) URL, which you may then send to your clients, so they can easily install your app from Mobile Safari with just one tap.
6
6
 
7
7
  ## Installation
8
8
 
@@ -23,6 +23,7 @@ $ antenna
23
23
 
24
24
  Commands:
25
25
  help Display global or [command] help documentation
26
+ local Distribute .ipa file to local file system
26
27
  s3 Distribute .ipa file over Amazon S3
27
28
 
28
29
  Global Options:
@@ -32,6 +33,30 @@ $ antenna
32
33
  -t, --trace Display backtrace when an error occurs
33
34
  ```
34
35
 
36
+ ### S3-specific options
37
+
38
+ ```
39
+ -f, --file FILE .ipa file to distribute
40
+ -a, --access-key-id ACCESS_KEY_ID S3 access key ID
41
+    -s, --secret-access-key SECRET_ACCESS_KEY S3 secret access key
42
+ -b, --bucket BUCKET S3 bucket name
43
+ --[no-]create (Don't) create bucket if it doesn't already exist
44
+ -r --region REGION AWS region (optional, e.g. https://mys3.example.com)
45
+ -e --endpoint ENDPOINT S3 endpoint (optional, e.g. https://mys3.example.com)
46
+    -x --expires EXPIRES Expiration of URLs in seconds (optional, e.g. 86400 = one day, one week max)
47
+ -i --base BASE Base filename (optional, defaults to IPA filename without .ipa extension)
48
+ -p --public Use public instead of signed URLs (you'll might want '--acl public-read' also)
49
+ --acl ACL Permissions for uploaded files. Must be one of: private, public-read, public-read-write, authenticated-read, bucket-owner-read, bucket-owner-full-control (optional, defaults to private)
50
+ ```
51
+
52
+ ### Local-specific options
53
+
54
+ ```
55
+ -f, --file FILE .ipa file to distribute (searches current directory for .ipa files if not specified)
56
+ -U, --url URL Base URL all files should be prefixed with
57
+ -i, --base BASE Base filename (optional, defaults to IPA filename without .ipa extension)
58
+ ```
59
+
35
60
  ## Examples
36
61
 
37
62
  ### 1. Private, signed URL
@@ -64,7 +89,20 @@ The resulting URLs show an installation page like the following and can be distr
64
89
 
65
90
  ![Installation site](https://raw.githubusercontent.com/soulchild/antenna/master/assets/example-installation.png)
66
91
 
67
- *Note:* App icons in any .ipa file are converted from PNG to [Apple's CgBI file format](http://iphonedevwiki.net/index.php/CgBI_file_format) and therefore not viewable in most applications, including Chrome and Firefox. Apple applications like (Mobile) Safari or Preview.app know how to handle the format though.
92
+ _Note:_ App icons in any .ipa file are converted from PNG to [Apple's CgBI file format](http://iphonedevwiki.net/index.php/CgBI_file_format) and therefore not viewable in most applications, including Chrome and Firefox. Apple applications like (Mobile) Safari or Preview.app know how to handle the format though.
93
+
94
+ ### 3. Local file system
95
+
96
+ Distribute OverTheAir.ipa to the local file-system. The resulting files can then be uploaded manually:
97
+
98
+ ```bash
99
+ $ antenna local --url https://www.example.com/ipa/ --file OverTheAir.ipa
100
+ Distributing OverTheAir.ipa ...
101
+ Distributing OverTheAir.png ...
102
+ Distributing OverTheAir.plist ...
103
+ Distributing OverTheAir.html ...
104
+ https://www.example.com/ipa/OverTheAir.html
105
+ ```
68
106
 
69
107
  ## Author
70
108
 
@@ -78,4 +116,4 @@ Bug reports and pull requests are welcome on [GitHub](https://github.com/soulchi
78
116
 
79
117
  ## License
80
118
 
81
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
119
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.7"
22
22
  spec.add_development_dependency "rake", "~> 10.0"
23
- spec.add_development_dependency "rspec"
23
+ spec.add_development_dependency "rspec", "~> 3.8"
24
24
 
25
25
  spec.add_dependency "aws-sdk", '~> 2.0', '>= 2.0.0'
26
26
  spec.add_dependency "commander", "~> 4.3"
@@ -0,0 +1,26 @@
1
+ require 'distributor'
2
+ require 'distributor/local'
3
+
4
+ command :local do |c|
5
+ c.name = "local"
6
+ c.syntax = "antenna local [options]"
7
+ c.summary = "Distribute .ipa file to local file system"
8
+
9
+ c.example 'Distribute "awesome.ipa" to current path', 'antenna local --url https://example.com/ipas/ --file ./awesome.ipa'
10
+
11
+ c.option '-f', '--file FILE', '.ipa file to distribute (searches current directory for .ipa files if not specified)'
12
+ c.option '-U', '--url URL', 'Base URL all files should be prefixed with'
13
+ c.option '-i', '--base BASE', "Base filename (optional, defaults to IPA filename without .ipa extension)"
14
+
15
+ c.action do |args, options|
16
+ determine_file! unless @file = options.file
17
+ say_error "Missing .ipa file" and abort unless @file and File.exist?(@file)
18
+
19
+ local = Antenna::Distributor::Local.new()
20
+ distributor = Antenna::Distributor.new(local)
21
+ puts distributor.distribute @file, {
22
+ :base => options.base,
23
+ :url => options.url
24
+ }
25
+ end
26
+ end
@@ -1,6 +1,7 @@
1
1
  $:.push File.expand_path('../', __FILE__)
2
2
 
3
3
  require 'command/s3'
4
+ require 'command/local'
4
5
 
5
6
  private
6
7
 
@@ -0,0 +1,26 @@
1
+ require 'uri'
2
+
3
+ module Antenna
4
+ class Distributor::Local
5
+ def initialize()
6
+ end
7
+
8
+ def setup(ipa_file, options = {})
9
+ @options = options
10
+ end
11
+
12
+ def distribute(data, filename, content_type)
13
+ puts "Distributing #{filename} ..."
14
+
15
+ target = open(filename, 'w')
16
+ target.write(data)
17
+ target.close
18
+
19
+ if @options[:url]
20
+ URI.join(@options[:url], filename)
21
+ else
22
+ filename
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,3 +1,3 @@
1
1
  module Antenna
2
- VERSION = "0.1.4"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: antenna-ota
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobi Kremer
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-12-02 00:00:00.000000000 Z
11
+ date: 2018-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '3.8'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '3.8'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: aws-sdk
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -171,9 +171,11 @@ files:
171
171
  - bin/setup
172
172
  - exe/antenna
173
173
  - lib/antenna.rb
174
+ - lib/antenna/command/local.rb
174
175
  - lib/antenna/command/s3.rb
175
176
  - lib/antenna/commands.rb
176
177
  - lib/antenna/distributor.rb
178
+ - lib/antenna/distributor/local.rb
177
179
  - lib/antenna/distributor/s3.rb
178
180
  - lib/antenna/html.rb
179
181
  - lib/antenna/infoplist.rb