fastlane-plugin-xamarin 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: c9c954bc043fb20a4bfc10381a44b7917af930c26f447b284d3df53df2f884c8
4
+ data.tar.gz: 0fd7da757596866dcd3b29c29686db1c03508d1f01408db8adf402bb27042c63
5
+ SHA512:
6
+ metadata.gz: f11755dabf174b1fd73349588429550d297fd8649908c181d2c3174d6cb1b6233b7b60e6f07cb80e88462ed486c58f43c57b46cd74f5fe648abf7721de8dbe9a
7
+ data.tar.gz: 88ebc39616dfb608555704098ae25d47b49841ca6d59b6c762349df630ecd27bb8023f41e44c8cc070ada469b40e8cd7b718a56d8b6451b0246de3e72ad301dd
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2018 Thomas Charriere <thomas.charriere@swisssign.com>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,54 @@
1
+ # xamarin plugin
2
+
3
+ [![fastlane Plugin Badge](https://rawcdn.githack.com/fastlane/fastlane/master/fastlane/assets/plugin-badge.svg)](https://rubygems.org/gems/fastlane-plugin-xamarin)
4
+
5
+ ## Getting Started
6
+
7
+ WORK IN PROGRESS!
8
+
9
+ This project is a [_fastlane_](https://github.com/fastlane/fastlane) plugin. To get started with `fastlane-plugin-xamarin`, add it to your project by running:
10
+
11
+ ```bash
12
+ fastlane add_plugin xamarin
13
+ ```
14
+
15
+ ## About xamarin
16
+
17
+ Build Xamarin Android + iOS projects
18
+
19
+ **Note to author:** Add a more detailed description about this plugin here. If your plugin contains multiple actions, make sure to mention them here.
20
+
21
+ ## Example
22
+
23
+ Check out the [example `Fastfile`](fastlane/Fastfile) to see how to use this plugin. Try it by cloning the repo, running `fastlane install_plugins` and `bundle exec fastlane test`.
24
+
25
+ **Note to author:** Please set up a sample project to make it easy for users to explore what your plugin does. Provide everything that is necessary to try out the plugin in this project (including a sample Xcode/Android project if necessary)
26
+
27
+ ## Run tests for this plugin
28
+
29
+ To run both the tests, and code style validation, run
30
+
31
+ ```
32
+ rake
33
+ ```
34
+
35
+ To automatically fix many of the styling issues, use
36
+ ```
37
+ rubocop -a
38
+ ```
39
+
40
+ ## Issues and Feedback
41
+
42
+ For any other issues and feedback about this plugin, please submit it to this repository.
43
+
44
+ ## Troubleshooting
45
+
46
+ If you have trouble using plugins, check out the [Plugins Troubleshooting](https://docs.fastlane.tools/plugins/plugins-troubleshooting/) guide.
47
+
48
+ ## Using _fastlane_ Plugins
49
+
50
+ For more information about how the `fastlane` plugin system works, check out the [Plugins documentation](https://docs.fastlane.tools/plugins/create-plugin/).
51
+
52
+ ## About _fastlane_
53
+
54
+ _fastlane_ is the easiest way to automate beta deployments and releases for your iOS and Android apps. To learn more, check out [fastlane.tools](https://fastlane.tools).
@@ -0,0 +1,16 @@
1
+ require 'fastlane/plugin/xamarin/version'
2
+
3
+ module Fastlane
4
+ module Xamarin
5
+ # Return all .rb files inside the "actions" and "helper" directory
6
+ def self.all_classes
7
+ Dir[File.expand_path('**/{actions,helper}/*.rb', File.dirname(__FILE__))]
8
+ end
9
+ end
10
+ end
11
+
12
+ # By default we want to import all available actions and helpers
13
+ # A plugin can contain any number of actions and plugins
14
+ Fastlane::Xamarin.all_classes.each do |current|
15
+ require current
16
+ end
@@ -0,0 +1,94 @@
1
+ module Fastlane
2
+ module Actions
3
+
4
+
5
+ class NugetAction < Action
6
+ def self.run(params)
7
+
8
+ nuget = params[:nuget] || FastlaneCore::CommandExecutor.which('nuget')
9
+ mono = FastlaneCore::CommandExecutor.which('mono')
10
+
11
+ if nuget.nil?
12
+ UI.error("Could not find nuget")
13
+ return
14
+ end
15
+
16
+ if FastlaneCore::Globals.verbose?
17
+ FastlaneCore::PrintTable.print_values(
18
+ config: params,
19
+ title: "Summary of parameters passed"
20
+ )
21
+ end
22
+ command = Array.new
23
+
24
+ command.push(mono)
25
+ command.push(nuget)
26
+ command.push(params[:cmd])
27
+ command.push(params[:project_path])
28
+
29
+ exit_status = 0
30
+ result = FastlaneCore::CommandExecutor.execute(command: command,
31
+ print_command: true,
32
+ print_all: FastlaneCore::Globals.verbose?,
33
+ error: proc do |error_output|
34
+ exit_status = $?.exitstatus
35
+ end)
36
+
37
+ if exit_status == 0
38
+ UI.success("Successfully executed nuget")
39
+ else
40
+ UI.error("Uhh ohh - failed executing nuget")
41
+ end
42
+
43
+
44
+ end
45
+
46
+ def self.description
47
+ "Nuget"
48
+ end
49
+
50
+ def self.authors
51
+ ["Thomas Charriere"]
52
+ end
53
+
54
+ def self.return_value
55
+ # If your method provides a return value, you can describe here what it does
56
+ end
57
+
58
+ def self.details
59
+ # Optional:
60
+ "Nuget"
61
+ end
62
+
63
+
64
+ def self.available_options
65
+ [
66
+ FastlaneCore::ConfigItem.new(key: :project_path,
67
+ env_name: "NUGET_SOLUTION",
68
+ description: "The location of a solution or a packages.config",
69
+ optional: false,
70
+ type: String),
71
+
72
+ FastlaneCore::ConfigItem.new(key: :cmd,
73
+ env_name: "NUGET_COMMAND",
74
+ description: "",
75
+ default_value: 'restore',
76
+ optional: true,
77
+ type: String),
78
+
79
+ FastlaneCore::ConfigItem.new(key: :nuget,
80
+ env_name: "NUGET_PATH",
81
+ description: "",
82
+ default_value: "Path to `nuget`. Default value is found by using `which nuget`",
83
+ optional: true,
84
+ type: String)
85
+ ]
86
+
87
+ end
88
+
89
+ def self.is_supported?(platform)
90
+ [:android, :ios].include?(platform)
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,216 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ XAMARIN_ANDROID_APK = :XAMARIN_ANDROID_APK
5
+ XAMARIN_ANDROID_APK_SIGNED = :XAMARIN_ANDROID_APK_SIGNED
6
+ end
7
+
8
+ class XamarinAndroidAction < Action
9
+ def self.run(params)
10
+
11
+ msbuild = params[:msbuild] || FastlaneCore::CommandExecutor.which('msbuild')
12
+
13
+ if msbuild.nil?
14
+ UI.error("Could not find msbuild")
15
+ return
16
+ end
17
+
18
+ if FastlaneCore::Globals.verbose?
19
+ FastlaneCore::PrintTable.print_values(
20
+ config: params,
21
+ title: "Summary of parameters passed"
22
+ )
23
+ end
24
+ command = Array.new
25
+
26
+ command.push(msbuild)
27
+ command.push(params[:project])
28
+ command.push("/t:#{params[:target]}")
29
+ command.push("/p:Configuration=#{params[:configuration]}") unless params[:configuration].nil?
30
+ command.push("/p:DefineConstants=#{params[:define_constants]}") unless params[:define_constants].nil?
31
+ command.push("/p:DebugSymbols=#{params[:debug_symbols]}") unless params[:debug_symbols].nil?
32
+ command.push("/p:DebugType=#{params[:debug_type]}") unless params[:debug_type].nil?
33
+ command.push("/p:AndroidSupportedAbis=#{params[:android_supported_abis]}") unless params[:android_supported_abis].nil?
34
+ command.push("/p:AndroidUseSharedRuntime=#{params[:android_use_sharedruntime]}") unless params[:android_use_sharedruntime].nil?
35
+ command.push("/p:AotAssemblies=#{params[:android_aot_assemblies]}") unless params[:android_aot_assemblies].nil?
36
+ command.push("/p:EnableLLVM=#{params[:android_enable_llvm]}") unless params[:android_enable_llvm].nil?
37
+ command.push("/p:EnableProguard=#{params[:android_enable_proguard]}") unless params[:android_enable_proguard].nil?
38
+ command.push("/p:AndroidKeyStore=#{params[:android_keystore]}") unless params[:android_keystore].nil?
39
+ command.push("/p:AndroidSigningKeyAlias=#{params[:android_signing_keystore]}") unless params[:android_signing_keystore].nil?
40
+ command.push("/p:AndroidSigningKeyPass=#{params[:android_signing_storepass]}") unless params[:android_signing_storepass].nil?
41
+ command.push("/p:AndroidSigningKeyStore=#{params[:android_signing_keyalias]}") unless params[:android_signing_keyalias].nil?
42
+ command.push("/p:AndroidSigningStorePass=#{params[:android_signing_keypass]}") unless params[:android_signing_keypass].nil?
43
+
44
+ exit_status = 0
45
+ result = FastlaneCore::CommandExecutor.execute(command: command,
46
+ print_command: true,
47
+ print_all: FastlaneCore::Globals.verbose?,
48
+ error: proc do |error_output|
49
+ exit_status = $?.exitstatus
50
+ UI.error("Wups, invalid")
51
+ end)
52
+
53
+ if exit_status == 0
54
+ UI.success("Successfully executed msbuild")
55
+
56
+ Dir.glob(File.join(File.dirname(params[:project]), "/**/bin/#{params[:configuration]}/*.apk")) {|file|
57
+
58
+ if file.include? "Signed"
59
+ Actions.lane_context[SharedValues::XAMARIN_ANDROID_APK_SIGNED] = file
60
+ else
61
+ Actions.lane_context[SharedValues::XAMARIN_ANDROID_APK] = file
62
+ end
63
+
64
+ }
65
+
66
+ FastlaneCore::PrintTable.print_values(
67
+ config: Actions.lane_context,
68
+ title: "Summary of Xamarin Build"
69
+ )
70
+
71
+ else
72
+ UI.error("Unable to build - see log for more info")
73
+ end
74
+
75
+
76
+ end
77
+
78
+ def self.description
79
+ "Build Xamarin Android + iOS projects"
80
+ end
81
+
82
+ def self.authors
83
+ ["Thomas Charriere"]
84
+ end
85
+
86
+ def self.return_value
87
+ # If your method provides a return value, you can describe here what it does
88
+ end
89
+
90
+ def self.details
91
+ # Optional:
92
+ "Build Xamarin Android + iOS projects"
93
+ end
94
+
95
+ def self.output
96
+ [
97
+ ['XAMARIN_ANDROID_APK', 'Path to the apk'],
98
+ ['XAMARIN_ANDROID_APK_SIGNED', 'Path to the signed apk']
99
+ ]
100
+ end
101
+
102
+ def self.available_options
103
+ [
104
+ FastlaneCore::ConfigItem.new(key: :project,
105
+ env_name: "XAMARIN_PROJECT",
106
+ description: "Path to Android Project (.csproj) to compile",
107
+ optional: false,
108
+ type: String),
109
+
110
+ FastlaneCore::ConfigItem.new(key: :target,
111
+ env_name: "XAMARIN_TARGET",
112
+ description: "Specifies the Build Targets: Build, SignAndroidPackage",
113
+ default_value: 'SignAndroidPackage',
114
+ optional: true,
115
+ type: String),
116
+
117
+ FastlaneCore::ConfigItem.new(key: :configuration,
118
+ env_name: "XAMARIN_CONFIGURATION",
119
+ description: "Specifies the build configuration to use, such as 'Debug' or 'Release'. The Configuration property is used to determine default values for other properties which determine target behavior. Additional configurations may be created within your IDE",
120
+ default_value: 'Release',
121
+ optional: true,
122
+ type: String),
123
+
124
+ FastlaneCore::ConfigItem.new(key: :msbuild,
125
+ env_name: "XAMARIN_MSBUILD",
126
+ description: "Path to `msbuild`. Default value is found by using `which msbuild`",
127
+ optional: true,
128
+ type: String),
129
+
130
+ FastlaneCore::ConfigItem.new(key: :debug_symbols,
131
+ env_name: "XAMARIN_DEBUGSYMBOLS",
132
+ description: "A boolean value which determines whether the Android package is debuggable, in combination with the `debug_type` option. A debuggable package contains debug symbols, sets the `//application/@android:debuggable` attribute to true, and automatically adds the INTERNET permission so that a debugger can attach to the process. An application is debuggable if `debug_symbols` is True and `debug_type` is either the empty string or Full",
133
+ optional: true,
134
+ type: Fastlane::Boolean),
135
+
136
+ FastlaneCore::ConfigItem.new(key: :debug_type,
137
+ env_name: "XAMARIN_DEBUGTYPE",
138
+ description: "Specifies the type of debug symbols to generate as part of the build, which also impacts whether the Application is debuggable. Possible values include: Full, PdbOnly",
139
+ optional: true,
140
+ type: String),
141
+
142
+ FastlaneCore::ConfigItem.new(key: :define_constants,
143
+ env_name: "XAMARIN_DEFINECONSTANTS",
144
+ description: "Defines conditional compiler constants",
145
+ optional: true,
146
+ type: String),
147
+
148
+ FastlaneCore::ConfigItem.new(key: :android_supported_abis,
149
+ env_name: "XAMARIN_ANDROIDSUPPORTEDABIS",
150
+ description: "A string property that contains a semicolon (;)-delimited list of ABIs which should be included into the .apk: armeabi, armeabi-v7a, x86, arm64-v8a, x86_64",
151
+ optional: true,
152
+ type: String),
153
+
154
+ FastlaneCore::ConfigItem.new(key: :android_use_sharedruntime,
155
+ env_name: "XAMARIN_ANDROIDUSESHAREDRUNTIME",
156
+ description: "A boolean property that is determines whether the shared runtime packages are required in order to run the Application on the target device. Relying on the shared runtime packages allows the Application package to be smaller, speeding up the package creation and deployment process, resulting in a faster build/deploy/debug turnaround cycle. This property should be True for Debug builds, and False for Release projects",
157
+ optional: true,
158
+ type: Fastlane::Boolean),
159
+
160
+ FastlaneCore::ConfigItem.new(key: :android_aot_assemblies,
161
+ env_name: "XAMARIN_ANDROIDAOTASSEMBLIES",
162
+ description: "A boolean property that determines whether or not assemblies will be Ahead-of-Time compiled into native code and included in the .apk",
163
+ optional: true,
164
+ type: Fastlane::Boolean),
165
+
166
+ FastlaneCore::ConfigItem.new(key: :android_enable_llvm,
167
+ env_name: "XAMARIN_ANDROIDENABLELLVM",
168
+ description: "A boolean property that determines whether or not LLVM will be used when Ahead-of-Time compiling assemblies into native code",
169
+ optional: true,
170
+ type: Fastlane::Boolean),
171
+
172
+ FastlaneCore::ConfigItem.new(key: :android_enable_proguard,
173
+ env_name: "XAMARIN_ANDROIDENABLEPROGUARD",
174
+ description: "A boolean property that determines whether or not proguard is run as part of the packaging process to link Java code",
175
+ optional: true,
176
+ type: Fastlane::Boolean),
177
+
178
+ FastlaneCore::ConfigItem.new(key: :android_keystore,
179
+ env_name: "XAMARIN_ANDROIDKEYSTORE",
180
+ description: "A boolean value which indicates whether custom signing information should be used. The default value is False, meaning that the default debug-signing key will be used to sign packages",
181
+ optional: true,
182
+ type: Fastlane::Boolean),
183
+
184
+ FastlaneCore::ConfigItem.new(key: :android_signing_keystore,
185
+ env_name: "XAMARIN_ANDROIDSIGNINGKEYSTORE",
186
+ description: "Specifies the alias for the key in the keystore. This is the keytool -alias value used when creating the keystore",
187
+ optional: true,
188
+ type: String),
189
+
190
+ FastlaneCore::ConfigItem.new(key: :android_signing_storepass,
191
+ env_name: "XAMARIN_ANDROIDSIGNINGSTOREPASS",
192
+ description: "Specifies the password of the keystore file",
193
+ optional: true,
194
+ type: String),
195
+
196
+ FastlaneCore::ConfigItem.new(key: :android_signing_keyalias,
197
+ env_name: "XAMARIN_ANDROIDSINGINGKEYALIAS",
198
+ description: "Specifies the filename of the keystore file created by keytool",
199
+ optional: true,
200
+ type: String),
201
+
202
+ FastlaneCore::ConfigItem.new(key: :android_signing_keypass,
203
+ env_name: "XAMARIN_ANDROIDSIGNINGKEYPASS",
204
+ description: "Specifies the password of the key within the keystore file",
205
+ optional: true,
206
+ type: String)
207
+ ]
208
+
209
+ end
210
+
211
+ def self.is_supported?(platform)
212
+ [:android].include?(platform)
213
+ end
214
+ end
215
+ end
216
+ end
@@ -0,0 +1,195 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ XAMARIN_IOS_IPA = :XAMARIN_IOS_IPA
5
+ XAMARIN_IOS_SYM = :XAMARIN_IOS_SYM
6
+ end
7
+
8
+ class XamarinIosAction < Action
9
+ def self.run(params)
10
+
11
+ msbuild = params[:msbuild] || FastlaneCore::CommandExecutor.which('msbuild')
12
+
13
+ if msbuild.nil?
14
+ UI.error("Could not find msbuild")
15
+ return
16
+ end
17
+
18
+ if FastlaneCore::Globals.verbose?
19
+ FastlaneCore::PrintTable.print_values(
20
+ config: params,
21
+ title: "Summary of parameters passed"
22
+ )
23
+ end
24
+ command = Array.new
25
+
26
+ command.push(msbuild)
27
+ command.push(params[:solution])
28
+ command.push("/t:#{params[:target]}")
29
+ command.push("/p:Configuration=#{params[:configuration]}") unless params[:configuration].nil?
30
+ command.push("/p:Platform=#{params[:platform]}") unless params[:platform].nil?
31
+ command.push("/p:DefineConstants=#{params[:define_constants]}") unless params[:define_constants].nil?
32
+ command.push("/p:BuildIpa=#{params[:build_ipa]}") unless params[:build_ipa].nil?
33
+ command.push("/p:IpaPackageDir=#{params[:ipa_package_dir]}") unless params[:ipa_package_dir].nil?
34
+ command.push("/p:CodesignEntitlements=#{params[:codesign_entitlements]}") unless params[:codesign_entitlements].nil?
35
+ command.push("/p:IpaIncludeArtwork=#{params[:include_itunes_artwork]}") unless params[:include_itunes_artwork].nil?
36
+ command.push("/p:CodesignKey=#{params[:codesign_key]}") unless params[:codesign_key].nil?
37
+ command.push("/p:CodesignProvision=#{params[:codesign_provision]}") unless params[:codesign_provision].nil?
38
+
39
+ exit_status = 0
40
+ result = FastlaneCore::CommandExecutor.execute(command: command,
41
+ print_command: true,
42
+ print_all: FastlaneCore::Globals.verbose?,
43
+ error: proc do |error_output|
44
+ exit_status = $?.exitstatus
45
+ UI.error("Wups, invalid")
46
+ end)
47
+
48
+ if exit_status == 0
49
+ UI.success("Successfully executed msbuild")
50
+
51
+ if params[:ipa_package_dir].nil?
52
+
53
+ end
54
+
55
+ Dir.glob(File.join(File.dirname(params[:solution]), "/**/bin/#{params[:platform]}/#{params[:configuration]}/*.ipa")) {|file|
56
+
57
+ Actions.lane_context[SharedValues::XAMARIN_IOS_IPA] = file
58
+ Actions.lane_context[SharedValues::IPA_OUTPUT_PATH] = file
59
+ }
60
+
61
+ Dir.glob(File.join(File.dirname(params[:solution]), "/**/bin/#{params[:platform]}/#{params[:configuration]}/*.dSYM")) {|file|
62
+
63
+ zipfile = file + ".zip"
64
+
65
+ File.delete(zipfile) if File.exist?(zipfile)
66
+
67
+ Actions::ZipAction.run(path: file, output_path: zipfile)
68
+ Actions.lane_context[SharedValues::XAMARIN_IOS_SYM] = zipfile
69
+ Actions.lane_context[SharedValues::DSYM_OUTPUT_PATH] = zipfile
70
+
71
+ }
72
+
73
+ FastlaneCore::PrintTable.print_values(
74
+ config: Actions.lane_context,
75
+ title: "Summary of Xamarin Build"
76
+ )
77
+
78
+ else
79
+ UI.error("Unable to build - see log for more info")
80
+ end
81
+
82
+
83
+ end
84
+
85
+ def self.description
86
+ "Build Xamarin Android + iOS projects"
87
+ end
88
+
89
+ def self.authors
90
+ ["Thomas Charriere"]
91
+ end
92
+
93
+ def self.return_value
94
+ # If your method provides a return value, you can describe here what it does
95
+ end
96
+
97
+ def self.details
98
+ # Optional:
99
+ "Build Xamarin Android + iOS projects"
100
+ end
101
+
102
+ def self.output
103
+ [
104
+ ['XAMARIN_IOS_IPA', 'Path to the ipa'],
105
+ ['XAMARIN_IOS_SYM', 'Path to the dysm of the ipa']
106
+ ]
107
+ end
108
+
109
+ def self.available_options
110
+ [
111
+ FastlaneCore::ConfigItem.new(key: :solution,
112
+ env_name: "XAMARIN_SOLUTION",
113
+ description: "Path to Solution to compile",
114
+ optional: false,
115
+ type: String),
116
+
117
+ FastlaneCore::ConfigItem.new(key: :target,
118
+ env_name: "XAMARIN_TARGET",
119
+ description: "Specifies the Build Targets: Build",
120
+ default_value: 'Build',
121
+ optional: true,
122
+ type: String),
123
+
124
+ FastlaneCore::ConfigItem.new(key: :configuration,
125
+ env_name: "XAMARIN_CONFIGURATION",
126
+ description: "Specifies the build configuration to use, such as 'Debug' or 'Release'. The Configuration property is used to determine default values for other properties which determine target behavior. Additional configurations may be created within your IDE",
127
+ default_value: 'Release',
128
+ optional: true,
129
+ type: String),
130
+
131
+ FastlaneCore::ConfigItem.new(key: :platform,
132
+ env_name: "XAMARIN_PLATFORM",
133
+ description: "Specifies the platform configuration to use, such as 'iPhone' or 'iPhoneSimulator'. The Platform property is used to determine default values for other properties which determine target behavior. Additional configurations may be created within your IDE",
134
+ default_value: 'iPhone',
135
+ optional: true,
136
+ type: String),
137
+
138
+ FastlaneCore::ConfigItem.new(key: :define_constants,
139
+ env_name: "XAMARIN_DEFINECONSTANTS",
140
+ description: "Defines conditional compiler constants",
141
+ optional: true,
142
+ type: String),
143
+
144
+ FastlaneCore::ConfigItem.new(key: :msbuild,
145
+ env_name: "XAMARIN_MSBUILD",
146
+ description: "Path to `msbuild`. Default value is found by using `which msbuild`",
147
+ optional: true,
148
+ type: String),
149
+
150
+ FastlaneCore::ConfigItem.new(key: :build_ipa,
151
+ env_name: "XAMARIN_BUILDIPA",
152
+ description: "A boolean value which determines whether the ipa should be built",
153
+ default_value: true,
154
+ optional: true,
155
+ type: Fastlane::Boolean),
156
+
157
+ FastlaneCore::ConfigItem.new(key: :ipa_package_dir,
158
+ env_name: "XAMARIN_IPAPACKAGEDIR",
159
+ description: "Set custom IPA directory",
160
+ optional: true,
161
+ type: String),
162
+
163
+ FastlaneCore::ConfigItem.new(key: :codesign_entitlements,
164
+ env_name: "XAMARIN_CODESIGNENTITLEMENTS",
165
+ description: "",
166
+ optional: true,
167
+ type: Fastlane::Boolean),
168
+
169
+ FastlaneCore::ConfigItem.new(key: :include_itunes_artwork,
170
+ env_name: "XAMARIN_INCLUDEITUNESARTWORK",
171
+ description: "Includes ITunesArtwork images",
172
+ optional: true,
173
+ type: Fastlane::Boolean),
174
+
175
+ FastlaneCore::ConfigItem.new(key: :codesign_key,
176
+ env_name: "XAMARIN_CODESIGNKEY",
177
+ description: "A signing identity",
178
+ optional: true,
179
+ type: String),
180
+
181
+ FastlaneCore::ConfigItem.new(key: :codesign_provision,
182
+ env_name: "XAMARIN_CODESIGNPROVISION",
183
+ description: "Id/Name of the provisioning profile",
184
+ optional: true,
185
+ type: String)
186
+ ]
187
+
188
+ end
189
+
190
+ def self.is_supported?(platform)
191
+ [:ios].include?(platform)
192
+ end
193
+ end
194
+ end
195
+ end
@@ -0,0 +1,10 @@
1
+ module Fastlane
2
+ module Helper
3
+ class XamarinHelper
4
+ # class methods that you define here become available in your action
5
+ # as `Helper::XamarinHelper.your_method`
6
+ #
7
+
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ module Fastlane
2
+ module Xamarin
3
+ VERSION = "0.2.0"
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,135 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fastlane-plugin-xamarin
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Thomas Charriere
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-10-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: pry
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: fastlane
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 2.28.3
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 2.28.3
97
+ description:
98
+ email: git@a.charri.ch
99
+ executables: []
100
+ extensions: []
101
+ extra_rdoc_files: []
102
+ files:
103
+ - LICENSE
104
+ - README.md
105
+ - lib/fastlane/plugin/xamarin.rb
106
+ - lib/fastlane/plugin/xamarin/actions/nuget_action.rb
107
+ - lib/fastlane/plugin/xamarin/actions/xamarin_android_action.rb
108
+ - lib/fastlane/plugin/xamarin/actions/xamarin_ios_action.rb
109
+ - lib/fastlane/plugin/xamarin/helper/xamarin_helper.rb
110
+ - lib/fastlane/plugin/xamarin/version.rb
111
+ homepage: https://github.com/charri/fastlane-plugin-xamarin
112
+ licenses:
113
+ - MIT
114
+ metadata: {}
115
+ post_install_message:
116
+ rdoc_options: []
117
+ require_paths:
118
+ - lib
119
+ required_ruby_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ required_rubygems_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ requirements: []
130
+ rubyforge_project:
131
+ rubygems_version: 2.7.7
132
+ signing_key:
133
+ specification_version: 4
134
+ summary: Build Xamarin Android + iOS projects
135
+ test_files: []