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

LLVM Instrumentation creating issue in app submission, getting Binary Invalid. #184

Open
htrilasoft opened this issue Feb 17, 2023 · 1 comment

Comments

@htrilasoft
Copy link

htrilasoft commented Feb 17, 2023

Razorpay pod Version :

1.3

Xcode Version :

Version 13.0 (13A233)

iOS Deployment Target :

13.0

What you did:

Using capacitor-razorpay in an ionic capacitor project with Capacitor 4

What happened:

On App submission of testflight, getting the error below

ITMS-90562: Invalid Bundle - The app submission can not be successfully recompiled from bitcode due to missing symbols during linking. You can try to reproduce and diagnose such issues locally by following the instructions from: https://developer.apple.com/library/archive/technotes/tn2432/_index.html

ITMS-90562: Invalid Bundle - Disallowed LLVM instrumentation. Do not submit apps with LLVM profiling instrumentation or coverage collection enabled. Turn off LLVM profiling or code coverage, rebuild your app and resubmit the app.

The technical documentation provided by Apple suggests checking which Framework binary inside the archive has GCC or LLVM instrumentation, and only Razorpay.framework/Razorpay has LLVM instrumentation
sectname __llvm_prf_cnts
sectname __llvm_prf_data
sectname __llvm_prf_names
sectname __llvm_prf_vnds

The suggested solution by Apple and by others have been tried across the Project, Target, and Pods to set
CLANG_ENABLE_CODE_COVERAGE = No
SKIP_INSTALL = NO
BUILD_LIBRARY_FOR_DISTRIBUTION = YES

Yet to no avail, the Razorpay.framework/Razorpay binary still has LLVM instrumentation and the archive submission is still getting rejected

Steps To Reproduce

To Reproduce the issue just start a new ionic capacitor project and add capacitor-razorpay

  1. install node
  2. npm i -g @angular/cli @ionic/cli @capacitor/cli
  3. ionic start new-project-name (follow through the wizard / choose options in terminal, choose to add capacitor to project)
  4. cd new-project-name
  5. npm i -S https://github.com/razorpay/razorpay-capacitor.git
  6. ng build
  7. npx cap add ios
  8. npx cap sync
  9. npx cap open ios (this will open the xcode project)
  10. Product->Archive
  11. Right click on the latest archive->Show in Finder
  12. Right click on the archive->Show Package Contents
  13. Right click Products/Applications/->Show Package Contents
  14. Open Terminal here and run
  15. otool -l -arch all Frameworks/Razorpay.framework/Razorpay | grep __llvm_prf

Suggested solution:

CLANG_ENABLE_CODE_COVERAGE = No
seems to be what needs to be done, but it isn't taking effect for me, maybe because it is a dependency in the podspec file
applivery/applivery-ios-sdk#7 Here someone has fixed the same issue by removing codeCoverageEnabled = "YES" as can be seen in comparing the fixed branch applivery/applivery-ios-sdk@v2.5...v2.5.1

Useful Links to understand the issue

@ramprasadAnand
Copy link
Contributor

@htrilasoft apologise for the delay in responding to your query. Please update to our latest release version 1.3.1 to resolve this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants