mmine 0.9.11 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 846ed86ca1bf73356fc8537b406e7dcd72cdbde4eee20f2c2a900b7662de81ec
4
- data.tar.gz: 6cca4fd1ff6d955392d66155aa2ee6ec5c40d6f38c7e2445264c569dcb31bb95
3
+ metadata.gz: 9d120f4519d83f2b9d20285ebb9576ee4d2e57bcf4d0e13522d017b48cda3264
4
+ data.tar.gz: b98a2fa77b4fbdb6aaf8db620b0395abf4fb322fa4821b46fb8f27d93f4403e9
5
5
  SHA512:
6
- metadata.gz: ff1750a7f8f986ea26c3945b31e836311e54daef8c9936bd60a459ca91f4e0910ce03425ee25bc031b033e90df7a74e6313b95e6fc03e0fdb3ec6947028ea31e
7
- data.tar.gz: 93e728c640cf959abe354da9815534acc08a9131d3b0777d329687c319803075a2f82a4f50770f0499079762c2e017a096eaaaedb1557b32100f1878343c8ff1
6
+ metadata.gz: c2d1965b045b7986ed53f91a34a5b5cee6bcf03d22646ad137c5197223d150b2a34ae0a75ae99645b554546322eae384205653e41d223d275e5e7310a0faf9e7
7
+ data.tar.gz: 5baaeef187da9f3153b80c00c7c444767f342467cba204aceb5af139c454f24edd688375a9a386a5ebe5b8bd3915388474e7697a21f061c1ba3159d0bef0d14d
data/bin/mmine CHANGED
@@ -33,7 +33,10 @@ integrate_parse = OptionParser.new do |opts|
33
33
  options[:"swift-version"] = ver
34
34
  end
35
35
  opts.on("-s", "--override-signing", "Override parameters for MobileMessagingNotificationExtension signing using build flags") do |override|
36
- options[:"override-signing"] = override
36
+ options[:"override-signing"] = override
37
+ end
38
+ opts.on("-sl", "--static-linkage", "If cocoapods static linkage used for MobileMessaging pods") do |static_linkage|
39
+ options[:"static-linkage"] = static_linkage
37
40
  end
38
41
  opts.on("-h", "--help", "Prints this help") do
39
42
  puts opts
@@ -50,7 +53,7 @@ when "integrate"
50
53
  unless missing.empty?
51
54
  raise OptionParser::MissingArgument.new(missing.join(', '))
52
55
  end
53
- integrator = NotificationExtensionIntegrator.new(options[:"application-code"], options[:project], options[:"app-group"], options[:target], options[:cordova] || false, options[:xcframework] || false, options[:"swift-version"] || "5", options[:"override-signing"] || false)
56
+ integrator = NotificationExtensionIntegrator.new(options[:"application-code"], options[:project], options[:"app-group"], options[:target], options[:cordova] || false, options[:xcframework] || false, options[:"swift-version"] || "5", options[:"override-signing"] || false, options[:"static-linkage"] || false)
54
57
  integrator.logger = Logger.new(STDOUT)
55
58
  integrator.logger.formatter = proc do |severity, datetime, progname, msg|
56
59
  "#{severity}: #{msg}\n"
@@ -14,7 +14,7 @@ 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, xcframework = false, swift_ver, override_signing)
17
+ def initialize(application_code, project_file_path, app_group, main_target_name, cordova = false, xcframework = false, swift_ver, override_signing, static_linkage)
18
18
  @project_file_path = project_file_path
19
19
  @app_group = app_group
20
20
  @main_target_name = main_target_name
@@ -24,6 +24,7 @@ class NotificationExtensionIntegrator
24
24
  @swift_version = swift_ver
25
25
  @application_code = application_code
26
26
  @override_signing = override_signing
27
+ @static_linkage = static_linkage
27
28
 
28
29
  @project_dir = Pathname.new(@project_file_path).parent.to_s
29
30
  @project = Xcodeproj::Project.open(@project_file_path)
@@ -35,6 +36,7 @@ class NotificationExtensionIntegrator
35
36
  @main_build_configurations_release = @main_target.build_configurations.select { |config| config.type == :release }
36
37
  @main_build_settings_debug = @main_build_configurations_debug.map(&:build_settings)
37
38
  @main_build_settings_release = @main_build_configurations_release.map(&:build_settings)
39
+
38
40
  end
39
41
 
40
42
  def logger=(_logger)
@@ -86,23 +88,48 @@ class NotificationExtensionIntegrator
86
88
  setup_copy_framework_script
87
89
  end
88
90
  else
89
- setup_entitlements(@main_build_configurations_debug.map { |config| config.resolve_build_setting('CODE_SIGN_ENTITLEMENTS') },
90
- @main_build_configurations_release.map { |config| config.resolve_build_setting('CODE_SIGN_ENTITLEMENTS') },
91
+ setup_entitlements(@main_build_configurations_debug.map { |config| config.build_settings['CODE_SIGN_ENTITLEMENTS'] },
92
+ @main_build_configurations_release.map { |config| config.build_settings['CODE_SIGN_ENTITLEMENTS'] },
91
93
  @main_target_name,
92
94
  @main_build_settings_debug,
93
95
  @main_build_settings_release)
94
96
 
95
- setup_entitlements(@extension_build_configurations_debug.map { |config| config.resolve_build_setting('CODE_SIGN_ENTITLEMENTS') },
96
- @extension_build_configurations_release.map { |config| config.resolve_build_setting('CODE_SIGN_ENTITLEMENTS') },
97
+ setup_entitlements(@extension_build_configurations_debug.map { |config| config.build_settings['CODE_SIGN_ENTITLEMENTS'] },
98
+ @extension_build_configurations_release.map { |config| config.build_settings['CODE_SIGN_ENTITLEMENTS'] },
97
99
  @extension_target_name,
98
100
  @extension_build_settings_debug,
99
101
  @extension_build_settings_release)
100
102
  end
101
103
 
104
+ if @static_linkage
105
+ setup_extension_lib_link('libMobileMessaging.a')
106
+ setup_extension_lib_link('libCocoaLumberjack.a')
107
+ setup_library_search_paths
108
+ end
109
+
102
110
  @project.save
103
111
  puts "🏁 Integration has been finished successfully!"
104
112
  end
105
113
 
114
+ def setup_library_search_paths
115
+ @logger.debug("Setup library search path")
116
+ set_notification_extension_build_settings('LIBRARY_SEARCH_PATHS', '"${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/CocoaLumberjack" "${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/MobileMessaging"')
117
+ end
118
+
119
+ def setup_extension_lib_link(lib_name)
120
+ if @extension_target.frameworks_build_phase.files_references.select { |ref| ref.path == lib_name }.first
121
+ @logger.info("Notification Extension target already has "+ lib_name + " linked.")
122
+ else
123
+ @logger.info("Adding "+ lib_name + " to Notification Extension target...")
124
+ ref = @project['Frameworks'].new_file(lib_name);
125
+ if ref
126
+ @extension_target.frameworks_build_phase.add_file_reference(ref)
127
+ else
128
+ @logger.error("Unable to add "+ lib_name + " to Notification Extension target!")
129
+ end
130
+ end
131
+ end
132
+
106
133
  def setup_extension_target_signing(override_signing)
107
134
  @logger.info("Overriding extension target signing: #{override_signing}")
108
135
 
@@ -204,7 +231,7 @@ class NotificationExtensionIntegrator
204
231
  end
205
232
 
206
233
  def setup_deployment_target
207
- set_notification_extension_build_settings('IPHONEOS_DEPLOYMENT_TARGET', "10.0")
234
+ set_notification_extension_build_settings('IPHONEOS_DEPLOYMENT_TARGET', "12.0")
208
235
  end
209
236
 
210
237
  def setup_notification_extension_info_plist
@@ -212,6 +239,7 @@ class NotificationExtensionIntegrator
212
239
  @logger.info("Notification extension info plist already exists on path: #{@extension_info_plist_path}")
213
240
  else
214
241
  @logger.info("Copying extension plist file to path: #{@extension_info_plist_path}")
242
+
215
243
  FileUtils.cp(@extension_plist_source_filepath, @extension_info_plist_path)
216
244
  get_notification_extension_group_reference.new_reference(@extension_info_plist_path) #check if additional plist manipulations needed (target membership?)
217
245
  end
data/lib/mmine/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Mmine
2
- VERSION = "0.9.11"
2
+ VERSION = "0.10.0"
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.11
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrey Kadochnikov
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 1.8.5
33
+ version: 1.13.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 1.8.5
40
+ version: 1.13.4
41
41
  description: Use this tool to automatically integrate your Xcode project with Infobips
42
42
  (https://www.infobip.com) Notification Service Extension
43
43
  email: andrey.kadochnikov@infobip.com