mmine 0.9.3 → 0.9.7

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
  SHA256:
3
- metadata.gz: ba4089e62e6369fd58325f1c6d70465a32ab73d007af235fea06df4cf70be0d8
4
- data.tar.gz: f34db6ee3d0f5638afbf6e5b87d8a942402d3ddbe9d6fa82f28052fee681c424
3
+ metadata.gz: d490fc5cefe008e8fe59cd2e69bbb048c088106ce034b3d22a59cbb3c909dcf4
4
+ data.tar.gz: 27c17fe2fc5fd5e885b2368d317a0de63feea805d8af3b2172599123de1aea8c
5
5
  SHA512:
6
- metadata.gz: 8a3c483ecc9fd79b5f14ac64b5d9db5c0b4f95393b1ef4f8017c2d422c89472c7fb94533d033284f8b6fa09c8093e3d2fb692206d9e9f6888352678e0b513642
7
- data.tar.gz: 5cee1fd68dc92ec19177395938d91dfcce02e22f04bfe0dfe544689a51532ec98b870d4881b0f001ca39cafae645d476f2873d0182fdf0e094002d7c5acd36d4
6
+ metadata.gz: 6c523b146a39987351240e79ec55f6eeff2cb428156c5aef7614296f7675411624e1ada2d1434ab11afe244f9b9e929d5d29afa520d19f5c4c3bf6c1b2228888
7
+ data.tar.gz: 41d04924b9700394cd5d67a32eabd7a5d444a74f489f7102f158ee003a9dc00da737dc279a7f9b6bc45f590e5e938d10c4470c98263fcefba237c345770512cf
data/bin/mmine CHANGED
@@ -23,10 +23,13 @@ integrate_parse = OptionParser.new do |opts|
23
23
  opts.on("-v", "--verbose", "Make verbose logs visible") do |verbose|
24
24
  options[:verbose] = verbose
25
25
  end
26
- opts.on("-c", "--cordova", "Provide Cordova project specific settings.") do |verbose|
27
- options[:cordova] = verbose
26
+ opts.on("-c", "--cordova", "Provide Cordova project specific settings.") do |cordova|
27
+ options[:cordova] = cordova
28
28
  end
29
- opts.on("--swift-version", "--swift-version SWIFT_VER", "Provide Swift Language version for notification extension (by default 4.2)") do |ver|
29
+ opts.on("-x", "--xcframework", "Should Cordova project use xcframework or framework.") do |xcframework|
30
+ options[:xcframework] = xcframework
31
+ end
32
+ opts.on("--swift-version", "--swift-version SWIFT_VER", "Provide Swift Language version for notification extension (by default 5)") do |ver|
30
33
  options[:"swift-version"] = ver
31
34
  end
32
35
  opts.on("-h", "--help", "Prints this help") do
@@ -44,7 +47,7 @@ when "integrate"
44
47
  unless missing.empty?
45
48
  raise OptionParser::MissingArgument.new(missing.join(', '))
46
49
  end
47
- integrator = NotificationExtensionIntegrator.new(options[:"application-code"], options[:project], options[:"app-group"], options[:target], options[:cordova] || false, options[:"swift-version"] || "4.2")
50
+ integrator = NotificationExtensionIntegrator.new(options[:"application-code"], options[:project], options[:"app-group"], options[:target], options[:cordova] || false, options[:xcframework] || false, options[:"swift-version"] || "5")
48
51
  integrator.logger = Logger.new(STDOUT)
49
52
  integrator.logger.formatter = proc do |severity, datetime, progname, msg|
50
53
  "#{severity}: #{msg}\n"
@@ -14,12 +14,13 @@ module Mmine
14
14
  end
15
15
 
16
16
  class NotificationExtensionIntegrator
17
- def initialize(application_code, project_file_path, app_group, main_target_name, cordova = false, swift_ver)
17
+ def initialize(application_code, project_file_path, app_group, main_target_name, cordova = false, xcframework = false, swift_ver)
18
18
  @project_file_path = project_file_path
19
19
  @app_group = app_group
20
20
  @main_target_name = main_target_name
21
21
  @logger = nil
22
22
  @cordova = cordova
23
+ @xcframework = xcframework
23
24
  @swift_version = swift_ver
24
25
  @application_code = application_code
25
26
 
@@ -67,6 +68,7 @@ class NotificationExtensionIntegrator
67
68
  setup_product_name
68
69
  setup_extension_build_number
69
70
  setup_run_path_search_paths
71
+ erease_bridging_header
70
72
 
71
73
  if @cordova
72
74
  setup_entitlements(resolve_absolute_paths(["$(PROJECT_DIR)/$(PROJECT_NAME)/Entitlements-Debug.plist"]),
@@ -76,7 +78,9 @@ class NotificationExtensionIntegrator
76
78
  @main_build_settings_release)
77
79
  setup_extension_lib_cordova_link
78
80
  setup_framework_search_paths
79
- setup_copy_framework_script
81
+ unless @xcframework
82
+ setup_copy_framework_script
83
+ end
80
84
  else
81
85
  setup_entitlements(@main_build_configurations_debug.map { |config| config.resolve_build_setting('CODE_SIGN_ENTITLEMENTS') },
82
86
  @main_build_configurations_release.map { |config| config.resolve_build_setting('CODE_SIGN_ENTITLEMENTS') },
@@ -189,7 +193,7 @@ class NotificationExtensionIntegrator
189
193
  suffix = 'notification-extension'
190
194
  key = 'PRODUCT_BUNDLE_IDENTIFIER'
191
195
  (@main_build_configurations_release + @main_build_configurations_debug).each do |config|
192
- bundleId = config.resolve_build_setting(key)
196
+ bundleId = resolve_recursive_build_setting(config, key)
193
197
  if bundleId == nil
194
198
  plist_path = resolve_absolute_paths([config.resolve_build_setting("INFOPLIST_FILE")]).first
195
199
  bundleId = get_xml_string_value(key, plist_path)
@@ -203,6 +207,49 @@ class NotificationExtensionIntegrator
203
207
  end
204
208
  end
205
209
 
210
+ # https://github.com/CocoaPods/Xcodeproj/issues/505#issuecomment-584699008
211
+ # Augments config.resolve_build_setting from xcproject
212
+ # to continue expanding build settings and evaluate modifiers
213
+ def resolve_recursive_build_setting(config, setting)
214
+ resolution = config.resolve_build_setting(setting)
215
+
216
+ # finds values with one of
217
+ # $VALUE
218
+ # $(VALLUE)
219
+ # $(VALUE:modifier)
220
+ # ${VALUE}
221
+ # ${VALUE:modifier}
222
+ resolution.gsub(/\$[\(\{]?.+[\)\}]?/) do |raw_value|
223
+ # strip $() characters
224
+ unresolved = raw_value.gsub(/[\$\(\)\{\}]/, '')
225
+
226
+ # Get the modifiers after the ':' characters
227
+ name, *modifiers = unresolved.split(':')
228
+
229
+ # Expand variable name
230
+ subresolution = resolve_recursive_build_setting(config, name)
231
+
232
+ # Apply modifiers
233
+ # NOTE: not all cases accounted for
234
+ #
235
+ # See http://codeworkshop.net/posts/xcode-build-setting-transformations
236
+ # for various modifier options
237
+ modifiers.each do |modifier|
238
+ case modifier
239
+ when 'lower'
240
+ subresolution.downcase!
241
+ when 'upper'
242
+ subresolution.upcase!
243
+ else
244
+ # Fastlane message
245
+ @logger.info("Unknown modifier: `#{modifier}` in `#{raw_value}")
246
+ end
247
+ end
248
+
249
+ subresolution
250
+ end
251
+ end
252
+
206
253
  def create_entitlements_file(_entitlements_name)
207
254
  entitlements_destination_filepath = File.join(@project_dir, _entitlements_name)
208
255
  entitlements_source_filepath = File.join(Mmine.root, 'resources', "MobileMessagingNotificationExtension.entitlements")
@@ -298,8 +345,12 @@ class NotificationExtensionIntegrator
298
345
  end
299
346
  end
300
347
 
348
+ def erease_bridging_header
349
+ set_notification_extension_build_settings('SWIFT_OBJC_BRIDGING_HEADER', '')
350
+ end
351
+
301
352
  def setup_framework_search_paths
302
- set_notification_extension_build_settings('FRAMEWORK_SEARCH_PATHS', '$SRCROOT/$PROJECT/Plugins/com-infobip-plugins-mobilemessaging')
353
+ set_notification_extension_build_settings('FRAMEWORK_SEARCH_PATHS', '$SRCROOT/$PROJECT/Plugins/com-infobip-plugins-mobilemessaging/**')
303
354
  end
304
355
 
305
356
  def setup_run_path_search_paths
@@ -421,7 +472,7 @@ class NotificationExtensionIntegrator
421
472
  return group_reference
422
473
  end
423
474
 
424
- def resolve_absolute_paths(paths)
475
+ def resolve_absolute_paths(paths)
425
476
  paths.map do |path|
426
477
  ret = path
427
478
  ["$(PROJECT_DIR)", "$PROJECT_DIR"].each do |proj_dir|
data/lib/mmine/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mmine
2
- VERSION = "0.9.3"
2
+ VERSION = "0.9.7"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mmine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 0.9.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrey Kadochnikov
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.10.0
19
+ version: 1.20.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.10.0
26
+ version: 1.20.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -73,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  requirements: []
76
- rubygems_version: 3.0.9
76
+ rubygems_version: 3.0.8
77
77
  signing_key:
78
78
  specification_version: 4
79
79
  summary: Mobile Messaging iOS Notification Extension Integration Tool made at Infobip