How to change architecture of .ipa or .app from arm64 to i386 without source code

760 views Asked by At

I'm writing mobile autotests using C#, Xamarin 6.1.3, iOS 10.2, iPhone 6s Plus, Xcode 8.2, OS X El Capitan 10.11.6. I'm trying to launch tests on simulator using the following command:

IApp iApp = ConfigureApp.iOS.AppBundle(path_to_app/Application.app).StartApp();

I've got the following error:

Calabash.XDB.Core.Exceptions.DeviceAgentException : Failed to install app /Volumes/Win7 Ultim/Framework/new2/Payload/Atom.app

ExitCode: 5

    -a,--app-bundle <path/to/app-bundle.app>    Path .app bundle (for .ipas, unzip and look inside of 'Payload')
    -c,--codesign-identity  <codesign-identity> [OPTIONAL]  Identity used to codesign app bundle [device only]  DEFAULT=
    -d,--device-id  <device-identifier> iOS Simulator GUIDs
    -u,--update-app <true-or-false> [OPTIONAL]  When true, will reinstall the app if the device contains an older version than the bundle specified DEFAULT=1
install
Error installing org.gamatech.Movie-Friends to 9E44D0FE-A3F9-4FC1-8635-    20FB8AD20BA4: Error Domain=com.facebook.FBSimulatorControl Code=0 "Simulator does not support any of the architectures ([arm, arm64]) of the executable at /Volumes/Win7 Ultim/Framework/new2/Payload/Atom.app/Atom. Simulator Archs ([x86_64, i386])" UserInfo={NSLocalizedDescription=Simulator does not support any of the architectures ([arm, arm64]) of the executable at /Volumes/Win7 Ultim/Framework/new2/Payload/Atom.app/Atom. Simulator Archs ([x86_64, i386])}
false

at Xamarin.UITest.iOS.iOSAppLauncher.LaunchAppLocal (Xamarin.UITest.Configuration.IiOSAppConfiguration appConfiguration, Xamarin.UITest.Shared.Http.HttpClient httpClient, System.Boolean clearAppData) [0x0020a] in <e747267e258a4a668973c7ca7e9014a8>:0 
at Xamarin.UITest.iOS.iOSAppLauncher.LaunchApp (Xamarin.UITest.Configuration.IiOSAppConfiguration appConfiguration, Xamarin.UITest.Shared.Http.HttpClient httpClient, Xamarin.UITest.TestCloud.TestCloudiOSAppConfiguration testCloudAppConfiguration, Xamarin.UITest.Shared.Http.HttpClient testCloudWsClient, Xamarin.UITest.Shared.Http.HttpClient xtcServicesClient, System.Boolean testCloudUseDeviceAgent) [0x0007a] in <e747267e258a4a668973c7ca7e9014a8>:0 
at Xamarin.UITest.iOS.iOSApp..ctor (Xamarin.UITest.Configuration.IiOSAppConfiguration appConfiguration) [0x00302] in <e747267e258a4a668973c7ca7e9014a8>:0 
at Xamarin.UITest.Configuration.iOSAppConfigurator.StartApp (Xamarin.UITest.Configuration.AppDataMode appDataMode) [0x00017] in <e747267e258a4a668973c7ca7e9014a8>:0 
at Xamarin.Application.Initialize () [0x00026] in /Volumes/Win7 Ultim/Framework/Xamarin/Application.cs:44 
at Xamarin.Application..ctor () [0x00011] in /Volumes/Win7 Ultim/Framework/Xamarin/Application.cs:22 
at Xamarin.Application.GetInstance () [0x0000c] in /Volumes/Win7 Ultim/Framework/Xamarin/Application.cs:62 
at Xamarin.BaseTest.InitBeforeTest () [0x0000b] in /Volumes/Win7 Ultim/Framework/Xamarin/BaseTest.cs:18 
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in /private/tmp/source-mono-4.6.0/bockbuild-mono-4.6.0-branch/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/corlib/System.Reflection/MonoMethod.cs:305 

Ios simulator supports only i386 architecture, as I know it cannot be changed. Is it possible to change architecture of application, if I don't have source code, just .ipa and .app files?

1

There are 1 answers

0
Brandon Minnick On

It is not possible to change the supported architecture of an .ipa or an .app without the source code.