fastlane-plugin-ionic 0.0.2 → 0.0.3

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: 3f9a5b7b3ba70799970af36c04b593d103a24c94
4
- data.tar.gz: 1beb8a562abe037dcfc1b3d63ff36ca2eccaf1df
3
+ metadata.gz: b6eec2eb14314f04375f251a8a83d28c310ba63b
4
+ data.tar.gz: 901a1527245a86578b3d0df24c1f98349cc7b9d6
5
5
  SHA512:
6
- metadata.gz: 415582a5eb8c2c010c8bd19c2835b5606b2399b5a2d37723ee7d03b2e4001248f98a0c0078b0536563d16d32c1a9c72e101762ee68f3a4dfb75da1dfa7390f24
7
- data.tar.gz: bd765bb631defb1237c6a331a01531e391d1d24dd863d5118addc08f4f947decbd4e310b9fb6dae805d5382f9aa6a27112872b26b573e608e649ecd5fec0ae15
6
+ metadata.gz: 2cf5d0dd574748686010767ca61c356b83ac180b7960877c6cc769b78325091aba08d151520d5d7f8de4a32511c39d9e4eca29cf3422d96d6691c42857b181b6
7
+ data.tar.gz: 25cd713d21cab83a37b6c0b98daca713c2e863b95a4c3d873b51e8ade8f3c67f2c482ab2897cdd4f254f3e6d90e100b95916057e93a814c622290c7ce70e7fe0
data/README.md CHANGED
@@ -3,8 +3,9 @@
3
3
  [![fastlane Plugin Badge](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-ionic) [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/ionic-zone/fastlane-plugin-ionic/blob/master/LICENSE)
4
4
  [![Gem](https://img.shields.io/gem/v/fastlane-plugin-ionic.svg?style=flat)](http://rubygems.org/gems/fastlane-plugin-ionic)
5
5
 
6
- This _fastlane_ plugin lets you build your Ionic Cordova project via the [Ionic Command line tool](https://ionicframework.com/docs/cli/), `ionic`, and its `ionic cordova build` command in a _fastlane_ lane.
7
- It is based on [fastlane-plugin-cordova](https://github.com/bamlab/fastlane-plugin-cordova) (where it borrows most of its code).
6
+ This _fastlane_ plugin helps you build your **Ionic Cordova** project via the [`ionic` CLI](https://ionicframework.com/docs/cli/) and its `ionic cordova build` command.
7
+
8
+ It is based on [fastlane-plugin-cordova](https://github.com/bamlab/fastlane-plugin-cordova) (where it borrows a lot of its code. Thanks!).
8
9
 
9
10
  ## Getting Started
10
11
 
@@ -18,12 +19,12 @@ fastlane add_plugin ionic
18
19
 
19
20
  ### `ionic`
20
21
 
21
- Run `ionic cordova build` to build your Ionic project.
22
+ Runs `ionic cordova build` to build your Ionic project.
22
23
 
23
24
  ```ruby
24
25
  ionic(
25
26
  platform: 'ios', # Build your iOS Ionic project
26
- )
27
+ )
27
28
  ionic(
28
29
  platform: 'android', # Build your Android Ionic project
29
30
  release: false # Build a "Debug" app
@@ -42,7 +43,7 @@ platform :ios do
42
43
  lane :deploy do
43
44
  match(type: "appstore")
44
45
  ionic(platform: 'ios')
45
- appstore(ipa: ENV['CORDOVA_IOS_RELEASE_BUILD_PATH'])
46
+ deliver(ipa: ENV['CORDOVA_IOS_RELEASE_BUILD_PATH'])
46
47
  end
47
48
  end
48
49
 
@@ -70,10 +71,11 @@ team_id "28323HT"
70
71
  ```
71
72
 
72
73
  If you're using **Crosswalk**, replace `supply(apk: ENV['CORDOVA_ANDROID_RELEASE_BUILD_PATH'])` (and equivalents) by:
73
- ```
74
+
75
+ ```ruby
74
76
  supply(
75
77
  apk_paths: [
76
- 'platforms/android/build/outputs/apk/android-armv7-release.apk',
78
+ 'platforms/android/build/outputs/apk/android-armv7-release.apk',
77
79
  'platforms/android/build/outputs/apk/android-x86-release.apk'
78
80
  ],
79
81
  )
@@ -82,6 +84,7 @@ supply(
82
84
  ## Plugin API
83
85
 
84
86
  To check what's available in the plugin, install it in a project and run at the root of the project:
87
+
85
88
  ```
86
89
  fastlane actions ionic
87
90
  ```
@@ -93,6 +96,7 @@ Which will produce:
93
96
  | **platform** | Platform to build on. <br>Should be either android or ios | CORDOVA_PLATFORM | |
94
97
  | **release** | Build for release if true,<br>or for debug if false | CORDOVA_RELEASE | *true* |
95
98
  | **device** | Build for device | CORDOVA_DEVICE | *true* |
99
+ | **prod** | Build for production | IONIC_PROD | *true* |
96
100
  | **type** | This will determine what type of build is generated by Xcode. <br>Valid options are development, enterprise, adhoc, and appstore| CORDOVA_IOS_PACKAGE_TYPE | appstore |
97
101
  | **team_id** | The development team (Team ID) to use for code signing | CORDOVA_IOS_TEAM_ID | *28323HT* |
98
102
  | **provisioning_profile** | GUID of the provisioning profile to be used for signing | CORDOVA_IOS_PROVISIONING_PROFILE | |
@@ -102,7 +106,7 @@ Which will produce:
102
106
  | **keystore_alias** | Android Keystore alias | CORDOVA_ANDROID_KEYSTORE_ALIAS | |
103
107
  | **build_number** | Build Number for iOS and Android | CORDOVA_BUILD_NUMBER | |
104
108
  | **browserify** | Specifies whether to browserify build or not | CORDOVA_BROWSERIFY | *false* |
105
- | **cordova_prepare** | Specifies whether to run `cordova prepare` before building | CORDOVA_PREPARE | *true* |
109
+ | **cordova_prepare** | Specifies whether to run `ionic cordova prepare` before building | CORDOVA_PREPARE | *true* |
106
110
 
107
111
  ## Run tests for this plugin
108
112
 
@@ -6,7 +6,6 @@ module Fastlane
6
6
  end
7
7
 
8
8
  class IonicAction < Action
9
-
10
9
  # valid action params
11
10
 
12
11
  ANDROID_ARGS_MAP = {
@@ -20,7 +19,7 @@ module Fastlane
20
19
  IOS_ARGS_MAP = {
21
20
  type: 'packageType',
22
21
  team_id: 'developmentTeam',
23
- provisioning_profile: 'provisioningProfile',
22
+ provisioning_profile: 'provisioningProfile'
24
23
  }
25
24
 
26
25
  # do rewriting and copying of action params
@@ -50,7 +49,8 @@ module Fastlane
50
49
  app_identifier = CredentialsManager::AppfileConfig.try_fetch_value(:app_identifier)
51
50
 
52
51
  if params[:provisioning_profile].empty?
53
- params[:provisioning_profile] = ENV['SIGH_UUID'] || ENV["sigh_#{app_identifier}_#{params[:type].sub("-","")}"] # TODO What does this do? Does it also work for `match`?
52
+ # If `match` or `sigh` were used before this, use the certificates returned from there
53
+ params[:provisioning_profile] = ENV['SIGH_UUID'] || ENV["sigh_#{app_identifier}_#{params[:type].sub('-', '')}"]
54
54
  end
55
55
 
56
56
  if params[:type] == 'adhoc'
@@ -71,24 +71,26 @@ module Fastlane
71
71
  end
72
72
 
73
73
  # app_name
74
- def self.get_app_name()
74
+ def self.get_app_name
75
75
  config = REXML::Document.new(File.open('config.xml'))
76
- return config.elements['widget'].elements['name'].first.value # TODO Simplify!? (Check logic in cordova)
76
+ return config.elements['widget'].elements['name'].first.value # TODO: Simplify!? (Check logic in cordova)
77
77
  end
78
78
 
79
79
  # actual building! (run #2)
80
80
  def self.build(params)
81
81
  args = [params[:release] ? '--release' : '--debug']
82
82
  args << '--device' if params[:device]
83
+ args << '--prod' if params[:prod]
83
84
  args << '--browserify' if params[:browserify]
84
85
  android_args = self.get_android_args(params) if params[:platform].to_s == 'android'
85
86
  ios_args = self.get_ios_args(params) if params[:platform].to_s == 'ios'
86
87
 
87
- # TODO Extract param string for prepare and compile here
88
88
  if params[:cordova_prepare]
89
- sh "ionic cordova prepare #{params[:platform]} #{args.join(' ')} -- #{ios_args} -- -- #{android_args}" # TODO only attach set args - makes a nicer command
89
+ # TODO: Remove params not allowed/used for `prepare`
90
+ sh "ionic cordova prepare #{params[:platform]} #{args.join(' ')}"
90
91
  end
91
92
 
93
+ # special handling for `build_number` param
92
94
  if params[:platform].to_s == 'ios' && !params[:build_number].to_s.empty?
93
95
  cf_bundle_version = params[:build_number].to_s
94
96
  Actions::UpdateInfoPlistAction.run(
@@ -100,18 +102,19 @@ module Fastlane
100
102
  )
101
103
  end
102
104
 
103
- sh "ionic cordova compile #{params[:platform]} #{args.join(' ')} -- #{ios_args} -- -- #{android_args}" # TODO only attach set args - makes a nicer command
105
+ # TODO: extract params - only attach correct platform args
106
+ sh "ionic cordova compile #{params[:platform]} #{args.join(' ')} -- #{ios_args} -- -- #{android_args}"
104
107
  end
105
108
 
106
109
  # export build paths (run #3)
107
110
  def self.set_build_paths(is_release)
108
- app_name = self.get_app_name()
111
+ app_name = self.get_app_name
109
112
  build_type = is_release ? 'release' : 'debug'
110
113
 
111
114
  ENV['CORDOVA_ANDROID_RELEASE_BUILD_PATH'] = "./platforms/android/build/outputs/apk/android-#{build_type}.apk"
112
115
  ENV['CORDOVA_IOS_RELEASE_BUILD_PATH'] = "./platforms/ios/build/device/#{app_name}.ipa"
113
116
 
114
- # TODO https://github.com/bamlab/fastlane-plugin-cordova/issues/7
117
+ # TODO: https://github.com/bamlab/fastlane-plugin-cordova/issues/7
115
118
  end
116
119
 
117
120
  def self.run(params)
@@ -164,6 +167,16 @@ module Fastlane
164
167
  UI.user_error!("Device should be boolean") unless [false, true].include? value
165
168
  end
166
169
  ),
170
+ FastlaneCore::ConfigItem.new(
171
+ key: :prod,
172
+ env_name: "IONIC_PROD",
173
+ description: "Build for production",
174
+ is_string: false,
175
+ default_value: false,
176
+ verify_block: proc do |value|
177
+ UI.user_error!("Prod should be boolean") unless [false, true].include? value
178
+ end
179
+ ),
167
180
  FastlaneCore::ConfigItem.new(
168
181
  key: :type,
169
182
  env_name: "CORDOVA_IOS_PACKAGE_TYPE",
@@ -221,7 +234,7 @@ module Fastlane
221
234
  env_name: "CORDOVA_BUILD_NUMBER",
222
235
  description: "Build Number for iOS",
223
236
  optional: true,
224
- is_string: false,
237
+ is_string: false
225
238
  ),
226
239
  FastlaneCore::ConfigItem.new(
227
240
  key: :browserify,
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Ionic
3
- VERSION = "0.0.2"
3
+ VERSION = "0.0.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-ionic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Piotrowski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-13 00:00:00.000000000 Z
11
+ date: 2017-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry