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 +4 -4
- data/README.md +41 -3
- data/antenna.gemspec +1 -1
- data/lib/antenna/command/local.rb +26 -0
- data/lib/antenna/commands.rb +1 -0
- data/lib/antenna/distributor/local.rb +26 -0
- data/lib/antenna/version.rb +1 -1
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1cca2a6dae4fc47cc88f5eacb32aab337cdc7360
|
4
|
+
data.tar.gz: 6a7fd2e44625b70df3d159ebece9a408309ecf76
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
-
|
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).
|
data/antenna.gemspec
CHANGED
@@ -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
|
data/lib/antenna/commands.rb
CHANGED
@@ -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
|
data/lib/antenna/version.rb
CHANGED
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
|
+
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:
|
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: '
|
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: '
|
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
|