iOS App starts crashing after a week of installing it to device - ios

I am trying to install my app to my iOS devices through Xcode. However after a week I the app doesn't open anymore. After doing some research I understand that on the free developer account the provisioning profile will only last 1 week, the problem is is that I actually have a personal developer account that I pay for so this shouldn't be the case?
I have set the team to "my name (Personal Team) and in my Build settings I have made sure the Code Signing Identity is set to iOS developer, if I change that to iOS Distribution I get this warning:
yourApp has conflicting provisioning settings. yourApp is automatically signed for development, but a conflicting code signing identity iPhone Distribution has been manually specified. Set the code signing identity value to "iPhone Developer" in the build settings editor, or switch to manual signing in the project editor. (in target 'yourApp')
Is it actually possible to install an app to an iOS device via Xcode that has an infinite lifetime or does it always have to go to iTunes Connect & the App Store?
Any help would be great as this is the final step to rolling my app out to my colleagues.
Edit:
When I click info next to the provisioning profile I get this:

It is not possible to build an iOS application that doesn't have an expiration (unless you distribute through the App Store). This is to prevent developers from building iOS apps and distributing them through third party app stores.
A standard development account is meant to be used by a developer to test apps for short periods on physical devices before submitting the app to Apple for real distribution. The short duration of the development provisioning profile is a reflection of this.
If you really want to do longer term distributions on devices (up to 12 months), you could sign up for an Enterprise development account ($299/year, but also requires an EIN). That allows you to create an In-house Distribution profile that will be good for 12 months from when it is created. You will still need to re-build the app (or at least repackage it with a new distribution profile) at least once a year.
In the end, you are attempting to do something Apple really doesn't care to support. I wish there was a better answer (could you write the app as a web app?), but I'm afraid there isn't.

Related

Renew iOS Distribution Provisioning Profile

A few years ago I wrote an iPad app that was to run on only a few of the client's iPads. They're currently having issues with the app exiting upon being opened. It turns out this is due to the dev provisioning profile associated with the app being expired.
I tried renewing the provisioning profile but am unable to access the Provisioning Portal because my dev account needs to be renewed. Renewing my account is not an option right now.
I'm aware that as of Xcode 8 users are able to install apps on physical devices for free. I don't have access to the client's iPads and have been issuing out updates by archiving the .ipa file and using diawi.com for them to install.
How can I just renew my provisioning profile so that my client can successfully open the app?
Thanks
This is not possible. What you need to do is generate a new, valid provisioning profile and run the app again on your client's iPad. However, I should note that for this type of development, Apple wants you to use ad-hoc distribution through the enterprise developer program.
Also, to be able to generate a new, valid provisioning profile you will need a valid account.
Ideally, your client should have their own developer account that they maintain, preferably an enterprise dev account (enterprise accounts don't require them to manage the specific device UDIDs the app needs to run on). With that, they could manage their own certs / profiles for the signing of the app. They could then grant you access as a team member to manage those things and update the app once a year.
Or, even better for them - you could even write them a script / use tools (like fastlane) to re-sign the app themselves so they could self provision. This takes you out of the loop for ongoing support, since it doesn't seem like you will / have provided ongoing support. Keeping an internal app running requires continual work (new OS updates, code signing expiration, etc.).
If you built an app for a client, you probably should have known / let them know that iOS doesn't allow unsigned apps to run on devices, and that developer provisioning profiles last at most a year. You also need to make sure they know you can't just write a native app and expect it to work forever. At some point (probably now, but they don't know it yet) an iOS update is going to break something you did in the app. The just can't see what is broken yet because your invalid cert is making it so the app can't launch. Given your lack of understanding of iOS code signing, I would assume that you likely did something in your code that was broken in subsequent iOS updates (given that very experienced iOS developers also have things break with new iOS versions are released).
At this point, I would explain them the situation and see if they would be willing to set up their own paid account (only $299 / year for an enterprise account) to get new profiles / certs set up to get the app back up and running.

How to debug already built app on iPhone? [duplicate]

I am new to making iPhone apps and this is my first attempt.
I have made a simple app which has two buttons in it. One button opens a URL and the other opens a Pop-up window.
I am yet to enroll as an apple developer and am testing my application on the physical device by connecting it to Xcode.
When I install the application, it runs properly for a few days in spite of disconnecting it from Xcode. However, after a few days, the application does not open and flashes a black blank screen and goes back to the home screen.
When I reconnect it to Xcode and run the same code again on the same iPhone, it works properly again for a few days and then crashes again.
I am unable to understand why the app is behaving in such a manner after a few days and not immediately.
Is there some expiry period for application when one has not signed in as a developer? (The provisioning profile shows expiring soon) If not, can you please guide me as to how to go about troubleshooting this issue?
Kindly give me your esteemed suggestions/comments as I am badly stuck and need to find a solution as soon as possible.
Thanks a lot!
If application is installed with Xcode and you don't have a Paid Program Developer Account, the life expectancy of the app is approximately 48 hours (There is no official time of validity for this).
For a paid program, it's a few months with the correct certificate. With TestFlight, it's now 60 days.
Indeed, if you don't sign your app, it has low life expectancy. It's quite new that Apple allows installation to devices for free accounts, but it's just for testing purposes (other than simulator), if you want more days to test on a device, you have to pay for the developer program.
No it's not a guess actually...
It's 7 days exactly for a free developer account.
You can check validity also in Xcode Provisioning profile also:
In General → Signing ("Automatically Manage Signing" checked) → Provisioning Profile (Click on Info (i) icon)
you can check validity of the profile:
This forum helped me find an answer for a very similar issue I was facing with an Ionic iOS app I have running on a few iPads for a checkin kiosk at a non-profit I am developing for. For my scenario I just need the apps to run locally on WiFi and never on any other devices, never to be downloaded as a distributed app to the public. My apps kept randomly crashing on launch, and I would re-install the app from Xcode and they would start working again.
So my only real solution was creating an "Ad-Hoc" certificate and provisioning profile, where you can add up to 100 iOS devices to the provision. I had to manually add my 3 iPads to the provisioning profile, then download the file and open it, then in Xcode un-check "Automatically manage signing", then go below to "Provisioning Profile", then select your new ad-hoc style profile. And you should be good as long as your Apple developer account is in good standing (I believe, someone correct me if I'm wrong).
Just a heads up, first you personally have to be a paid and registered developer with Apple, not just added to a team by invite. I was invited in by another team for a completely different project and was not able to get set up and create the certificate and provisioning file on my own because of that. I had to leave my team, then register anew with Apple as an individual developer, then I could complete my steps.
Your Apple developer account
Create a Production Ad-Hoc Distribution Certificate
Create an Ad-Hoc Provisioning Profile
Managing Devises and Provisioning Profiles

Having test app provisioning profile not expire

I have an iOS app that I'm testing on my phone. I installed it through XCode. I've had the app on my phone for several weeks. After a couple of weeks the app no longer works. If I open the app it immediately closes. If I do a fresh re-install of the app, then everything works for a couple more weeks till it breaks again.
My theory is that the provisioning profile I used has expired, preventing the app from loading. This is expected as I'm installing the app through XCode and Apple probably doesn't intend for users to have a test build used on an iOS device for extended periods of time. My question is this, how can I set it so the provisioning profile doesn't expire? How would I need to adjust the code signing settings to adjust for this?
You cannot set provisioning profiles to never expire. Development provisioning profiles will expire after a set amount of time. For a free developer account with Apple, your profiles will be set to expire after 30 days. If you have a paid developer account, the profiles will last for a year from when it is created. Note that a new profile isn't created every time you build, so you have to keep an eye on the profile expiration date and generate a new one when you get to 10 months or so.
Apple will not let you go longer than this, as it would allow / encourage other distribution mechanisms. If developers could build an app and distribute it to other peoples' devices, and those apps could run indefinitely, someone would quickly develop a 3rd party app store and Apple would lose control of its ecosystem.
FYI - If a provisioning profile expires, the app will launch briefly, then shut down when iOS realizes that there is a code signing problem (also happens if your certificate has been revoked or has expired). You can check for sure by plugging the device into your Mac and monitoring the device console when you attempt to launch the app. You will likely see a code signing error in the logs.
Set device type to generic in Xcode.
Go to Product in the status bar on the top of your screen
Select Archive
Build your app as an AdHoc file
When its done, save that file somewhere, (I usually throw it on my desktop and then delete it)
Double click the .ipa file, Make sure your phone is plugged in and hooked to iTunes.
This should install the app on your phone.
I have had good luck with this, I hope it works for you.
Note: This may only be possible with a developers license, I'm not 100% sure.

iPhone app under test crashes after a few days

I am new to making iPhone apps and this is my first attempt.
I have made a simple app which has two buttons in it. One button opens a URL and the other opens a Pop-up window.
I am yet to enroll as an apple developer and am testing my application on the physical device by connecting it to Xcode.
When I install the application, it runs properly for a few days in spite of disconnecting it from Xcode. However, after a few days, the application does not open and flashes a black blank screen and goes back to the home screen.
When I reconnect it to Xcode and run the same code again on the same iPhone, it works properly again for a few days and then crashes again.
I am unable to understand why the app is behaving in such a manner after a few days and not immediately.
Is there some expiry period for application when one has not signed in as a developer? (The provisioning profile shows expiring soon) If not, can you please guide me as to how to go about troubleshooting this issue?
Kindly give me your esteemed suggestions/comments as I am badly stuck and need to find a solution as soon as possible.
Thanks a lot!
If application is installed with Xcode and you don't have a Paid Program Developer Account, the life expectancy of the app is approximately 48 hours (There is no official time of validity for this).
For a paid program, it's a few months with the correct certificate. With TestFlight, it's now 60 days.
Indeed, if you don't sign your app, it has low life expectancy. It's quite new that Apple allows installation to devices for free accounts, but it's just for testing purposes (other than simulator), if you want more days to test on a device, you have to pay for the developer program.
No it's not a guess actually...
It's 7 days exactly for a free developer account.
You can check validity also in Xcode Provisioning profile also:
In General → Signing ("Automatically Manage Signing" checked) → Provisioning Profile (Click on Info (i) icon)
you can check validity of the profile:
This forum helped me find an answer for a very similar issue I was facing with an Ionic iOS app I have running on a few iPads for a checkin kiosk at a non-profit I am developing for. For my scenario I just need the apps to run locally on WiFi and never on any other devices, never to be downloaded as a distributed app to the public. My apps kept randomly crashing on launch, and I would re-install the app from Xcode and they would start working again.
So my only real solution was creating an "Ad-Hoc" certificate and provisioning profile, where you can add up to 100 iOS devices to the provision. I had to manually add my 3 iPads to the provisioning profile, then download the file and open it, then in Xcode un-check "Automatically manage signing", then go below to "Provisioning Profile", then select your new ad-hoc style profile. And you should be good as long as your Apple developer account is in good standing (I believe, someone correct me if I'm wrong).
Just a heads up, first you personally have to be a paid and registered developer with Apple, not just added to a team by invite. I was invited in by another team for a completely different project and was not able to get set up and create the certificate and provisioning file on my own because of that. I had to leave my team, then register anew with Apple as an individual developer, then I could complete my steps.
Your Apple developer account
Create a Production Ad-Hoc Distribution Certificate
Create an Ad-Hoc Provisioning Profile
Managing Devises and Provisioning Profiles

iOS iPad Application crashes after some time [duplicate]

I am new to making iPhone apps and this is my first attempt.
I have made a simple app which has two buttons in it. One button opens a URL and the other opens a Pop-up window.
I am yet to enroll as an apple developer and am testing my application on the physical device by connecting it to Xcode.
When I install the application, it runs properly for a few days in spite of disconnecting it from Xcode. However, after a few days, the application does not open and flashes a black blank screen and goes back to the home screen.
When I reconnect it to Xcode and run the same code again on the same iPhone, it works properly again for a few days and then crashes again.
I am unable to understand why the app is behaving in such a manner after a few days and not immediately.
Is there some expiry period for application when one has not signed in as a developer? (The provisioning profile shows expiring soon) If not, can you please guide me as to how to go about troubleshooting this issue?
Kindly give me your esteemed suggestions/comments as I am badly stuck and need to find a solution as soon as possible.
Thanks a lot!
If application is installed with Xcode and you don't have a Paid Program Developer Account, the life expectancy of the app is approximately 48 hours (There is no official time of validity for this).
For a paid program, it's a few months with the correct certificate. With TestFlight, it's now 60 days.
Indeed, if you don't sign your app, it has low life expectancy. It's quite new that Apple allows installation to devices for free accounts, but it's just for testing purposes (other than simulator), if you want more days to test on a device, you have to pay for the developer program.
No it's not a guess actually...
It's 7 days exactly for a free developer account.
You can check validity also in Xcode Provisioning profile also:
In General → Signing ("Automatically Manage Signing" checked) → Provisioning Profile (Click on Info (i) icon)
you can check validity of the profile:
This forum helped me find an answer for a very similar issue I was facing with an Ionic iOS app I have running on a few iPads for a checkin kiosk at a non-profit I am developing for. For my scenario I just need the apps to run locally on WiFi and never on any other devices, never to be downloaded as a distributed app to the public. My apps kept randomly crashing on launch, and I would re-install the app from Xcode and they would start working again.
So my only real solution was creating an "Ad-Hoc" certificate and provisioning profile, where you can add up to 100 iOS devices to the provision. I had to manually add my 3 iPads to the provisioning profile, then download the file and open it, then in Xcode un-check "Automatically manage signing", then go below to "Provisioning Profile", then select your new ad-hoc style profile. And you should be good as long as your Apple developer account is in good standing (I believe, someone correct me if I'm wrong).
Just a heads up, first you personally have to be a paid and registered developer with Apple, not just added to a team by invite. I was invited in by another team for a completely different project and was not able to get set up and create the certificate and provisioning file on my own because of that. I had to leave my team, then register anew with Apple as an individual developer, then I could complete my steps.
Your Apple developer account
Create a Production Ad-Hoc Distribution Certificate
Create an Ad-Hoc Provisioning Profile
Managing Devises and Provisioning Profiles

Resources