Instabug/Instabug-Cordova

Invalid Binary Architecture from iTunes Connect

Closed this issue · 15 comments

Hi,

i'm using ionic 3 with phonegap build. The builds are running fine but when i upload a build to iTunes Connect for Testflight i'm getting this back:

Dear Developer,

We identified one or more issues with a recent delivery for your app, "xxx". Please correct the following issues, then upload again.

Invalid Binary Architecture - iOS 3.0 introduced support for multiple binary architectures. If your binary is built for multiple architectures, your Info.plist must have a MinimumOSVersion key with a value of at least 3.0. Additionally, if your app is intended to support earlier iPhone and iPod touch models, your app must contain at least an armv6 binary; "thin" armv7-only binaries will not be accepted unless the armv7 required device capability is also present in the Info.plist UIRequiredDeviceCapabilities key or the MinimumOSVersion key has a value of 4.3 or higher.

Specifically, we found the following unsupported architectures in your binary:

x86_64
i386

For more information, see Technical Q&A QA1707 at: http://developer.apple.com/iphone/library/qa/qa2010/qa1707.html.

Invalid Segment Alignment - The app binary at 'xxx.app/Frameworks/Instabug.framework/Instabug' does not have proper segment alignment. Try rebuilding the app with the latest Xcode version.

Invalid Segment Alignment - The app binary at 'xxx.app/Frameworks/InstabugCore.framework/InstabugCore' does not have proper segment alignment. Try rebuilding the app with the latest Xcode version.

Invalid Encryption Info - The binary is invalid. The encryption info in the LC_ENCRYPTION_INFO load command is either missing or invalid, or the binary is already encrypted. This binary does not seem to have been built with Apple's linker.

Though you are not required to fix the following issues, we wanted to make you aware of them:

Non-PIE Binary - The executable 'Payload/xxx.app/Frameworks/Instabug.framework' is not a Position Independent Executable. Please ensure that your build settings are configured to create PIE executables. For more information, refer to Technical Q&A QA1788 - Building a Position Independent Executable

Non-PIE Binary - The executable 'Payload/xxx.app/Frameworks/InstabugCore.framework' is not a Position Independent Executable. Please ensure that your build settings are configured to create PIE executables. For more information, refer to Technical Q&A QA1788 - Building a Position Independent Executable

Best regards,

The App Store Team

This happens only when i use this plugin with this code in my config.xml file:

<gap:plugin name="com.instabug.cordova.plugin" spec="https://github.com/Instabug/instabug-cordova" />

I don't have access to xcode. Thank you for any help.

Hey @tmdevde,
Thank you for reaching out to us, we'll check it out and get back to you.

Any News?

Hey @tmdevde,
There is a StripFrameworkScript that gets added automatically using a JS hook after installing the "instabug-cordova" plugin. This error might be due that the script did not get added correctly to the iOS project. However, the only way for us to make sure of that is for you to check if from Xcode if it exists or not. Does it make sense?

Hey @ramiimagdi,
thanks for the reply but i don't have access to xcode. that's why i'm using phonegap build. I think Instabug won't be useable for me then right?

@tmdevde
It's definitely my pleasure, allow me to double check a few things and get back to you in a couple of hours. Thanks

@ramiimagdi thank you very much for your efford. i love instabug for testing and would love to use it.

@tmdevde
You are so welcome, I'll make sure we find a workaround so that you can use Instabug.
Thank you so much, we do appreciate your trust :)

@tmdevde
Hey, I hope you are doing great. After investigating your problem, it turns out that in order for the Binary Architecture to be working properly, you'll need to have Xcode access. It's either that or we'd create you a custom build but you won't be able to test your project on a simulator, you'll have to run it on a real device (iPhone).

This is because Phonegap doesn't support build hooks.

I'll be looking forward to hearing back from you.

@tmdevde
Please feel free to reopen the issue anytime that suits you.

@ramiimagdi hey thank you for the answer. Hmm...would the web version be an alternative? (because i'm building with ionic and cordova).

@tmdevde you're more than welcome!
I'm not actually quite sure whether it'll be helpful or not as our Web SDK is more of an open source now, we’ll continue to support it from our side and we’ll be accepting community contributions as well.

@ramiimagdi ok thank you for your work. even if i can't use it like a want (right know) i still love instabug as it is ;-)

It's definitely my pleasure, please feel free to reach out to us if you have any other questions.
Instabug loves you back @tmdevde 😃

@ramiimagdi this has just happened to me, it works fine when I run it on my device but apple connect tells me first this warning

 macOS High Sierra is the last version of macOS that will run 32-bit apps without compromise. The Mac App Store will require all apps (including updates) to be exclusively 64-bit by June 2018.

and When I try to upload it:

App Store Connect Operation Error
ERROR ITMS-90087: "Unsupported Architectures. The executable for ******.app/Frameworks/Instabug.framework contains unsupported architectures '[x86_64, i386]'."

App Store Connect Operation Error
ERROR ITMS-90209: "Invalid Segment Alignment. The app binary at '******.app/Frameworks/Instabug.framework/Instabug' does not have proper segment alignment. Try rebuilding the app with the latest Xcode version."

App Store Connect Operation Error
ERROR ITMS-90125: "The binary is invalid. The encryption info in the LC_ENCRYPTION_INFO load command is either missing or invalid, or the binary is already encrypted. This binary does not seem to have been built with Apple's linker."

@caipivara as mentioned above, this is likely because the strip frameworks scripts does not run. Can you check your project to verify it has been added as mentioned here: #56 (comment)