segment-integrations / analytics-ios-integration-intercom

Segment's Intercom Integration for Analytics-iOS.
MIT License
2 stars 16 forks source link

Cocoapods error: [!] The '' target has transitive dependencies that include static binaries: (./Pods/Intercom/Intercom/Intercom.framework) #6

Open nebiros opened 6 years ago

nebiros commented 6 years ago

pod "Segment-Intercom", "~> 1.0.0-beta"

16:42 $ bundle exec pod install --verbose
  Preparing

Analyzing dependencies

Inspecting targets to integrate
  Using `ARCHS` setting to build architectures of target `Pods-Studio`: (``)
  Using `ARCHS` setting to build architectures of target `Pods-WatchExtension`: (``)
  Using `ARCHS` setting to build architectures of target `Pods-StudioTests`: (``)

Finding Podfile changes
  A Segment-Intercom
  R Intercom
  - ActionSheetPicker-3.0
  - Alamofire
  - AlamofireImage
  - AlamofireNetworkActivityLogger
  - Analytics
  - Branch
  - DeallocationChecker
  - DeviceKit
  - EBCardCollectionViewLayout
  - FBSDKCoreKit
  - FBSDKLoginKit
  - FXKeychain
  - Firebase
  - Marshal
  - PKHUD
  - PromiseKit
  - Reusable
  - Reveal-SDK
  - Rollbar
  - Segment-Facebook-App-Events
  - SwiftMessages
  - SwiftVideoBackground
  - SwiftyBeaver
  - TTTAttributedLabel
  - Twinkle
  - UICountingLabel

Fetching external sources
-> Pre-downloading: `EBCardCollectionViewLayout` from `https://github.com/betzerra/EBCardCollectionViewLayout`, commit `f04ff40d36e588054d91832621ac237917c299ee`
  > Copying EBCardCollectionViewLayout from
  `/Users/nebiros/Library/Caches/CocoaPods/Pods/External/EBCardCollectionViewLayout/5c6721a52f796f7af729ad5500f5aa6a` to
  `Pods/EBCardCollectionViewLayout`

Resolving dependencies of `Podfile`

Comparing resolved specification to the sandbox manifest
  A Segment-Intercom
  M EBCardCollectionViewLayout
  - ActionSheetPicker-3.0
  - Alamofire
  - AlamofireImage
  - AlamofireNetworkActivityLogger
  - Analytics
  - Bolts
  - Branch
  - DeallocationChecker
  - DeviceKit
  - FBSDKCoreKit
  - FBSDKLoginKit
  - FXKeychain
  - Firebase
  - FirebaseAnalytics
  - FirebaseCore
  - FirebaseInstanceID
  - GoogleToolboxForMac
  - Intercom
  - Marshal
  - PKHUD
  - PromiseKit
  - Reusable
  - Reveal-SDK
  - Rollbar
  - Segment-Facebook-App-Events
  - SwiftMessages
  - SwiftVideoBackground
  - SwiftyBeaver
  - TTTAttributedLabel
  - Twinkle
  - UICountingLabel
  - nanopb

Downloading dependencies

-> Using ActionSheetPicker-3.0 (2.3.0)

-> Using Alamofire (4.6.0)

-> Using AlamofireImage (3.3.0)

-> Using AlamofireNetworkActivityLogger (2.2.0)

-> Using Analytics (3.6.9)

-> Using Bolts (1.9.0)

-> Using Branch (0.22.5)

-> Using DeallocationChecker (2.0.1)

-> Using DeviceKit (1.5.0)

-> Installing EBCardCollectionViewLayout (0.2.0)

-> Using FBSDKCoreKit (4.31.0)

-> Using FBSDKLoginKit (4.31.0)

-> Using FXKeychain (1.5.3)

-> Using Firebase (4.8.2)

-> Using FirebaseAnalytics (4.0.9)

-> Using FirebaseCore (4.0.14)

-> Using FirebaseInstanceID (2.0.8)

-> Using GoogleToolboxForMac (2.1.3)

-> Using Intercom (4.1.9)

-> Using Marshal (1.2.4)

-> Using PKHUD (5.0.0)

-> Using PromiseKit (4.5.2)

-> Using Reusable (4.0.0)

-> Using Reveal-SDK (13)

-> Using Rollbar (0.2.0)

-> Using Segment-Facebook-App-Events (1.0.3)

-> Installing Segment-Intercom (1.0.0-beta)
  > Copying Segment-Intercom from `/Users/nebiros/Library/Caches/CocoaPods/Pods/Release/Segment-Intercom/1.0.0-beta-f4942` to `Pods/Segment-Intercom`

-> Using SwiftMessages (4.1.0)

-> Using SwiftVideoBackground (2.0.1)

-> Using SwiftyBeaver (1.5.1)

-> Using TTTAttributedLabel (2.0.0)

-> Using Twinkle (0.3.0)

-> Using UICountingLabel (1.4.1)

-> Using nanopb (0.3.8)
  - Running pre install hooks
[!] The 'Pods-Studio' target has transitive dependencies that include static binaries: (/Users/nebiros/OneDrive/Projects/studio-ios/Pods/Intercom/Intercom/Intercom.framework)

/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cocoapods-1.4.0/lib/cocoapods/installer/xcode/target_validator.rb:81:in `block (2 levels) in verify_no_static_framework_transitive_dependencies'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cocoapods-1.4.0/lib/cocoapods/installer/xcode/target_validator.rb:73:in `each'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cocoapods-1.4.0/lib/cocoapods/installer/xcode/target_validator.rb:73:in `block in verify_no_static_framework_transitive_dependencies'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cocoapods-1.4.0/lib/cocoapods/installer/xcode/target_validator.rb:70:in `each'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cocoapods-1.4.0/lib/cocoapods/installer/xcode/target_validator.rb:70:in `verify_no_static_framework_transitive_dependencies'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cocoapods-1.4.0/lib/cocoapods/installer/xcode/target_validator.rb:36:in `validate!'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cocoapods-1.4.0/lib/cocoapods/installer.rb:406:in `validate_targets'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cocoapods-1.4.0/lib/cocoapods/installer.rb:118:in `install!'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cocoapods-1.4.0/lib/cocoapods/command/install.rb:41:in `run'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/claide-1.0.2/lib/claide/command.rb:334:in `run'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cocoapods-1.4.0/lib/cocoapods/command.rb:52:in `run'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/cocoapods-1.4.0/bin/pod:55:in `<top (required)>'
/Users/nebiros/.rbenv/versions/2.3.3/bin/pod:23:in `load'
/Users/nebiros/.rbenv/versions/2.3.3/bin/pod:23:in `<top (required)>'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/site_ruby/2.3.0/bundler/cli/exec.rb:75:in `load'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/site_ruby/2.3.0/bundler/cli/exec.rb:75:in `kernel_load'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/site_ruby/2.3.0/bundler/cli/exec.rb:28:in `run'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/site_ruby/2.3.0/bundler/cli.rb:424:in `exec'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/site_ruby/2.3.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/site_ruby/2.3.0/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/site_ruby/2.3.0/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/site_ruby/2.3.0/bundler/cli.rb:27:in `dispatch'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/site_ruby/2.3.0/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/site_ruby/2.3.0/bundler/cli.rb:18:in `start'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.16.0/exe/bundle:30:in `block in <top (required)>'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/site_ruby/2.3.0/bundler/friendly_errors.rb:122:in `with_friendly_errors'
/Users/nebiros/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/bundler-1.16.0/exe/bundle:22:in `<top (required)>'
/Users/nebiros/.rbenv/versions/2.3.3/bin/bundle:23:in `load'
/Users/nebiros/.rbenv/versions/2.3.3/bin/bundle:23:in `<main>'
toddgower-hiatus commented 6 years ago

anyone at Segment monitoring these issues?

ladanazita commented 6 years ago

Hi all,

Thanks for writing in, and yes we monitor these and try to get back to you as quickly as possible!

This unfortunately is a common issue that doesn't have an out of the box solution due to Cocoapods and static libraries not working well together. This issue explains why combining use_frameworks! and the static file doesn't work. This GitHub issue tracks this problem.

This may be something outside our scope to fix, as Cocoapods has this limitation, however, we have a work around we can suggest.

You will need to manually copy the integration files and then depend on Intercom directly. Instead of importing the integration from our library, then you would import the integration from your local copy.

This eliminates the transitive dependency (from App -> Segment-Intercom -> Intercom to App -> Intercom).

Let me know if this makes sense!

toddgower-hiatus commented 6 years ago

thanks @ladanazita for the response. I got it working as you suggested: I copied in the four implementation/header files from the library, leaving the existing Intercom dependency in place. I'm not exactly sure what you mean when you say

Instead of importing the integration from our library, then you would import the integration from your local copy

but it seems to be working regardless. I need to include Intercom anyway in order to use their UI for the message interface.

ladanazita commented 6 years ago

@toddgower Sorry for the confusion — so instead of importing Segment-Intercom, you would natively include the Intercom pod which is what you have done.

stephensilber commented 5 years ago

~We were able to work around this error with this: https://github.com/CocoaPods/CocoaPods/issues/3289#issuecomment-232775634~

Scratch that -- We ended up needing to import the files manually into the project. Is there a reason that this needs to be a static library?