I'm trying to debug a simple new Xamarin.Forms application on the IPhoneSimulator.
I'm using Windows, and I'm paired to a macbook in my network.
The Xamarin.Forms template runs fine, but when I'm calling the Xamarin.Essentials.SecureStorage API
var timer = new Timer(5000);
timer.Elapsed += async (sender, e) => {
timer.Stop();
await SecureStorage.SetAsync("message", "Hello world");
};
I'm getting the following error:
System.Exception: Error adding record: MissingEntitlement
So I edit my Entitlements.plist and enabled the KeyChain entitlement. Tried to debug again, still the same error. So I go to project properties > iOS Bundle Signing and set the Custom entitlements to my Entitlements.plist. This somehow switches the scheme to Manual Provisioning.
Could not find any available provisioning profiles for MyApplication.iOS on iOS
So I did what this answer said: https://stackoverflow.com/a/51615262/8941307. Now I'm still getting the MissingEntitlement exception.
When I remove the Custom Entitlements and switch back to Automatic Provisioning, I'm able to run the app again, but off course without the SecureStorage.
Do I need to have a $ 99 subscription to test these features like SecureStorage on the IPhoneSimulator? Would this work when using a physical iPhone?
EDIT
I'm able to debug the sample project from XCode from my macbook on my iPad (physical), but apparently I can't get it working with Visual Studio for Mac on my iPad. I'm getting the following error:
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets(3,3):
Error: Could not find any available provisioning profiles for
Helloworld.iOS on iOS.
What am I still missing in VSMac?
Also I already trusted my developer account on my iPad, hence why I'm able to run the sample from XCode.
I've used XCode 12.1, located at /Applications/Xcode.app
You could create a free Apple Account for testing .
1. Sign into Xcode with personal apple account
Start Xcode on your Mac
Choose the Xcode → Preferences menu and navigate to the Account pane
Click the +-button in the bottom-left corner and choose Apple ID
Log in with your Apple ID email address and password .
You now have access to your Developer Account in Xcode . The developer account you added is called “Personal Team”, which should show up in the list on the right.
2. Run Apps on real device
Make sure your iPhone (or iPad) is connected to your Mac via USB. When your iPhone prompts you to confirm connecting to your Mac, tap Trust.
Then, in Xcode, choose the Window → Devices and Simulators menu. Select your iPhone from the list, and then click the Enable Device for Development button. (Depending on the context, this may not be a necessary step.) It’s also smart to enable the Connect via network option, which lets you debug apps on your iPhone without connecting via USB.
Now you can test your code with Auto Provisioning both on simulator and real device .
Very weird, but I played around with the settings of my project.
I followed the instructions in the following link: https://learn.microsoft.com/nl-be/xamarin/ios/get-started/installation/device-provisioning/free-provisioning?tabs=windows#limitations. This ensures that an app is deployed on your ipad, using XCode, with the same app-id you'll eventually use in Visual Studio. You need to have the same Bundle Identifier as the one you'll eventually use in Xamarin.iOS.
After this, I've used the following settings in my iOS project:
According to this link I also ensured I am signed in. After this, I had to restart my Visual Studio For Windows, and I was able to debug on my iPad from my PC.
Related
I am having troubles using my iPad as a testing device for my Xamarin.Forms App Running in Visual-Studio-2017. I have already done the requirements to use my own app but it still doesn't show on the devices. Here are the steps I have done so far.
Created my own account on free provisioning as described on this site. https://learn.microsoft.com/en-us/xamarin/ios/get-started/installation/device-provisioning/free-provisioning?tabs=macos
Opened my Xcode and created an empty app to setup the free provisioned account as described on the link above.
Fixed my the codedesign keychain access by inputting my Mac password and clicking always allow
Changed my info.plist information on signing as shown below
On bundle options, I have changed my signing identity and provisioning profile created by xcode. and changed the platform to iphone and clicked ok. See the image below.
After I clicked ok, Visual Studio says it was saved. But everytime I checked on my a debug device, it only shows simulators! Shown below:
I have tried restarting visual-studio mac numerous times but still how the same result! My devices hasn't shown at all!
I have scoured the internet and I couldn't find any concrete solution.
I was able to find the solution. Just change the Debug to Debug | iPhone as shown below... And it will show your device.
I developed an app with phonegap, and I hate to try on a apple device. I've jailbroken my iPhone5s for try my app without pay apple.
I follow this guide, but seems does't work:
On your Jailbroken device install AppSync Unified 5.2-1 (or later)
from AngelXWind’s repo. Don’t use any other AppSync, and if you have
others, be sure to remove them. Open
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/SDKSettings.plist
and change AD_HOC_CODE_SIGNING_ALLOWED to YES. You may need to
duplicate it to the desktop, change it, save it, then drag and drop
back into the original folder because OS X let you edit the file in
place. If XCode was running, restart XCode. Change your Project and
Target settings to “Ad Hoc Code Sign” in Build Settings Tell XCode to
run app on iPhone. At this point XCode will put app on your iDevice,
but can’t debug because it can’t attach to the process. The app will
start then close immediately. You can now manually start the app on
the phone now though. To enable debugging: In your project select
File>New File Property List and create a file called
“Entitlements.plist”. Add “Can be debugged” or “get-task-allow” (both
do the same thing) and set the value to YES. Now change your Project
and Target Code Signing Entitlements (In Build Settings) to
“Entitlements.plist” (you have to type it in). Now XCode can run and
debug the app. Good luck
This is the link of the guide.
When I run app, XCode tell me "Build Success", and on top it says :"Running on Iphone". If I open detail, it say: "Preparing to install " with a loading circle. It's 20 minute that is preparing to install my app.
How can I fix this problem?
I have very weird distribution scenario with the iOS app.
App works normally in simulator
App works normally on the device with developer profile (and corresponding bundle id domain.product)
When downloaded from testFairy service with valid enterprise provisioning profile app and bundle id (in form domain.beta.product) app:
Installs without error
Shows lunch screen and terminates immediately
When I connect device and check logs through Xcode -> Devices -> Show log I don't see any today's crashes, like no error happened. (this confuses me the most)
This happens on 2/2 iPhone devices that tried to run the app.
Some other infos that could maybe ring a bell to someone:
- App uses Core Data
- App uses TestFairy SDK (but it was the same without it)
- target is iOS 7.0, base SDK is Latest iOS(iOS 8.1)
- provisioning profile is set to that Enerprise Profile and signing identity is set to corresponding certs for both debug and release.
- I've removed armv7 from Targets-> Info -> Required Device capabilities as suggested on some stack overflow solutions.
Anyone experienced similar problem? What could be the cause?
I work for TestFairy, I think I can assist.
Few points:
TestFairy's distribution does not alter the IPA in any way.
When using an enterprise profile, you need to sign using (TEAM.domain.company.app) in your application-identifier. iOS 8 shouldn't let you install if the identifier does not include the TEAM.
If the app crashes immediately (with or without the Default splash screen,) it might be because you're out of memory. Does rebooting fix the problem?
Can you please paste all the logs from right before the launch, till the app exits? you can attach and send to TestFairy's support (via Contact page.) That would be helpful. Also, if you're interested, you can email support with your username and link to build, and they can try installing it on their devices and let you know what the problem was.
I can't debug my app because when I run it, Xcode gives me the error:
Process launch failed: timed out trying to launch app
In the device I see a black screen and after the error message the app starts.
How can I fix this?
I tried to change the code signing identity and the provisioning profile, and to refresh the provisioning profiles in the Xcode > Preferences > Accounts > Details tab.
I'm using Xcode Version 6.0.1 (6A317) with an iPad mini, running iOS 8.0 and a MacBook with OSX 10.9.4.
After this, if the iPad goes into sleep mode (the screen turns off) I can't wake it anymore; I have to do a soft reset.
You are using distribution provisioning profile rather than development profile. check this link
How to Fix:
I fix it with:
clean project (Product > Clean)
hard reset device (power button + home button)
delete app from device
close xcode
CLOSE ITUNES (itunes must be closed)
re-open Xcode and run!
I think that iTunes was the problem.
EDIT: 2017/02: Solution still Woks (Thanks to #SalGad for information).
I am using Xcode 6.2, running on iPhone 4 with iOS 7.1.2, the problems happen to me as well.
It turned out that the Project and Targets' Code Signing settings are different from each other! And that's what is causing the issue.
To solve the issue, you must make sure that their Code Signing settings is the same.
One more thing that may be a reason to launch timeout arising is that you have a lot of Provision Profiles on your device. I have about 100 of them, downloaded automatically by XCode from our team dev portal. So if your team have tons of apps and Provision Profiles, you better unlink your XCode from your Apple ID, to prevent automatic downloading for unwanted PPs. It significantly decreases app launching time.
To delete unwanted PPs from your device you have to go XCode - Window - Devices, select your device and click "Show provision profiles..." on the bottom context menu. Then you have to manually remove the profiles. Tip: use key sequences "down arrow" - "backspace", to ease the hand routine.
I had this but nothing previously posted seemed to work. This is what I did to fix the issue in Xcode 6.3.2:
Go to Product->Scheme->Edit Scheme...
Select the Run Scheme
Select the Info tab
Make sure the settings are as follows:
Build Configuration is set to "Debug"
Debug Executable is checked
Launch Automatically is checked
In my case I was using the development profile, but somehow, in Build Settings > Code Signing, the Provisioning Profile for Debug was empty.
But before setting it to "iOS Team Provisioning Profile", I had to reset my account since it said " is Not on Any Development teams"
- Xcode > Preferences > Accounts
- Remove my account (click "-")
- Add the account again
That fixed the problem
Note that if the app still manages to start on the device after Xcode displays this error, you can attach to the running process with Debug->Attach to Process.
This warning is shown when you try to run and debug your code directly in device but you are using distribution profile in your Build Settings.
To directly run the code in device and debug, you need to use development profile in your Build Settings of Xcode.
After setting the development profile, just reboot your device clean your Xcode project and run again.
I hope this helps !!
An app should return from his initialisation procedure in less then 10 seconds, or it will be killed by the OS. This is probably because you are doing too many things in the startup phase.
Try to refactor your code to do it diffrently, by doing lazy initialisation, and only initialize what is really important before showing the first view.
It's hard to give better advice before knowing more about the app itself
I have faced this issue with Xcode 6.2 and Iphone 5s with iOS version 8.3.
I get this message when I deploy the application to the device for the first time.
The work around I found was that with out unintalling the application from the device,redeploy the application from Xcode.It should run perfectly this time.
I observed this only on Xcode 6.2 not on Xcode 6.3 so this might be an Xcode to iOS version compatibility issue.
Big and weird tip for this problem... this was happening to me and none of the advice helped anywhere on the web, but then i noticed if i deleted everything out of the main ViewDidLoad method it would work. I realized there was one line of code that was messing it up. It was a line that was referencing to an array of strings that was way to big. I had something like this NSString *mystring[100][1000][100]; i accidentally added some zeros and for whatever reason this problem produced the same error message that the incorrect signing gives you. So don't let your arrays or matrixes get too out of hand!
Method #1:
Lock your phone, press XCode start, wait till XCode says "unlock your device to launch", then unlock your phone, it will be launched successfully, works every time.
Method #2:
If your goal is just to debug the app, here is another simple and straight-forward approach:
After the app is deployed, launch it manually.
Goto XCode -> Debug -> Attach to Process ... to choose your app from the list, then debug properly.
This works well for me, and it saves lots of time.
I hope this helps, thanks!
I have been developing an app for 1 or 2 weeks now and just yesterday I have updated my iPhone 5S to the iOS 8 GM. Everything worked fine and I could test on my device as well until I deleted the app from my phone and wanted to build again. The following error appeared:
Could not launch "My App"
process launch failed: Security
When I test with the simulator it works fine.
Is this because of the iOS 8 GM update and how can I fix this launch problem?
I want to be able to test on my iPhone and in the simulator.
If you get this, the app has installed on your device. You have to tap the icon. It will ask you if you really want to run it. Say “yes” and then Build & Run again.
As from iOS 9, it is required to go to Settings → General → Device Management → Developer App → Trust`.
On some versions of iOS, you will have to go to Settings → General → Profile instead.
Updated answer for Xcode 7: Tapping the app no longer works (as of beta 1 it just displays an "untrusted enterprise developer" message with only a Dismiss button).
To fix, open the Settings app, go to General / Profiles, and you'll see your profile. Mark it trusted and things should start working normally again.
Updated For iOS 9.2.1 and Xcode 7.2.1:
Goto: Settings > General > Device Management > Select App from Developer Apps > Trust App.
Hey so the accepted answer works, except if you need to debug the initial launch of the app. However I think that answer is more of a work around, and not an actual solution. From my understanding this message occurs when you have some weirdness in your provisioning profile / cert setup so make extra sure everything is in tip-top shape in that dept. before ramming your head against the wall repeatedly.
What worked for me was as follows from the apple docs:
Provisioning Profiles Known Issue If you have upgraded to the GM seed
from other betas you may see your apps crashing due to provisioning
profile issues.
Workaround:
Connect the device via USB to your Mac
Launch Xcode Choose Window ->Devices
Right click on the device in left column, choose "Show
Provisioning Profiles"
Click on the provisioning profile in question
Press the "-" button Continue to removing all affected profiles.
Re-install the app
Make sure you right click on the image of the device not the name of the device or you won't see the provisioning profiles option. I restored my new phone from an old backup and there was a lot of cruft hanging around, i also had 2 different dev. certs active (not sure why) but i deleted one, made a new profile got rid of all the profiles on device and it worked.
Update for iOS9.2.1 and Xcode 7.2.1
If you get this error when building to a device in Xcode:
On your device, tap the app icon that would have just been added from your attempt at building the app and you should see this:
Next, on your device, go to Settings --> General --> Device Management, and you will see this page:
Select the profile you are using with Xcode, and you should see this page:
Click Trust "username#email.com" then click Trust on the next popup.
Go back to Xcode and re-run your project and it should build the app to your device.
To get around the process launch failed: Security issue and immediately launch the app on your device, tap the app icon on your iOS device after running the app via Xcode.
This will allow you to immediately run the app. It may not actually "fix" the root issue that is causing these permission alerts.
Be sure to tap the app icon while the Xcode alert is still shown. Otherwise the app will not run. I continually forget this vital step and am unable to run the app on my device. Thus I am documenting it here for myself and everyone else :)
Run the app via Xcode. You will see the security alert below. Do not press OK.
On your iOS device, tap the newly installed app icon:
After tapping the icon, you should now see an alert asking you to "Trust" the Untrusted App Developer. After doing so the app will immediately run, unconnected to the Xcode debugger.
If you do not see this "Trust" alert, you likely pressed "OK" in Xcode too soon. Do not press "OK" on the Xcode alert until after trusting the developer.
Finally, go back and press "OK" on the Xcode alert. You will have to re-run the app to connect the running app on your iOS device to the Xcode debugger.
Go to SETTINGS -> GENERAL -> Profiles & Device Management
and choose the developer profile, then push Trust.
if you do not have Profiles & Device Management menu, you have to enroll your device on beta.apple.com and download the profile from Safari.
Install the profile
Restart your device
Tap on the developer profile and trust.
You are all set.
I have the same issue. I click ok in xcode and when launching the app on my iPhone I'm asked if I want to trust this application. Doing it, the app runs and further build-and-run from xcode went without any issue until deleting the app from the iPhone and reinstalling it. Then goto first line ;-)
Alternatively if one does not see "Untrust App Developer" dialog:
Go to your iPhone > Settings > General > Profile > "you#email.com" > Trust
In iOS 9.2 they renamed the 'Profiles' to 'Device Management'
This is how you should do it now:
Settings -> General -> Device Management
Verify the app
Ok, this seems late and I was testing the app with the Internet connection off to test my app for some functionality. As I turned off the Internet, it gave me such an error. After I turned on the Internet, I could install it again. I know this is silly but this might be helpful to someone.
I had this issue before on Xcode 7. Then I realized it's all about my Internet connection: it was down, and the security check was using the
Internet to make sure your developer account is correct. And when it saw no Internet it gave this error … after I have fixed my Internet, it works well.
Xcode is able to build and install the app, but isn't able to launch it the first time. You just need to tap on the app's icon on the phone, then you will be prompted to ask if you want to trust the developer. Allow it and the app will launch, then Xcode will be able to automatically install & launch this and your other apps.
"If you get this, the app has installed on your device. You have to tap the icon. It will ask you if you really want to run it. Say “yes” and then Build & Run again."
To add to that, this only holds true the moment you get the error, if you click OK, then tap on the app. It will do nothing. Scratched my head on that for 30 odd minutes, searching for alternative ways to address the problem.
BTW, this also happens if you change the team of your target in Xcode and rebuild. Was quite puzzled to see that problem with an app that I had run on the device before. Took me a while to figure out…
Might only happen the first time building to a device with a team, though.