eas-cli: error: emit-module command failed with exit code 1 when building a simulator build.

Build/Submit details page URL

https://expo.dev/accounts/zeal-pay/projects/zeal-brgr/builds/5abb0988-ffa7-4d25-885e-94976cbd181e

Summary

when building a simulator build ios.simulator: true

I get the following error

[RUN_FASTLANE] › Packaging Pods/CocoaAsyncSocket » libCocoaAsyncSocket.a
[RUN_FASTLANE]
❌  error: emit-module command failed with exit code 1 (use -v to see invocation)


[RUN_FASTLANE]
❌  (../../node_modules/react-native-paymob/ios/Paymob.swift:3:8)

  1 | import Foundation
  2 | import UIKit
> 3 | import AcceptSDK
    |        ^ no such module 'AcceptSDK'
  4 |
  5 | @objc(Paymob)
  6 | class Paymob: RCTEventEmitter, AcceptSDKDelegate {

[RUN_FASTLANE] › Compiling react-native-paymob Pods/react-native-paymob » Paymob.swift
[RUN_FASTLANE]
❌  (../../node_modules/react-native-paymob/ios/Paymob.swift:3:8)

  1 | import Foundation
  2 | import UIKit
> 3 | import AcceptSDK
    |        ^ no such module 'AcceptSDK'
  4 |
  5 | @objc(Paymob)
  6 | class Paymob: RCTEventEmitter, AcceptSDKDelegate {

[RUN_FASTLANE]
❌  error: emit-module command failed with exit code 1 (use -v to see invocation)


[RUN_FASTLANE] › Compiling react-native-paymob Pods/react-native-paymob » Paymob.swift
[RUN_FASTLANE]
❌  (../../node_modules/react-native-paymob/ios/Paymob.swift:3:8)

  1 | import Foundation
  2 | import UIKit
> 3 | import AcceptSDK
    |        ^ no such module 'AcceptSDK'
  4 |
  5 | @objc(Paymob)
  6 | class Paymob: RCTEventEmitter, AcceptSDKDelegate {

[RUN_FASTLANE]
❌  (../../node_modules/react-native-paymob/ios/Paymob.swift:3:8)

  1 | import Foundation
  2 | import UIKit
> 3 | import AcceptSDK
    |        ^ no such module 'AcceptSDK'
  4 |
  5 | @objc(Paymob)
  6 | class Paymob: RCTEventEmitter, AcceptSDKDelegate {

this happens only when ios.simulator: true I tried to reproduce without it but it worked fine.

Managed or bare?

both

Environment


  expo-env-info 1.0.5 environment info:
    System:
      OS: macOS 12.4
      Shell: 5.8.1 - /bin/zsh
    Binaries:
      Node: 16.14.0 - ~/.n/bin/node
      Yarn: 1.22.5 - ~/.yarn/bin/yarn
      npm: 8.3.1 - ~/.n/bin/npm
      Watchman: 4.9.0 - /opt/homebrew/bin/watchman
    Managers:
      CocoaPods: 1.11.3 - /usr/local/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 21.4, iOS 15.5, macOS 12.3, tvOS 15.4, watchOS 8.5
      Android SDK:
        API Levels: 29, 30, 31
        Build Tools: 29.0.2, 30.0.2, 30.0.3, 31.0.0
        System Images: android-29 | Intel x86 Atom, android-29 | Google APIs Intel x86 Atom, android-31 | Google Play ARM 64 v8a
    IDEs:
      Android Studio: 2021.1 AI-211.7628.21.2111.8092744
      Xcode: 13.4.1/13F100 - /usr/bin/xcodebuild
    npmPackages:
      react-dom: 18.0.0 => 18.0.0
    npmGlobalPackages:
      eas-cli: 1.0.0
      expo-cli: 6.0.5
    Expo Workflow: managed

🎉 Didn't find any issues with the project!

Error output


[RUN_FASTLANE] › Packaging Pods/CocoaAsyncSocket » libCocoaAsyncSocket.a
[RUN_FASTLANE]
❌  error: emit-module command failed with exit code 1 (use -v to see invocation)


[RUN_FASTLANE]
❌  (../../node_modules/react-native-paymob/ios/Paymob.swift:3:8)

  1 | import Foundation
  2 | import UIKit
> 3 | import AcceptSDK
    |        ^ no such module 'AcceptSDK'
  4 |
  5 | @objc(Paymob)
  6 | class Paymob: RCTEventEmitter, AcceptSDKDelegate {

[RUN_FASTLANE] › Compiling react-native-paymob Pods/react-native-paymob » Paymob.swift
[RUN_FASTLANE]
❌  (../../node_modules/react-native-paymob/ios/Paymob.swift:3:8)

  1 | import Foundation
  2 | import UIKit
> 3 | import AcceptSDK
    |        ^ no such module 'AcceptSDK'
  4 |
  5 | @objc(Paymob)
  6 | class Paymob: RCTEventEmitter, AcceptSDKDelegate {

[RUN_FASTLANE]
❌  error: emit-module command failed with exit code 1 (use -v to see invocation)


[RUN_FASTLANE] › Compiling react-native-paymob Pods/react-native-paymob » Paymob.swift
[RUN_FASTLANE]
❌  (../../node_modules/react-native-paymob/ios/Paymob.swift:3:8)

  1 | import Foundation
  2 | import UIKit
> 3 | import AcceptSDK
    |        ^ no such module 'AcceptSDK'
  4 |
  5 | @objc(Paymob)
  6 | class Paymob: RCTEventEmitter, AcceptSDKDelegate {

[RUN_FASTLANE]
❌  (../../node_modules/react-native-paymob/ios/Paymob.swift:3:8)

  1 | import Foundation
  2 | import UIKit
> 3 | import AcceptSDK
    |        ^ no such module 'AcceptSDK'
  4 |
  5 | @objc(Paymob)
  6 | class Paymob: RCTEventEmitter, AcceptSDKDelegate {

Reproducible demo or steps to reproduce from a blank project

  • start a new expo project
  • install my custom package
  • yarn add react-native-paymob
  • build a simulator build with eas locally or remotely.

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 16 (5 by maintainers)

Most upvoted comments

When building for a simulator, on EAS the destination is set to generic/platform=iOS Simulator which requires building for x86_64 and arm64, but when you build in xcode you are selecting a specific simulator which always is x86_64.

The root cause of the problem is that AcceptCardSDK provides only x86_64 binaries for simulator builds and there is no fallback to build from the source.

We could “fix” that by running simulator builds only for x86, but we decided that building for both platforms is the correct behavior

I did not test that yet, but if you set your buildConfiguration: Debug in eas.json your simulator build should work the same way as in xcode.

It looks like I was wrong, Debug simulator build also fails on EAS, but you can still look into the root cause of why Release simulator builds do not work, it’s likely the same problem.

Can you try building locally with Xcode but choosing the target to simulator?