antenna-ota 0.1.4 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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