braintree_ios: 3DS 2.0 archive builds (w/ Carthage) fail with error: "Failed to verify bitcode in CardinalMobile.framework"

General information

  • SDK/Library version:

3ds-2-beta.2 branch.

  • Environment:

Distribution builds using Carthage.

  • iOS Version and Device:

Building with Xcode 10.2 on macOS Mojave.

  • Integration type and version:

Carthage 0.33.0

Issue description

When performing a distribution build (‘archive’ configuration in Xcode), exporting fails on bitcode verification in CardinalMobile.framework. It looks like it contains i386 symbols in the binary.

Presumably there should be a step to strip these out of the CardinalMobile framework. We’re currently using Carthage for builds. I’m thinking this should be handled by the copy-frameworks script step of Carthage.

But, adding $(SRCROOT)/Carthage/Build/iOS/BraintreePaymentFlow.framework/CardinalMobile.framework to Carthage copy-frameworks input file list, and $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/CardinalMobile.framework to the output files list does not fix the issue.

Is this possibly an issue in the bitcode configuration in the way the upstream CardinalMobile.framework has been built?

Build output logs:

❌ error: exportArchive: Failed to verify bitcode in CardinalMobile.framework/CardinalMobile:

❌ error: Cannot extract bundle from /var/folders/6q/wgy6jtp12w5gzgm9lzcglpqw0000gn/T/XcodeDistPipeline.~~~pEygPm/Root/Payload/MyApp.app/Frameworks/BraintreePaymentFlow.framework/CardinalMobile.framework/CardinalMobile (i386)

❌ error: Cannot extract bundle from /var/folders/6q/wgy6jtp12w5gzgm9lzcglpqw0000gn/T/XcodeDistPipeline.~~~pEygPm/Root/Payload/MyApp.app/Frameworks/BraintreePaymentFlow.framework/CardinalMobile.framework/CardinalMobile (i386)

❌ error: Cannot extract bundle from /var/folders/6q/wgy6jtp12w5gzgm9lzcglpqw0000gn/T/XcodeDistPipeline.~~~pEygPm/Root/Payload/MyApp.app/Frameworks/BraintreePaymentFlow.framework/CardinalMobile.framework/CardinalMobile (i386)

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 17 (7 by maintainers)

Most upvoted comments

Can confirm, fixed with braintree_ios version 4.26.3 (CardinalMobile 2.1.4-2)

@bull-xu Could you open a new GitHub issue for this? The original problem in this issue is specific to Carthage, so I think we should treat the AppCenter build failures you’re experiencing as a separate issue.

Hi @sestevens, I open a new thread for the issue: https://github.com/braintree/braintree_ios/issues/467 And thanks again for your reminding.