Podfile 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. platform :ios, '9.0'
  2. source 'https://github.com/CocoaPods/Specs.git'
  3. use_frameworks!
  4. def shared_pods
  5. ###
  6. # OWS Pods
  7. ###
  8. pod 'SignalCoreKit', git: 'https://github.com/signalapp/SignalCoreKit.git', testspecs: ["Tests"]
  9. # pod 'SignalCoreKit', path: '../SignalCoreKit', testspecs: ["Tests"]
  10. pod 'AxolotlKit', git: 'https://github.com/signalapp/SignalProtocolKit.git', branch: 'master', testspecs: ["Tests"]
  11. # pod 'AxolotlKit', path: '../SignalProtocolKit', testspecs: ["Tests"]
  12. pod 'HKDFKit', git: 'https://github.com/signalapp/HKDFKit.git', testspecs: ["Tests"]
  13. # pod 'HKDFKit', path: '../HKDFKit', testspecs: ["Tests"]
  14. pod 'Curve25519Kit', git: 'https://github.com/signalapp/Curve25519Kit', testspecs: ["Tests"]
  15. # pod 'Curve25519Kit', path: '../Curve25519Kit', testspecs: ["Tests"]
  16. pod 'SignalMetadataKit', git: 'git@github.com:signalapp/SignalMetadataKit', testspecs: ["Tests"]
  17. # pod 'SignalMetadataKit', path: '../SignalMetadataKit', testspecs: ["Tests"]
  18. pod 'SignalServiceKit', path: '.', testspecs: ["Tests"]
  19. # Project does not compile with PromiseKit 6.7.1
  20. # see: https://github.com/mxcl/PromiseKit/issues/990
  21. pod 'PromiseKit', "6.5.3"
  22. ###
  23. # forked third party pods
  24. ###
  25. # pod 'GRDBCipher', path: '../GRDB.swift'
  26. pod 'GRDBCipher', git: 'https://github.com/signalapp/GRDB.swift', branch: 'signal-release'
  27. # Includes some soon to be released "unencrypted header" changes required for the Share Extension
  28. pod 'SQLCipher', ">= 4.0.1"
  29. # Forked for performance optimizations that are not likely to be upstreamed as they are specific
  30. # to our limited use of Mantle
  31. pod 'Mantle', git: 'https://github.com/signalapp/Mantle', branch: 'signal-master'
  32. # pod 'Mantle', path: '../Mantle'
  33. # Forked for compatibily with the ShareExtension, changes have an open PR, but have not been merged.
  34. pod 'YapDatabase/SQLCipher', :git => 'https://github.com/signalapp/YapDatabase.git', branch: 'signal-release'
  35. # pod 'YapDatabase/SQLCipher', path: '../YapDatabase'
  36. # Forked to incorporate our self-built binary artifact.
  37. pod 'GRKOpenSSLFramework', git: 'https://github.com/signalapp/GRKOpenSSLFramework'
  38. #pod 'GRKOpenSSLFramework', path: '../GRKOpenSSLFramework'
  39. pod 'Starscream', git: 'git@github.com:signalapp/Starscream.git', branch: 'signal-release'
  40. # pod 'Starscream', path: '../Starscream'
  41. ###
  42. # third party pods
  43. ####
  44. pod 'AFNetworking', inhibit_warnings: true
  45. pod 'PureLayout', :inhibit_warnings => true
  46. pod 'Reachability', :inhibit_warnings => true
  47. end
  48. target 'Signal' do
  49. shared_pods
  50. pod 'SSZipArchive', :inhibit_warnings => true
  51. target 'SignalTests' do
  52. inherit! :search_paths
  53. end
  54. end
  55. target 'SignalShareExtension' do
  56. shared_pods
  57. end
  58. target 'SignalMessaging' do
  59. shared_pods
  60. end
  61. post_install do |installer|
  62. enable_extension_support_for_purelayout(installer)
  63. configure_warning_flags(installer)
  64. end
  65. # PureLayout by default makes use of UIApplication, and must be configured to be built for an extension.
  66. def enable_extension_support_for_purelayout(installer)
  67. installer.pods_project.targets.each do |target|
  68. if target.name.end_with? "PureLayout"
  69. target.build_configurations.each do |build_configuration|
  70. if build_configuration.build_settings['APPLICATION_EXTENSION_API_ONLY'] == 'YES'
  71. build_configuration.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = ['$(inherited)', 'PURELAYOUT_APP_EXTENSIONS=1']
  72. end
  73. end
  74. end
  75. end
  76. end
  77. # We want some warning to be treated as errors.
  78. #
  79. # NOTE: We have to manually keep this list in sync with what's in our
  80. # Signal.xcodeproj config in Xcode go to:
  81. # Signal Project > Build Settings > Other Warning Flags
  82. def configure_warning_flags(installer)
  83. installer.pods_project.targets.each do |target|
  84. target.build_configurations.each do |build_configuration|
  85. build_configuration.build_settings['WARNING_CFLAGS'] = ['$(inherited)',
  86. '-Werror=incompatible-pointer-types',
  87. '-Werror=protocol',
  88. '-Werror=incomplete-implementation',
  89. '-Werror=objc-literal-conversion']
  90. end
  91. end
  92. end