iOS project works in simulator but not on iPhone 5 - ios-simulator

I have finished my project in Xcode 6. Tested on simulator. Everything works fine. So installed app on my hardware. (iPhone 5 ) however looks like prepare for segue and unwind to segue methods does not get called. Due to this properties I set in these methods stays nil. And so app crashed.
Please help.

I managed to crack it. Problem was declaration of property in .h file for NSString. It was declared weak. Changing it to strong sorted my problem.

Related

ADB0020: Android ABI mismatch. How do I set ABI of target physical device?

I have a brand new Samsung A10 with Pie on it.
I'm attempting to run the Sample Application provided in MediaPlugin:
https://github.com/jamesmontemagno/MediaPlugin
At first I was getting this error when I tried to build:
Invalid value 'armeabi' in $(AndroidSupportedAbis). This ABI is no
longer supported. Please update your project properties to remove the
old value. If the properties page does not show an 'armeabi' checkbox,
un-check and re-check one of the other ABIs and save the changes.
Then I did some reasearch and went to Android Properties / Android Options / Advanced and unselected armeabo-v7a.
As I understand it this will remove 32 but support, which I'm fine with.
Now I get this error:
ADB0020: Android ABI mismatch. You are deploying an app supporting
'x86;x86_64;arm64-v8a' ABIs to an incompatible device of ABI
'armeabi-v7a;armeabi'. You should either create an emulator matching
one of your app's ABIs or add 'armeabi-v7a' to the list of ABIs your
app builds for.
I'm targeting a new A10 Samsung phone with Android Pie on it. I can't see where to set the 'device ABI', though why would a new Pie phone be interseted in armeabi-v7a anyway?
Where can I set the 'device ABI' or otherwise fix this?
I can't find anything on Google. Thanks.
UPDATE
I've found this work around which is as worrying as it is bizarre:
Untick the armeabi-v7a option
Build
Re-tick the option
Build
Deploy
from
https://forums.xamarin.com/discussion/146174/vs2019-error-this-abi-is-no-longer-supported
I'd like to understand what's going on here rather than just work around it.
This is only an issue with my A10 physical Samsung phone, in emulators it seems to work fine.
I got this error before. You could untick all the supported architectures to tick all of them like below. Delete the obj and bin folder of project to clean and rebuild. Most of times, it works.
Different Android devices use different CPUs, which in turn support different instruction sets. Each combination of CPU and instruction set has its own Application Binary Interface (ABI).
For more support of Android ABIs, you could refer to the Android ABIs guides.
https://developer.android.com/ndk/guides/abis
To fix this issue on a Xamarin.Forms Android application, Right click on your android project and then select Properties > Android Options > Advanced.
You will see a dropdown for supported architectures. Select x84 & x86_64.
The app should now build and run on the emulator.
go to your project folder and edit yourproject.csproj
and remove starting <AndroidSupportedAbis> line completely.
add:
<AndroidSupportedAbis>armeabi-v7a;x86_64;arm64-v8a;x86</AndroidSupportedAbis>
save and debug. (changes accept on visual studio)
Enjoy.
Do not setup retry abis on xamarin.
I changed to Debug mode from Release mode after signing a release.
For Mac:
Android Project -> Option -> Android Build -> Advanced. Then tick all.
Click Option from Solution Explorer for Android:
Click Android Build then Advanced:

Reading from Keychain Xcode 9 simulators returns nothing

Since I'm using Xcode 9, all unit tests communicating with keychain are broken. It also happens with Xcode GM. As I traced, there is no OSStatus errors while reading and writing but reading from keychain returns nothing and causes failure for all unit tests using keychain. I've already faced something like this when Apple released Xcode 8 with iOS 10 simulator which keychain was not working and Apple fixed that in Xcode 8.2. Is anybody else facing this issue with iOS 11 simulator too? Any idea on this?
Finally we found the problem. As #Gix said the problem is with unit tests inside our framework. The SDK tests don’t have an app context, so don’t have the/a keychain available. But actually we didn't want to move the tests from SDK into app as you did #Gix. So we could fix the problem just by adding an app target in the SDK project, then set that as host for the SDK unit tests. Now unit tests are passing. But I still don't understand why its only failing in the new Xcode. We realize it's not an iOS 11 Simulator issue because the same failure happens with iOS 10 simulators in Xcode 9 too. So this restriction is a property of Xcode 9 Simulator app which can be fixed with the solution I provided. It is still messy but it works and you don't need to move tests from SDK into app!
Just figured this one out on my side, so I thought I'd let you know in case you are having the same issue.
My problem was the way I have my project set up. In my project I have a workspace with 3 projects, 1 is the Main App, 1 is a framework/library and 1 is the Pods project. I was accessing the keychain in my framework, and my unit tests target was part of this project.
After extensive discussion and work with Dan Federman from the team behind the library Valet (which you can find here), we figured out that my unit tests target needs to be part of the project where the Main App is. Once I copied all of my tests from the library project to the Main App project, everything ran and worked just fine.
Hope this helps!

Visual Studio Apache Cordova - IOS build rotation issue

I'm a starter in writing app code in Visual Studio 2013 Community Apache Cordova and have managed to connect VS2013 with my Mac. Once I have gone through the process of building the app in VS and on my Mac and installing in on my iPhone, I open it up and it won't rotate. It doesn't rotate for a number of basic apps that I've written nor does it rotate if I build the default new project "Hello, your application is ready!" app.
I have done some research and tried changing the config.xml "Orientation" preference to "both", through the code window and also in the designer window but that doesn't change anything. I've also noticed that adding in a "BackgroundColor" preference doesn't work either.
Does anyone know if I may have configured something incorrectly or perhaps need to add something to my code?
All the HTML, JS and CSS that I've written seems to work okay (with the exception of trying to link URLs to the Safari Browser but that's another issue).
I have noticed the same issues. I tried finding some settings to fix that in the config.xml, but was not successful. I have resolved myself to just opening the iOS project in XCode and changing a few things:
Device Orientation: no matter the config.xml setting, its always only Portrait. I click-check the other 3 orientations.
Team: I have multiple developer profiles, and I need to choose correct one here.
Bundle Identifier. I screwed up one project, and have different case for iOS and Android. I leave the VS one as the Android one, so I can build completely correct for Android. Since I know I have to go to XCode for iOS anyway, I change the bundle identifier here.
You can find the project using Finder at ~/remote-builds/builds/9999/cordovaApp/platforms/ios/*.xcodeproj, where 9999 is the build number, though not necessarily the latest, largest number, but the latest datetime of the folder.
You can also refer to Greg's answer in this related post as an alternative solution.

iOS8 simulators error

Try to start my project on one iOS8 simulator and Xcode shows error:
An error was encountered while running (Domain = NSMachErrorDomain, Code = 5)
No one of iOS8 simulator can't be started. What to do?
"iOS Simulator" -> "Reset Content And Settings..."
^ this helps.
I ran into the same error just this morning, and I haven't completely figured it out, but I have observed something which might help you (or both of us, if anyone else stumbles across this and has more information). I was building a project which contained:
the app itself
a Today extension (widget)
a Framework to share code between the app and the widget
The widget comes with TodayViewController.h/m, and I wanted to share this view controller with the app. So I changed the target membership of TodayViewController.m to my framework rather than the widget. (Did this in the Target Membership in the right sidebar.) I also set the TodayViewController.h to be part of the framework as a public header. When I did this, and then did a clean, I got this error when trying to run the app in the simulator, and also an "unknown error (null)" when trying to run on device. If I set TodayViewController.m's target membership to both the framework and the widget, I'm able to run the app in the simulator just fine.
Now, I don't know why this would be the case. I've declared my widget to depend on the framework, so it seems like it should work without my setting the target membership of TodayViewController.m to both widget and framework. If anyone else knows why this is the case, I'm all ears. But this is what I've found so far.
I had the same problem tonight too. I was not able to get my app to run if my resource directory was a "folder reference" (aka blue folder). Once I re-added my resource directory as a "folder group" (normal folder) instead my app ran fine. Not sure if this is the case for you, but it solved my problem. GL.
I ran into the same problem today using DP3.
When I tried to delete the Derived Data folder from Organizer, it showed me some kind of permission error. I then manually deleted the folder from Finder, rebuilt, and voila! It worked!
If you ever get and error like this, where xcode doesn't say much, just a error code, try first to check the actual problem on the system console.
Applications -> Utilities -> Console
On my case I was able to see that xcode was trying to copy the widget's binary and it was not able to find it. I was able to find out that without at least one compiled file on the extension's target, xcode is not going to create the binary for the extension.

Xcode cannot run using the selected device

This is the message while trying to run under XCode 4 (it used to work under XCode 3):
No provisioned iOS devices are available. Connect an iOS device or choose an iOS simulator as the destination.
I have profiles for my device for this app... where should I be looking to correct this?
The problem is that your iOS Deployment Target in Project-> Build Settings is different from the current version of iOS on your real device.
You're asking where to find it:
In XCode 4 there is a new button - look for the big
"Organizer button"
which is at the TOP RIGHT.
Physically connect your device and then click Devices. It seems that the new "Organizer button" is one of the "most-missed" things in the transition to XCode4.
Note, the questioner is asking: "WHERE should I be looking to correct this?"
I was having extra trouble because of my Enterprise License, but still updated the iPads. I didn't have to change anything in the Build Settings to lower. But the main thing that I had a problem with was in the Organizer I needed to hit "Use for Development" button.
Kind of an old post, and may not be the best way or a rookie thing to miss but wanted to help anyone out.
My problem similar to those above were related to having the deployment target set too high for the version installed on the phone. Would be nice if it gave a more useful error message. I spent hours messing with my provisioning profile trying to fix it, when the real problem was the older version of the software on the phone.
I had the same problem. The reason was simply, that my ipad had not been update to version 4.3.
This just happened to me for iOS5 with xcode 4.2.
The answer is to go into organiser, select your device, and press the "Develop with this device" button (or similar wording).
Then go back and build, and it should work..
I received this error while having an iPad properly connected.
Some info:
Ipad iOS version: 4.2.1
XCode 4.2
XCode project created with "iOS Application / Empty Application" template.
The problem was that I had to specify the "iOS Deployment Target" to 4.2 in more than one place!
That is, both in the "Build Settings" and in the "Summary".
Very odd, and definitely another XCode4 annoyance.
I got this error in Organizer - "Could not support development.". I tried rebooting the iOS device and it worked for me :)
Check that the Executable File (also known as CFBundleExecutable) in the Info.plist file is set to ${EXECUTABLE_NAME} as opposed to any hardcoded value. This will ensure that even if you change your project name or target name or scheme name, that it still works.
you need to install the proper version of iOS.in my case it is iOS 4.0 - 4.1 Device Debugging Support
GOTO --> XCode Preferences -> Downloads --> Component
there are all updates available for your iOS click Install.
This is works for me.
It looks like this error can also come about if the "Product Name" in your target's build settings does not match the value of "CFBundleExecutable" in your info.plist
It looks like to me this is the general error Apple gives if the executable is not installed correctly on the device. When the debugger tries to attach it looks for the executable name and if it's not there they give this error. Touch one to debug.
Go to build option and select valid compiler.
Chose your right iOS Deployment version

Resources