AppsFlyerSDK / AppsFlyerFramework

AppsFlyer Apple SDK
https://support.appsflyer.com/hc/en-us/articles/207032066-AppsFlyer-SDK-Integration-iOS
Other
164 stars 89 forks source link

[Xcode 12.5][SPM] - Error: Multiple commands produce AppsFlyerLib.framework #177

Closed Panajev closed 2 years ago

Panajev commented 3 years ago

Report

SDK Version

6.3.1

What did you do?

What did you expect to happen?

App to be rebuilt and retested

What happened instead?

The following error appeared in the Xcode build logs and the build failed

Showing Recent Issues Multiple commands produce '/Users//Library/Developer/Xcode/DerivedData/AppT-bzlsvkhgxozrnyetthhbbuurxmwt/Build/Products/Debug-iphonesimulator/AppsFlyerLib.framework': 1) Command: ProcessXCFramework /Users//Library/Developer/Xcode/DerivedData/AppT-bzlsvkhgxozrnyetthhbbuurxmwt/SourcePackages/checkouts/AppsFlyerFramework/AppsFlyerLib.xcframework /Users//Library/Developer/Xcode/DerivedData/AppT-bzlsvkhgxozrnyetthhbbuurxmwt/Build/Products/Debug-iphonesimulator/AppsFlyerLib.framework ios simulator 2) Command: ProcessXCFramework /Users//Library/Developer/Xcode/DerivedData/AppT-bzlsvkhgxozrnyetthhbbuurxmwt/SourcePackages/checkouts/AppsFlyerFramework/Strict/AppsFlyerLib.xcframework /Users//Library/Developer/Xcode/DerivedData/AppT-bzlsvkhgxozrnyetthhbbuurxmwt/Build/Products/Debug-iphonesimulator/AppsFlyerLib.framework ios simulator

Please provide any other relevant information.

Issue only appeared when I updated to the very recent v6.3.1 release of this framework.

Workflow notes

Deleting derived data or cleaning the project do allow the build to proceed successfully, but it is not a desirable dev workflow.

Related links

149

176

Panajev commented 3 years ago

@af-fess @andr-ggn it seems there are changes to the SwiftPM targets dealing with the "regular" and the "Strict" frameworks in the diff between the two latest tags: https://github.com/AppsFlyerSDK/AppsFlyerFramework/compare/6.3.0...6.3.1

TimPapler commented 3 years ago

Hello, did you try cleaning and then building?

Panajev commented 3 years ago

Hello @TimPapler

Deleting derives data or cleaning the project in Xcode is a workaround for this problem and does allow you to build again (you are bringing the project at the state of the first time you attempted to build it and it does build the first time), but it means my team or I have to do it every build as a clean build (or delete that dependency and resolve dependencies again for every build which is a bit slow) as this just happens again the next time I build.

It is unfortunately not a viable workflow nor something the 6.3.0 release had :/.

pushchris commented 3 years ago

Experiencing this same issue as well. Have to delete derived data at a fairly regular interval to have builds complete

JMCPH commented 3 years ago

What is the status on this issue?

lcoderre commented 3 years ago

We do have the same issues, and booting Xcode from a clean derivedData does not necessarily help. Switching destination simulator or randomly cleaning sometimes solves the issue, but it always comes back. Halp plz :)

Xcode 12.5 as well.

Panajev commented 3 years ago

Hello @af-fess @andr-ggn @GM-appsflyer sorry for the ping, but is there any update you have on this issue?

andr-ggn commented 3 years ago
swwol commented 3 years ago

Also having this issue on Xcode 12.5

Panajev commented 3 years ago

Hello @andr-ggn , no I have not tried to delete the ~/Library/Caches/org.swift.swiftpm/ folder. Is this something you suggest doing every build though? Clearing derived data will also solve the problem if I do it per build and it is something 6.3.0 does not suffer from.

Here is the package.resolved file (the AppsFlyer version was version 6.3.1 last time):

{
  "object": {
    "pins": [
      {
        "package": "abseil",
        "repositoryURL": "https://github.com/firebase/abseil-cpp-SwiftPM.git",
        "state": {
          "branch": null,
          "revision": "fffc3c2729be5747390ad02d5100291a0d9ad26a",
          "version": "0.20200225.4"
        }
      },
      {
        "package": "AppsFlyerLib",
        "repositoryURL": "https://github.com/AppsFlyerSDK/AppsFlyerFramework.git",
        "state": {
          "branch": null,
          "revision": "bf8e8a26a247107464ecd9d86c62931c5139435e",
          "version": "6.3.0"
        }
      },
      {
        "package": "BoringSSL-GRPC",
        "repositoryURL": "https://github.com/firebase/boringssl-SwiftPM.git",
        "state": {
          "branch": null,
          "revision": "734a8247442fde37df4364c21f6a0085b6a36728",
          "version": "0.7.2"
        }
      },
      {
        "package": "Connectivity",
        "repositoryURL": "https://github.com/rwbutler/Connectivity",
        "state": {
          "branch": null,
          "revision": "19f08ea4f25efe44cceea2ed5c52a0ca1bb567b5",
          "version": "5.0.1"
        }
      },
      {
        "package": "CryptoSwift",
        "repositoryURL": "https://github.com/krzyzanowskim/CryptoSwift",
        "state": {
          "branch": null,
          "revision": "4e31051c63cc0ddf10a25cf5318856c510cf77f4",
          "version": "1.4.0"
        }
      },
      {
        "package": "CwlCatchException",
        "repositoryURL": "https://github.com/mattgallagher/CwlCatchException.git",
        "state": {
          "branch": null,
          "revision": "682841464136f8c66e04afe5dbd01ab51a3a56f2",
          "version": "2.1.0"
        }
      },
      {
        "package": "CwlPreconditionTesting",
        "repositoryURL": "https://github.com/mattgallagher/CwlPreconditionTesting.git",
        "state": {
          "branch": null,
          "revision": "02b7a39a99c4da27abe03cab2053a9034379639f",
          "version": "2.0.0"
        }
      },
      {
        "package": "Firebase",
        "repositoryURL": "https://github.com/firebase/firebase-ios-sdk.git",
        "state": {
          "branch": null,
          "revision": "91cf599d0b6bcd4b2e92eecc6f8e57754ab16480",
          "version": "8.1.1"
        }
      },
      {
        "package": "GoogleAppMeasurement",
        "repositoryURL": "https://github.com/google/GoogleAppMeasurement.git",
        "state": {
          "branch": null,
          "revision": "8f2945122bef809c963a619a598c3ac390c2163a",
          "version": "8.1.1"
        }
      },
      {
        "package": "GoogleDataTransport",
        "repositoryURL": "https://github.com/google/GoogleDataTransport.git",
        "state": {
          "branch": null,
          "revision": "369716b8d7518a530ce3c3a251436d72546debd8",
          "version": "8.4.0"
        }
      },
      {
        "package": "GoogleUtilities",
        "repositoryURL": "https://github.com/google/GoogleUtilities.git",
        "state": {
          "branch": null,
          "revision": "5b9fc55628b94740b9666a558570f3a89a626c3d",
          "version": "7.4.2"
        }
      },
      {
        "package": "gRPC",
        "repositoryURL": "https://github.com/firebase/grpc-SwiftPM.git",
        "state": {
          "branch": null,
          "revision": "fb405dd2c7901485f7e158b24e3a0a47e4efd8b5",
          "version": "1.28.4"
        }
      },
      {
        "package": "GTMSessionFetcher",
        "repositoryURL": "https://github.com/google/gtm-session-fetcher.git",
        "state": {
          "branch": null,
          "revision": "91ed3d188eb95705fef3c249453b81f32dc557d1",
          "version": "1.5.0"
        }
      },
      {
        "package": "Instructions",
        "repositoryURL": "https://github.com/ephread/Instructions",
        "state": {
          "branch": null,
          "revision": "0031e6d57a78086f0273db9134130140bb8e3bc7",
          "version": "2.1.0"
        }
      },
      {
        "package": "leveldb",
        "repositoryURL": "https://github.com/firebase/leveldb.git",
        "state": {
          "branch": null,
          "revision": "0706abcc6b0bd9cedfbb015ba840e4a780b5159b",
          "version": "1.22.2"
        }
      },
      {
        "package": "Lottie",
        "repositoryURL": "https://github.com/airbnb/lottie-ios",
        "state": {
          "branch": null,
          "revision": "79a0b70547f7c40ea54c67487f935fa2f2eaaadc",
          "version": "3.2.3"
        }
      },
      {
        "package": "nanopb",
        "repositoryURL": "https://github.com/firebase/nanopb.git",
        "state": {
          "branch": null,
          "revision": "7ee9ef9f627d85cbe1b8c4f49a3ed26eed216c77",
          "version": "2.30908.0"
        }
      },
      {
        "package": "Nimble",
        "repositoryURL": "https://github.com/Quick/Nimble.git",
        "state": {
          "branch": null,
          "revision": "af1730dde4e6c0d45bf01b99f8a41713ce536790",
          "version": "9.2.0"
        }
      },
      {
        "package": "OHHTTPStubs",
        "repositoryURL": "https://github.com/AliSoftware/OHHTTPStubs",
        "state": {
          "branch": "master",
          "revision": "12f19662426d0434d6c330c6974d53e2eb10ecd9",
          "version": null
        }
      },
      {
        "package": "Promises",
        "repositoryURL": "https://github.com/google/promises.git",
        "state": {
          "branch": null,
          "revision": "afa9a1ace74e116848d4f743599ab83e584ff8cb",
          "version": "1.2.12"
        }
      },
      {
        "package": "Quick",
        "repositoryURL": "https://github.com/Quick/Quick.git",
        "state": {
          "branch": null,
          "revision": "bd86ca0141e3cfb333546de5a11ede63f0c4a0e6",
          "version": "4.0.0"
        }
      },
      {
        "package": "SDWebImage",
        "repositoryURL": "https://github.com/SDWebImage/SDWebImage.git",
        "state": {
          "branch": null,
          "revision": "76dd4b49110b8624317fc128e7fa0d8a252018bc",
          "version": "5.11.1"
        }
      },
      {
        "package": "SDWebImageSwiftUI",
        "repositoryURL": "https://github.com/SDWebImage/SDWebImageSwiftUI.git",
        "state": {
          "branch": null,
          "revision": "cd8625b7cf11a97698e180d28bb7d5d357196678",
          "version": "2.0.2"
        }
      },
      {
        "package": "SnapKit",
        "repositoryURL": "https://github.com/SnapKit/SnapKit",
        "state": {
          "branch": null,
          "revision": "d458564516e5676af9c70b4f4b2a9178294f1bc6",
          "version": "5.0.1"
        }
      },
      {
        "package": "Dynatrace",
        "repositoryURL": "https://github.com/Dynatrace/swift-mobile-sdk.git",
        "state": {
          "branch": null,
          "revision": "0aab8d0444a8a3738154ea5a4b744d9ac14379f8",
          "version": "8.219.1"
        }
      },
      {
        "package": "SwiftProtobuf",
        "repositoryURL": "https://github.com/apple/swift-protobuf.git",
        "state": {
          "branch": null,
          "revision": "1f62db409f2c9b0223a3f68567b4a01333aae778",
          "version": "1.17.0"
        }
      },
      {
        "package": "Zip",
        "repositoryURL": "https://github.com/marmelroy/Zip.git",
        "state": {
          "branch": null,
          "revision": "bd19d974e8a38cc8d3a88c90c8a107386c3b8ccf",
          "version": "2.1.1"
        }
      },
      {
        "package": "ZIPFoundation",
        "repositoryURL": "https://github.com/weichsel/ZIPFoundation.git",
        "state": {
          "branch": null,
          "revision": "cf10bbff6ac3b873e97b36b9784c79866a051a8e",
          "version": "0.9.12"
        }
      }
    ]
  },
  "version": 1
}
Panajev commented 3 years ago

I have now tried to delete the Caches folder you specified @andr-ggn , rebuilt the app and got the same error again. Reverting back to 6.3.0 (tried 6.3.2 too).

joshuapoq commented 3 years ago

This is quite a painful issue. May have to follow but also fix our integration to exact versioning until this is resolved.

PorterHoskins commented 3 years ago

Yeah this is real bad

gooson commented 3 years ago

so painful...

skarol commented 3 years ago

Having the same problem. Cleaning the build folder helps temporarly. I've noticed that every time I switch simulator I got an error, have to clean, it builds fine, and when I switch simulator same stuff happens.

teanet commented 3 years ago

Having the same problem. Cleaning the build folder helps temporarly. I've noticed that every time I switch simulator I got an error, have to clean, it builds fine, and when I switch simulator same stuff happens.

No need clean, just relaunch Xcode, it helps

Panajev commented 3 years ago

Having the same problem. Cleaning the build folder helps temporarly. I've noticed that every time I switch simulator I got an error, have to clean, it builds fine, and when I switch simulator same stuff happens.

No need clean, just relaunch Xcode, it helps

Still... hopefully it gets sorted, it is still a quite bad user experience.

TimPapler commented 3 years ago

It seems more like a Xcode issue than issue of the library, maybe everyone should file a radar.

Panajev commented 3 years ago

That too, but it is a regression. The previous version was fine, the latest has this behaviour on both Xcode 12.5 and Xcode 13… :/.

Sent from my iPhone

On 23 Jun 2021, at 12:32, Timotej Papler @.***> wrote:

 It seems more like a Xcode issue than issue of the creator of the library, maybe everyone should file a radar.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

mathaeus commented 3 years ago

We are also experiencing this issue on 6.3.2, 6.3.0 was fine. We can't go back to 6.3.0 because of business requirements. Any update on this @andr-ggn?

andr-ggn commented 3 years ago

It happens because XCode is trying to pick up two versions of our SDK - Regular and Strict. Please check these places:

– Remove AppsFlyerFramework from Packages

Screenshot 2021-06-27 at 10 08 10

– Clean ~/Library/Caches/org.swift.swiftpm/

– Add back and check only one SDK version

Screenshot 2021-06-27 at 10 10 55

– Check Frameworks, Libraries, and Embedded Content:

Screenshot 2021-06-27 at 10 12 56
Panajev commented 3 years ago

Hello Andrey,

I have done as you suggested (removed AppsFlyer, cleaned, re-added it and selected only one of the SDK types, and on a subsequent build this problem happened again. I will retry again today double checking my steps and report back.

Sent from my iPhone

On 27 Jun 2021, at 08:17, Andrey Gagan @.***> wrote:

 It happens because XCode is trying to pick up two versions of our SDK - Regular and Strict. Please check these places:

– Remove AppsFlyerFramework from Packages

– Clean ~/Library/Caches/org.swift.swiftpm/

– Add back and check only one SDK version

– Check Frameworks, Libraries, and Embedded Content:

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

mathaeus commented 3 years ago

@andr-ggn thanks for the information.

Unfortunately this also doesn't solve the issue for me. I did the steps you mentioned. First build is fine. Then I want to run the tests for the same target and the error message is back immediately.

andr-ggn commented 3 years ago

@mathaeus What happen if you add AppsFlyerLib into your test target(Link Binary With Libraries)

Panajev commented 3 years ago

The problem is to have to rebuild the project each time (it does not affect version 6.3.0, which works fine for us, but 6.3.1+).

Sent from my iPhone

On 27 Jun 2021, at 22:16, Denis Mullaraj @.***> wrote:

 Toggling the Build Active Architecture in Build Settings from YES to NO and viceversa and then rebuild the project helped get rid of the issue. I bumped from 6.0.0 to 6.3.0 never less and I don't have the issue right now.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

mathaeus commented 3 years ago

What happen if you add AppsFlyerLib into your test target(Link Binary With Libraries)

@andr-ggn Doesn't seem to make a difference unfortunately.

mathaeus commented 3 years ago

@andr-ggn is there a way to distribute the Strict version of your SDK in an own Swift package as long as this issue is not solved in Xcode? (Just suggesting one "obvious" workaround)

JMCPH commented 3 years ago

@andr-ggn what's the status on this issue?

gafurovmsk commented 3 years ago

+1 up the issue

domagojstankovic commented 3 years ago

+1

Ewg777 commented 3 years ago

@andr-ggn any estimates?

andr-ggn commented 3 years ago

Can you check 6.3.3? We temporary moved Strict into separate Package.swift

mathaeus commented 3 years ago

@andr-ggn 6.3.3 is working fine for us 🎉

domagojstankovic commented 3 years ago

6.3.3 builds successfully 🎊

JMCPH commented 3 years ago

I can confirm the 6.3.3 works with SPM 🥳

rogerluan commented 3 years ago

I can also confirm 6.3.3 works 💪 didn't even have to clean Xcode again, simply upgrade and build 🎉

Panajev commented 3 years ago

Checked v6.3.3 and did all I could to try to make it break again, but it works 😀!!! Thanks!

rogerluan commented 3 years ago

I think this issue can be closed already 👌