Cocoalumberjack: Multiple identically-named targets are built via Carthage in a non-deterministic order

Created on 27 Sep 2016  ·  2Comments  ·  Source: CocoaLumberjack/CocoaLumberjack

New Issue Checklist

N/A

Issue Description and Steps

Please fill in the detailed description of the issue (full output of any stack trace, compiler error, ...) and the steps to reproduce the issue.


Currently, Lumberjack.xcworkspace has two targets that build a framework named CocoaLumberjack.framework and support the iphoneos architecture:

  • The universal CocoaLumberjack target
  • The iOS-specific CocoaLumberjack-iOS target

When CocoaLumberjack is built via Carthage, the build ordering is nondeterministic. As such, depending on the order that carthage builds in, you will either end up with the universal or platform-specific framework in your Carthage/Build directory.

Ideally, to resolve this, there would _not_ be multiple targets that produce identically-named products that support the same architecture.

Here's some logs from two invocations of carthage build on Carthage 0.18:

➜ carthage build CocoaLumberjack --platform ios
*** xcodebuild output can be found in /var/folders/9s/rl0z7g591cs9frc53y6cbpzm0000gp/T/carthage-xcodebuild.aUzRnB.log
*** Building scheme "CocoaLumberjack" in Lumberjack.xcworkspace
*** Building scheme "CocoaLumberjack-iOS" in Lumberjack.xcworkspace
*** Building scheme "CocoaLumberjackSwift-iOS" in Lumberjack.xcworkspace
*** Building scheme "CocoaLumberjackSwift" in Lumberjack.xcworkspace
➜  carthage build CocoaLumberjack --platform iOS
*** xcodebuild output can be found in /var/folders/9s/rl0z7g591cs9frc53y6cbpzm0000gp/T/carthage-xcodebuild.8atmBi.log
*** Building scheme "CocoaLumberjackSwift-iOS" in Lumberjack.xcworkspace
*** Building scheme "CocoaLumberjack" in Lumberjack.xcworkspace
*** Building scheme "CocoaLumberjack-iOS" in Lumberjack.xcworkspace
*** Building scheme "CocoaLumberjackSwift" in Lumberjack.xcworkspace

You can see above that the frameworks are being built in a nondeterministic ordering, which will end up with it being undefined whether you get the universal or iOS-specific framework in your Carthage/Build/iOS directory.

Most helpful comment

@bpoplauschi
Yes, that's right! Thanks to @erichoracek's great suggestion, I was able to fix this😁

@erichoracek
Thanks!

All 2 comments

Should be fixed by #819.
Right, @sushichop?

@bpoplauschi
Yes, that's right! Thanks to @erichoracek's great suggestion, I was able to fix this😁

@erichoracek
Thanks!

Was this page helpful?
0 / 5 - 0 ratings