Advertisement
Guest User

Untitled

a guest
Dec 7th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. target 'quickdemo iOS' do
  2. pod 'UMengAnalytics-NO-IDFA'
  3. end
  4.  
  5. pre_install do |installer|
  6. files = Dir.glob("*.xcodeproj")
  7. proj_file = files[0]
  8. app_project = Xcodeproj::Project.open(proj_file);
  9.  
  10. add_system_frameworks(app_project, ["MediaPlayer", "GameController"])
  11. app_project.native_targets.each do |target|
  12. target.build_configurations.each do |config|
  13. config.build_settings['HEADER_SEARCH_PATHS'] = repair_config(config.build_settings['HEADER_SEARCH_PATHS'])
  14. config.build_settings['LIBRARY_SEARCH_PATHS'] = repair_config(config.build_settings['LIBRARY_SEARCH_PATHS'])
  15. config.build_settings['OTHER_LDFLAGS'] = repair_config(config.build_settings['OTHER_LDFLAGS'])
  16. end
  17. end
  18.  
  19. app_project.save
  20. end
  21.  
  22. post_install do |installer|
  23.  
  24.  
  25. end
  26.  
  27. def repair_config(config)
  28. inherited = ['$(inherited)']
  29. ret = config == nil ? inherited : config
  30. if config.is_a?(Array)
  31. ret = config | inherited
  32. elsif config.is_a?(String)
  33. ret = ([config] - [""]) | inherited
  34. end
  35. return ret
  36. end
  37.  
  38. def add_system_frameworks(project, names, optional = false)
  39. project.targets.each do |target|
  40.  
  41. build_phase = target.frameworks_build_phase
  42. framework_group = project.frameworks_group
  43.  
  44. names.each do |name|
  45. next if exist_framework?(build_phase, name)
  46. path = "System/Library/Frameworks/#{name}.framework"
  47. file_ref = framework_group.new_reference(path)
  48. file_ref.name = "#{name}.framework"
  49. file_ref.source_tree = 'SDKROOT'
  50. build_file = build_phase.add_file_reference(file_ref)
  51. if optional
  52. build_file.settings = { 'ATTRIBUTES' => ['Weak'] }
  53. end
  54. end
  55. end
  56. end
  57.  
  58. def exist_framework?(build_phase, name)
  59. build_phase.files.each do |file|
  60. return true if file.file_ref.name == "#{name}.framework"
  61. end
  62. false
  63. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement