2016-11-18 5 views
0

У меня есть Ионный проект, в котором используется обмен сообщениями Ionic.io. Он построен с помощью Fastlane и развернут через HockeyApp.Ionic/cordova: как добавить функцию push с помощью Fastlane или xcodebuild?

С обновлением до Xcode 8 уведомления толчка больше не работает на прошивке 10.

У меня есть файл право из содержащего нажимное права и добавляются в файл Xcode проекта с рубином сценарием см https://github.com/fastlane/fastlane/issues/6544

Когда я создаю проект с помощью Fastlane push, все еще не работает. Когда я открываю файл проекта в Xcode и просматриваю раздел возможностей, он показывает галочку в «Добавить разрешение push-уведомления в ваш файл прав», но показывает ошибку «добавить функцию push-уведомления к вашему идентификатору приложения».

Если я надавливаю «исправить» и перестраиваю, нажмите делает работу.

Так моя проблема:

Я хочу, чтобы иметь возможность получить возможность нажимной позволил правильно, только с помощью Fastlane, xcodebuild, рубина или что-то, до тех пор, как это только в командной строке и позволяет мой ионный проект быть построенным чисто.

ответ

4

Так мне удалось заставить его работать, делая две вещи:

  • Я удалил все старые профили выделения ресурсов из Xcode. Это устранило проблему, поэтому Xcode жаловался на то, что права на push не были добавлены в мой файл прав, но была отметка «добавить функцию push-уведомления к вашему идентификатору приложения».
  • Далее я изменил сценарий, чтобы включить файл проекта в сам проект. Мне сообщили https://github.com/Azenet, что, вероятно, это связано с тем, что не используется совпадение с Fastlane.

https://github.com/Azenet и https://github.com/hjanuschka для получения 90% пути.

#!/usr/bin/env ruby 
require 'xcodeproj' 

name = ARGV[0] 
projectpath = "../platforms/ios/" + name + ".xcodeproj" 
puts "Adding entitlement push to " + name 
puts "Opening " + projectpath 
proj = Xcodeproj::Project.open(projectpath) 
entitlement_path = name + "/" + name + ".entitlements" 

group_name= proj.root_object.main_group.name 

file = proj.new_file(entitlement_path) 

attributes = {} 
proj.targets.each do |target| 
    attributes[target.uuid] = {"SystemCapabilities" => {"com.apple.Push" => {"enabled" => 1}}} 
    target.add_file_references([file]) 
    puts "Added to target: " + target.uuid 
end 
proj.root_object.attributes['TargetAttributes'] = attributes 

proj.build_configurations.each do |config| 
    config.build_settings.store("CODE_SIGN_ENTITLEMENTS", entitlement_path) 
end 
puts "Added entitlements file path: " + entitlement_path 

proj.save 

 Смежные вопросы

  • Нет связанных вопросов^_^