Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conflicting base configuration warnings #3112

Closed
hborders opened this issue Feb 4, 2015 · 8 comments
Closed

Conflicting base configuration warnings #3112

hborders opened this issue Feb 4, 2015 · 8 comments
Labels
s1:awaiting input Waiting for input from the original author

Comments

@hborders
Copy link

hborders commented Feb 4, 2015

Podfile:

workspace 'JiveKit'
xcodeproj 'JiveKitDemo/JiveKitDemo'

target :JiveKitDemo do
  pod 'JiveKit', :path => 'JiveKit.podspec'
end

target :JiveKitDemoTests do
  pod 'JiveKit/Testing', :path => 'JiveKit.podspec'
end

source 'https://github.com/CocoaPods/Specs.git'

pod 'SwiftHamcrest', :path => 'Pods-ified/SwiftHamcrest'

JiveKit.podspec:

Pod::Spec.new do |s|
  s.name = 'JiveKit'
  s.version = '0.1.0'
  s.license = { :type => 'Apache License, Version 2.0', :file => 'LICENSE' }
  s.summary = 'Swift SDK for the Jive REST API.'
  s.homepage = 'https://github.com/jivesoftware/JiveKit'
  s.authors = { 'Jive Mobile' => 'jive-mobile@jivesoftware.com' }
  s.source = { :git => 'git@git.jiveland.com:jive-kit', :tag => s.version }

  s.ios.deployment_target = '8.1'
  s.osx.deployment_target = '10.10'

  s.requires_arc = true
  s.default_subspec = 'Core'

  s.subspec 'Core' do |core|
    core.source_files = 'JiveKit/Source/*.swift'
    core.dependency     'Alamofire'
  end

  s.subspec 'Testing' do |testing|
    testing.source_files = 'JiveKit/Testing/*.swift'
    testing.dependency     'JiveKit/Core'
  end
end

This causes the following output (from pod install --verbose):

  Preparing
    Migrating to CocoaPods 0.36

Analyzing dependencies

Updating spec repositories
  $ /usr/local/bin/git rev-parse  >/dev/null 2>&1
  $ /usr/local/bin/git rev-parse  >/dev/null 2>&1
Updating spec repo `master`
  $ /usr/local/bin/git pull --ff-only
  From https://github.com/CocoaPods/Specs
     80effa8..a24262f  master     -> origin/master
  Updating 80effa8..a24262f
  Fast-forward
   .../0.0.1/MaterialCardView.podspec.json            | 23 ++++++++++++++++++++++
   1 file changed, 23 insertions(+)
   create mode 100644 Specs/MaterialCardView/0.0.1/MaterialCardView.podspec.json

Inspecting targets to integrate
  Using `ARCHS` setting to build architectures of target `Pods`: (``)
  Using `ARCHS` setting to build architectures of target `Pods-JiveKitDemo`: (``)
  Using `ARCHS` setting to build architectures of target `Pods-JiveKitDemoTests`: (``)

Finding Podfile changes
  - JiveKit
  - JiveKit/Testing
  - SwiftHamcrest

Fetching external sources
-> Fetching podspec for `JiveKit` from `JiveKit.podspec`
-> Fetching podspec for `SwiftHamcrest` from `Pods-ified/SwiftHamcrest`

Resolving dependencies of `Podfile`
Starting resolution (2015-02-04 10:24:52 -0600)
Creating possibility state for SwiftHamcrest (from `Pods-ified/SwiftHamcrest`) (1 remaining)
  Attempting to activate SwiftHamcrest (0.1.0)
  Activated SwiftHamcrest at SwiftHamcrest (0.1.0)
  Requiring nested dependencies ()
  Creating possibility state for SwiftHamcrest (from `Pods-ified/SwiftHamcrest`) (1 remaining)
    Attempting to activate SwiftHamcrest (0.1.0)
    Found existing spec (SwiftHamcrest (0.1.0))
    Creating possibility state for SwiftHamcrest (from `Pods-ified/SwiftHamcrest`) (1 remaining)
      Attempting to activate SwiftHamcrest (0.1.0)
      Found existing spec (SwiftHamcrest (0.1.0))
      Creating possibility state for JiveKit/Testing (from `JiveKit.podspec`) (1 remaining)
        Attempting to activate JiveKit/Testing (0.1.0)
        Activated JiveKit/Testing at JiveKit/Testing (0.1.0)
        Requiring nested dependencies (JiveKit/Core (= 0.1.0))
        Creating possibility state for JiveKit (from `JiveKit.podspec`) (1 remaining)
          Attempting to activate JiveKit (0.1.0)
          Activated JiveKit at JiveKit (0.1.0)
          Requiring nested dependencies (JiveKit/Core (= 0.1.0))
          Creating possibility state for JiveKit/Core (= 0.1.0) (1 remaining)
            Attempting to activate JiveKit/Core (0.1.0)
            Activated JiveKit/Core at JiveKit/Core (0.1.0)
            Requiring nested dependencies (Alamofire)
            Creating possibility state for JiveKit/Core (= 0.1.0) (1 remaining)
              Attempting to activate JiveKit/Core (0.1.0)
              Found existing spec (JiveKit/Core (0.1.0))
              Creating possibility state for Alamofire (1 remaining)
                Attempting to activate Alamofire (1.1.4)
                Activated Alamofire at Alamofire (1.1.4)
                Requiring nested dependencies ()
Finished resolution (8 steps) (Took 0.00537 seconds) (2015-02-04 10:24:52 -0600)
Unactivated: 
Activated: SwiftHamcrest, JiveKit, JiveKit/Testing, JiveKit/Core, Alamofire

Comparing resolved specification to the sandbox manifest
  - Alamofire
  - JiveKit
  - SwiftHamcrest

Downloading dependencies

-> Using Alamofire (1.1.4)

-> Using JiveKit (0.1.0)

-> Using SwiftHamcrest (0.1.0)
  - Running pre install hooks

Generating Pods project
  - Creating Pods project
  - Adding source files to Pods project
  - Adding frameworks to Pods project
  - Adding libraries to Pods project
  - Adding resources to Pods project
  - Linking headers
  - Installing targets
    - Installing target `Pods-JiveKitDemo-Alamofire` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemo-Alamofire/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-JiveKitDemo-Alamofire/Pods-JiveKitDemo-Alamofire.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-JiveKitDemo-Alamofire/Pods-JiveKitDemo-Alamofire-umbrella.h`
    - Installing target `Pods-JiveKitDemo-JiveKit` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemo-JiveKit/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-JiveKitDemo-JiveKit/Pods-JiveKitDemo-JiveKit.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-JiveKitDemo-JiveKit/Pods-JiveKitDemo-JiveKit-umbrella.h`
    - Installing target `Pods-JiveKitDemo-SwiftHamcrest` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemo-SwiftHamcrest/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-JiveKitDemo-SwiftHamcrest/Pods-JiveKitDemo-SwiftHamcrest.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-JiveKitDemo-SwiftHamcrest/Pods-JiveKitDemo-SwiftHamcrest-umbrella.h`
    - Installing target `Pods-JiveKitDemoTests-Alamofire` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemoTests-Alamofire/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-JiveKitDemoTests-Alamofire/Pods-JiveKitDemoTests-Alamofire.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-JiveKitDemoTests-Alamofire/Pods-JiveKitDemoTests-Alamofire-umbrella.h`
    - Installing target `Pods-JiveKitDemoTests-JiveKit` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemoTests-JiveKit/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-JiveKitDemoTests-JiveKit/Pods-JiveKitDemoTests-JiveKit.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-JiveKitDemoTests-JiveKit/Pods-JiveKitDemoTests-JiveKit-umbrella.h`
    - Installing target `Pods-JiveKitDemoTests-SwiftHamcrest` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemoTests-SwiftHamcrest/Info.plist`
      - Generating module map file at `Pods/Target Support
      Files/Pods-JiveKitDemoTests-SwiftHamcrest/Pods-JiveKitDemoTests-SwiftHamcrest.modulemap`
      - Generating umbrella header at `Pods/Target Support
      Files/Pods-JiveKitDemoTests-SwiftHamcrest/Pods-JiveKitDemoTests-SwiftHamcrest-umbrella.h`
    - Installing target `Pods-SwiftHamcrest` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-SwiftHamcrest/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-SwiftHamcrest/Pods-SwiftHamcrest.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-SwiftHamcrest/Pods-SwiftHamcrest-umbrella.h`
    - Installing target `Pods` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods/Pods.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods/Pods-umbrella.h`
    - Installing target `Pods-JiveKitDemo` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemo/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo-umbrella.h`
    - Installing target `Pods-JiveKitDemoTests` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemoTests/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-JiveKitDemoTests/Pods-JiveKitDemoTests.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-JiveKitDemoTests/Pods-JiveKitDemoTests-umbrella.h`
  - Running post install hooks
  - Writing Xcode project file to `Pods/Pods.xcodeproj`
  - Writing Lockfile in `Podfile.lock`
  - Writing Manifest in `Pods/Manifest.lock`

Integrating client project

Integrating target `Pods` (`JiveKitDemo/JiveKitDemo.xcodeproj` project)

Integrating target `Pods-JiveKitDemo` (`JiveKitDemo/JiveKitDemo.xcodeproj` project)

Integrating target `Pods-JiveKitDemoTests` (`JiveKitDemo/JiveKitDemo.xcodeproj` project)

[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `JiveKitDemo` to `../Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo.debug.xcconfig` or include the `../Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo.debug.xcconfig` in your build configuration.

[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `JiveKitDemo` to `../Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo.release.xcconfig` or include the `../Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo.release.xcconfig` in your build configuration.

I'm running Xcode Version 6.1.1 (6A2008a). I simply created JiveKit.xcworkspace and added JiveKitDemo.xcodeproj inside it using the "Single View Application" template, then quit Xcode and ran pod install using the files above.

I tried following the instructions in the output, and I noticed that the JiveKitDemo/Pods Group contained no references to the Pods-JiveKitDemo.debug.xcconfig or Pods-JiveKitDemo.release.xcconfig files, so I couldn't set the JiveKitDemo project's base configuration to them. I added the files to the group and then updated the base configuration as instructed. Then, I ran pod install again to make sure there were no more errors, and I got the following new error:

  Preparing
    Migrating to CocoaPods 0.36

Analyzing dependencies

Updating spec repositories
  $ /usr/local/bin/git rev-parse  >/dev/null 2>&1
  $ /usr/local/bin/git rev-parse  >/dev/null 2>&1
Updating spec repo `master`
  $ /usr/local/bin/git pull --ff-only
  Already up-to-date.

Inspecting targets to integrate
  Using `ARCHS` setting to build architectures of target `Pods`: (``)
  Using `ARCHS` setting to build architectures of target `Pods-JiveKitDemo`: (``)
  Using `ARCHS` setting to build architectures of target `Pods-JiveKitDemoTests`: (``)

Finding Podfile changes
  - JiveKit
  - JiveKit/Testing
  - SwiftHamcrest

Fetching external sources
-> Fetching podspec for `JiveKit` from `JiveKit.podspec`
-> Fetching podspec for `SwiftHamcrest` from `Pods-ified/SwiftHamcrest`

Resolving dependencies of `Podfile`
Starting resolution (2015-02-04 10:26:26 -0600)
Creating possibility state for SwiftHamcrest (from `Pods-ified/SwiftHamcrest`) (1 remaining)
  Attempting to activate SwiftHamcrest (0.1.0)
  Activated SwiftHamcrest at SwiftHamcrest (0.1.0)
  Requiring nested dependencies ()
  Creating possibility state for SwiftHamcrest (from `Pods-ified/SwiftHamcrest`) (1 remaining)
    Attempting to activate SwiftHamcrest (0.1.0)
    Found existing spec (SwiftHamcrest (0.1.0))
    Creating possibility state for SwiftHamcrest (from `Pods-ified/SwiftHamcrest`) (1 remaining)
      Attempting to activate SwiftHamcrest (0.1.0)
      Found existing spec (SwiftHamcrest (0.1.0))
      Creating possibility state for JiveKit/Testing (from `JiveKit.podspec`) (1 remaining)
        Attempting to activate JiveKit/Testing (0.1.0)
        Activated JiveKit/Testing at JiveKit/Testing (0.1.0)
        Requiring nested dependencies (JiveKit/Core (= 0.1.0))
        Creating possibility state for JiveKit (from `JiveKit.podspec`) (1 remaining)
          Attempting to activate JiveKit (0.1.0)
          Activated JiveKit at JiveKit (0.1.0)
          Requiring nested dependencies (JiveKit/Core (= 0.1.0))
          Creating possibility state for JiveKit/Core (= 0.1.0) (1 remaining)
            Attempting to activate JiveKit/Core (0.1.0)
            Activated JiveKit/Core at JiveKit/Core (0.1.0)
            Requiring nested dependencies (Alamofire)
            Creating possibility state for JiveKit/Core (= 0.1.0) (1 remaining)
              Attempting to activate JiveKit/Core (0.1.0)
              Found existing spec (JiveKit/Core (0.1.0))
              Creating possibility state for Alamofire (1 remaining)
                Attempting to activate Alamofire (1.1.4)
                Activated Alamofire at Alamofire (1.1.4)
                Requiring nested dependencies ()
Finished resolution (8 steps) (Took 0.005357 seconds) (2015-02-04 10:26:26 -0600)
Unactivated: 
Activated: SwiftHamcrest, JiveKit, JiveKit/Testing, JiveKit/Core, Alamofire

Comparing resolved specification to the sandbox manifest
  - Alamofire
  - JiveKit
  - SwiftHamcrest

Downloading dependencies

-> Using Alamofire (1.1.4)

-> Using JiveKit (0.1.0)

-> Using SwiftHamcrest (0.1.0)
  - Running pre install hooks

Generating Pods project
  - Creating Pods project
  - Adding source files to Pods project
  - Adding frameworks to Pods project
  - Adding libraries to Pods project
  - Adding resources to Pods project
  - Linking headers
  - Installing targets
    - Installing target `Pods-JiveKitDemo-Alamofire` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemo-Alamofire/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-JiveKitDemo-Alamofire/Pods-JiveKitDemo-Alamofire.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-JiveKitDemo-Alamofire/Pods-JiveKitDemo-Alamofire-umbrella.h`
    - Installing target `Pods-JiveKitDemo-JiveKit` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemo-JiveKit/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-JiveKitDemo-JiveKit/Pods-JiveKitDemo-JiveKit.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-JiveKitDemo-JiveKit/Pods-JiveKitDemo-JiveKit-umbrella.h`
    - Installing target `Pods-JiveKitDemo-SwiftHamcrest` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemo-SwiftHamcrest/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-JiveKitDemo-SwiftHamcrest/Pods-JiveKitDemo-SwiftHamcrest.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-JiveKitDemo-SwiftHamcrest/Pods-JiveKitDemo-SwiftHamcrest-umbrella.h`
    - Installing target `Pods-JiveKitDemoTests-Alamofire` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemoTests-Alamofire/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-JiveKitDemoTests-Alamofire/Pods-JiveKitDemoTests-Alamofire.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-JiveKitDemoTests-Alamofire/Pods-JiveKitDemoTests-Alamofire-umbrella.h`
    - Installing target `Pods-JiveKitDemoTests-JiveKit` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemoTests-JiveKit/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-JiveKitDemoTests-JiveKit/Pods-JiveKitDemoTests-JiveKit.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-JiveKitDemoTests-JiveKit/Pods-JiveKitDemoTests-JiveKit-umbrella.h`
    - Installing target `Pods-JiveKitDemoTests-SwiftHamcrest` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemoTests-SwiftHamcrest/Info.plist`
      - Generating module map file at `Pods/Target Support
      Files/Pods-JiveKitDemoTests-SwiftHamcrest/Pods-JiveKitDemoTests-SwiftHamcrest.modulemap`
      - Generating umbrella header at `Pods/Target Support
      Files/Pods-JiveKitDemoTests-SwiftHamcrest/Pods-JiveKitDemoTests-SwiftHamcrest-umbrella.h`
    - Installing target `Pods-SwiftHamcrest` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-SwiftHamcrest/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-SwiftHamcrest/Pods-SwiftHamcrest.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-SwiftHamcrest/Pods-SwiftHamcrest-umbrella.h`
    - Installing target `Pods` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods/Pods.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods/Pods-umbrella.h`
    - Installing target `Pods-JiveKitDemo` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemo/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo-umbrella.h`
    - Installing target `Pods-JiveKitDemoTests` iOS 8.1
      - Generating Info.plist file at `Pods/Target Support Files/Pods-JiveKitDemoTests/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Pods-JiveKitDemoTests/Pods-JiveKitDemoTests.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Pods-JiveKitDemoTests/Pods-JiveKitDemoTests-umbrella.h`
  - Running post install hooks
  - Writing Xcode project file to `Pods/Pods.xcodeproj`
  - Writing Lockfile in `Podfile.lock`
  - Writing Manifest in `Pods/Manifest.lock`

Integrating client project

Integrating target `Pods` (`JiveKitDemo/JiveKitDemo.xcodeproj` project)

Integrating target `Pods-JiveKitDemo` (`JiveKitDemo/JiveKitDemo.xcodeproj` project)

Integrating target `Pods-JiveKitDemoTests` (`JiveKitDemo/JiveKitDemo.xcodeproj` project)

[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `JiveKitDemo` to `../Pods/Target Support Files/Pods/Pods.debug.xcconfig` or include the `../Pods/Target Support Files/Pods/Pods.debug.xcconfig` in your build configuration.

[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `JiveKitDemo` to `../Pods/Target Support Files/Pods/Pods.release.xcconfig` or include the `../Pods/Target Support Files/Pods/Pods.release.xcconfig` in your build configuration.

[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `JiveKitDemo` to `../Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo.debug.xcconfig` or include the `../Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo.debug.xcconfig` in your build configuration.

[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `JiveKitDemo` to `../Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo.release.xcconfig` or include the `../Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo.release.xcconfig` in your build configuration.

Now, I have conflicting warning messages, so I'm not sure this configuration can work at all. This definitely seems like a bug, but maybe there's a better way to handle my goal: to have cocoapods manage my demo project and the tests associated with my demo project.

@hborders
Copy link
Author

hborders commented Feb 4, 2015

I deleted my ~/.cocoapods repository and my DerivedData, and I also removed my SwiftHamcrest development pod, and the errors went away.

Podfile:

workspace 'JiveKit'
xcodeproj 'JiveKitDemo/JiveKitDemo'

source 'https://github.com/CocoaPods/Specs.git'

target :JiveKitDemo do
  pod 'JiveKit', :path => 'JiveKit.podspec'
end

target :JiveKitDemoTests do
  pod 'JiveKit/Testing', :path => 'JiveKit.podspec'
end

JiveKit.podspec:

Pod::Spec.new do |s|
  s.name = 'JiveKit'
  s.version = '0.1.0'
  s.license = { :type => 'Apache License, Version 2.0', :file => 'LICENSE' }
  s.summary = 'Swift SDK for the Jive REST API.'
  s.homepage = 'https://github.com/jivesoftware/JiveKit'
  s.authors = { 'Jive Mobile' => 'jive-mobile@jivesoftware.com' }
  s.source = { :git => 'git@git.jiveland.com:jive-kit', :tag => s.version }

  s.ios.deployment_target = '8.1'
  s.osx.deployment_target = '10.10'

  s.requires_arc = true
  s.default_subspec = 'Core'

  s.subspec 'Core' do |core|
    core.source_files = 'JiveKit/Source/*.swift'
    core.dependency     'Alamofire'
  end

  s.subspec 'Testing' do |testing|
    testing.source_files = 'JiveKit/Testing/*.swift'
    testing.dependency     'JiveKit/Core'
  end
end

However, now when I try to run my tests, I get the following error in the console:

IDEBundleInjection.c: Error 3588 loading bundle '/Users/heath.borders/Library/Developer/Xcode/DerivedData/JiveKit-bwblcgfvjhjzbgaejjbnzcnfmytj/Build/Products/Debug-iphonesimulator/JiveKitDemoTests.xctest': The bundle “JiveKitDemoTests” couldn’t be loaded.
DevToolsBundleInjection environment:
XCInjectDiagnostics: (null)
XCInjectBundleInto: /Users/heath.borders/Library/Developer/Xcode/DerivedData/JiveKit-bwblcgfvjhjzbgaejjbnzcnfmytj/Build/Products/Debug-iphonesimulator/JiveKitDemo.app/JiveKitDemo
XCInjectBundle: /Users/heath.borders/Library/Developer/Xcode/DerivedData/JiveKit-bwblcgfvjhjzbgaejjbnzcnfmytj/Build/Products/Debug-iphonesimulator/JiveKitDemoTests.xctest
TestBundleLocation: /Users/heath.borders/Library/Developer/Xcode/DerivedData/JiveKit-bwblcgfvjhjzbgaejjbnzcnfmytj/Build/Products/Debug-iphonesimulator/JiveKitDemoTests.xctest
TMPDIR: /Users/heath.borders/Library/Developer/CoreSimulator/Devices/FF1092E0-B8FD-42D5-AD7B-67AB5701DCD6/data/Containers/Data/Application/E7518A9E-C346-4435-8288-F1E8FA15DED7/tmp
DYLD_LIBRARY_PATH: /Users/heath.borders/Library/Developer/Xcode/DerivedData/JiveKit-bwblcgfvjhjzbgaejjbnzcnfmytj/Build/Products/Debug-iphonesimulator
DYLD_INSERT_LIBRARIES: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection
DYLD_FRAMEWORK_PATH: /Users/heath.borders/Library/Developer/Xcode/DerivedData/JiveKit-bwblcgfvjhjzbgaejjbnzcnfmytj/Build/Products/Debug-iphonesimulator
DYLD_FALLBACK_LIBRARY_PATH: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib
DYLD_FALLBACK_FRAMEWORK_PATH: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks


*** Test session exited(83) without checking in. Executable fails due to linking. If you believe this error represents a bug, please attach the log file at /var/folders/k9/pfhv0hgd5_b4tm8fm1xmjmx496st3c/T/com.apple.dt.XCTest-status/Session-2015-02-04_11:26:11-LUJbcy.log

/var/folders/k9/pfhv0hgd5_b4tm8fm1xmjmx496st3c/T/com.apple.dt.XCTest-status/Session-2015-02-04_11:26:11-LUJbcy.log:

2015-02-04 11:26:11.268 Beginning test session with Xcode 6A2008a
2015-02-04 11:26:11.269 Testing on device: <DVTiPhoneSimulator: 0x7f84afee6680> {
        SimDevice: SimDevice : iPhone 6 (FF1092E0-B8FD-42D5-AD7B-67AB5701DCD6) : state={ Booted } deviceType={ SimDeviceType : com.apple.CoreSimulator.SimDeviceType.iPhone-6 } runtime={ SimRuntime : 8.1 (12B411) - com.apple.CoreSimulator.SimRuntime.iOS-8-1 }
}
2015-02-04 11:26:11.269 Writing testing status log to /var/folders/k9/pfhv0hgd5_b4tm8fm1xmjmx496st3c/T/com.apple.dt.XCTest-status/Session-2015-02-04_11:26:11-LUJbcy.log.
2015-02-04 11:26:11.269 Initializing test infrastructure.
2015-02-04 11:26:11.302 Creating the connection.
2015-02-04 11:26:11.302 Listening for proxy connection request from the test bundle (all platforms)
2015-02-04 11:26:11.302 Resuming the connection.
2015-02-04 11:26:11.302 Test connection requires daemon assistance.
2015-02-04 11:26:11.302 Checking test manager availability..., will wait up to 120s
2015-02-04 11:26:12.420 testmanagerd handled session request.
2015-02-04 11:26:12.420 Waiting for test process to launch.
2015-02-04 11:26:50.413 Launch session started, setting a disallow-finish-token on the run operation.
2015-02-04 11:26:50.418 Waiting for test process to check in..., will wait up to 120s
2015-02-04 11:26:50.448 Adding console adaptor for test process.

**** Begin output from test process:
IDEBundleInjection.c: Error 3588 loading bundle '/Users/heath.borders/Library/Developer/Xcode/DerivedData/JiveKit-bwblcgfvjhjzbgaejjbnzcnfmytj/Build/Products/Debug-iphonesimulator/JiveKitDemoTests.xctest': The bundle “JiveKitDemoTests” couldn’t be loaded.
DevToolsBundleInjection environment:
XCInjectDiagnostics: (null)
XCInjectBundleInto: /Users/heath.borders/Library/Developer/Xcode/DerivedData/JiveKit-bwblcgfvjhjzbgaejjbnzcnfmytj/Build/Products/Debug-iphonesimulator/JiveKitDemo.app/JiveKitDemo
XCInjectBundle: /Users/heath.borders/Library/Developer/Xcode/DerivedData/JiveKit-bwblcgfvjhjzbgaejjbnzcnfmytj/Build/Products/Debug-iphonesimulator/JiveKitDemoTests.xctest
TestBundleLocation: /Users/heath.borders/Library/Developer/Xcode/DerivedData/JiveKit-bwblcgfvjhjzbgaejjbnzcnfmytj/Build/Products/Debug-iphonesimulator/JiveKitDemoTests.xctest
TMPDIR: /Users/heath.borders/Library/Developer/CoreSimulator/Devices/FF1092E0-B8FD-42D5-AD7B-67AB5701DCD6/data/Containers/Data/Application/E7518A9E-C346-4435-8288-F1E8FA15DED7/tmp
DYLD_LIBRARY_PATH: /Users/heath.borders/Library/Developer/Xcode/DerivedData/JiveKit-bwblcgfvjhjzbgaejjbnzcnfmytj/Build/Products/Debug-iphonesimulator
DYLD_INSERT_LIBRARIES: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection
DYLD_FRAMEWORK_PATH: /Users/heath.borders/Library/Developer/Xcode/DerivedData/JiveKit-bwblcgfvjhjzbgaejjbnzcnfmytj/Build/Products/Debug-iphonesimulator
DYLD_FALLBACK_LIBRARY_PATH: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib
DYLD_FALLBACK_FRAMEWORK_PATH: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks
**** End output from test process

2015-02-04 11:26:54.669 Test operation failure: Test session exited(83) without checking in. Executable fails due to linking.
2015-02-04 11:26:54.669 _finishWithError:Error Domain=IDEUnitTestsOperationsObserverErrorDomain Code=3 "Test session exited(83) without checking in. Executable fails due to linking." UserInfo=0x7f84b49ab600 {NSLocalizedDescription=Test session exited(83) without checking in. Executable fails due to linking.} didCancel: 1

I'm guessing that there are duplicate symbols in JiveKitDemo and JiveKitDemoTests. I'm trying to create a 'Testing' subspec that contains test helpers that depend on the 'Core' subspec. Maybe there's a better way.

@kylef
Copy link
Contributor

kylef commented Feb 19, 2015

@hborders Could you try both cleaning and deleting derived data before trying to run the tests.

@kylef kylef added the s1:awaiting input Waiting for input from the original author label Feb 19, 2015
@michaelmcguire
Copy link

Odd: if you do a search for a Google search for "Error 3588 loading bundle" this is literally the only hit. I'm also experiencing this problem but it was after changing the version of a pod (CocoaLumberjack from 2.0.0-rc2 back to 1.9.2). Now I get the above error about injecting the XCTest bundle when trying to run tests on iOS 7 in the simulator. It works fine in iOS 8. Before changing the version back, it worked on all iOS simulator versions.

If I git stash my changes and go back to my previous setup, things still work fine. I have tried resetting the simulator, deleting DerivedData, everything. :-(

@michaelmcguire
Copy link

I discovered my issue after running on an iOS 7 device, as opposed to the simulator. It was caused by this issue related to Apple's mistake in asl.h. (see: Cocoanetics/DTFoundation#69 and related issues)

Doesn't seem related in any way to what you are experiencing, but wanted to give the update.

@kylef
Copy link
Contributor

kylef commented Mar 30, 2015

This is because you have pods in the implicit Pod target and explicit Pod target. The implicit target will be integrated into the same target that your explicit targets JiveKitDemo and JiveKitDemoTests are integrated with. It's not possible to integrate two targets in a Podfile into a single target in your Xcode project.

You can notice this by the warnings at the end of pod install which indicate that the target containing SwiftHamcreset couldn't be integrated because you already have JiveKitDemo and JiveKitDemoTests integrated.

[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `JiveKitDemo` to `../Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo.debug.xcconfig` or include the `../Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo.debug.xcconfig` in your build configuration.

[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target `JiveKitDemo` to `../Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo.release.xcconfig` or include the `../Pods/Target Support Files/Pods-JiveKitDemo/Pods-JiveKitDemo.release.xcconfig` in your build configuration.

To solve this problem, move the Pod in the implicit Pod target into each target instead, as follows:

source 'https://github.com/CocoaPods/Specs.git'
workspace 'JiveKit'
xcodeproj 'JiveKitDemo/JiveKitDemo'

target :JiveKitDemo do
  pod 'SwiftHamcrest', :path => 'Pods-ified/SwiftHamcrest'
  pod 'JiveKit', :path => 'JiveKit.podspec'
end

target :JiveKitDemoTests do
  pod 'SwiftHamcrest', :path => 'Pods-ified/SwiftHamcrest'
  pod 'JiveKit/Testing', :path => 'JiveKit.podspec'
end

Currently the Podfile syntax allows you to attempt to do this but it's not possible. CocoaPods won't let you do this when #840 is complete.

@kylef kylef closed this as completed Mar 30, 2015
@TGOS
Copy link

TGOS commented Nov 6, 2015

I'm very confused here, Kyle. Basically you say that the :exclusive flag is meaningless. This flag is for suppressing a behavior that according your answer doesn't work anyway.

The target will by default include the dependencies defined outside of the block, unless the :exclusive => true option is given.

This is just not true then. It will not inherit them. Instead they will conflict with each other.

@kylef
Copy link
Contributor

kylef commented Nov 6, 2015

@TGOS I never mentioned the :exclusive flag.

@TGOS
Copy link

TGOS commented Nov 6, 2015

@kylef You said that it is not possible to have pods in exclusive and inclusive targets at the same time. You said that this is not possible (= not going to work):

pod 'ABC'
  target :XYZ do
  pod 'EFG'
end

According to documentation it is. According to documentation a Podfile like above means that XYZ is liked against both, ABC and EFG. According to documentation, if you don't want that to happen, you must write:

pod 'ABC'
  target :XYZ, :exclusive => true do
  pod 'EFG'
end

But if only the exclusive sample above works as well as the following:

target :XYZ do
  pod 'ABC'
  pod 'EFG'
end

Then the exclusive flag is meaningless, because per target pod settings must always be exclusive, everything else cannot even work. That means the exclusive flag is a flag to suppress behavior that isn't even supported in the first place.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
s1:awaiting input Waiting for input from the original author
Projects
None yet
Development

No branches or pull requests

4 participants