iOS Kiosk App - In-App Email - Clear past / autocomplete email addresses - ios

I am using the iOS MFMailComposeView method of sending emails - its all working fine, except that as a Kiosk app, I don't want each new user to see the auto complete list of previous email addresses that this app / iPad has used.
Is there a programmatical way to clear that cache after each email has been sent?
I can't see from the Dev docs, but I'm sure I'm not the only one that's butted up against this problem.
Thanks

I've had confirmation from Apple that there is no way to do this at all without a complete reset/wipe of the iPad between 'events'.
I logged Bug ID# 10328043 and in the reply was told that they already knew about this 'problem' as the original bug ID # is 5389647
If anyone else would like to help raise this as an issue requiring a sooner rather than never solution, please bug it and reference the two above ID's.
Thanks

Related

iTunesConnect "We can't process your request." when going to "App-Specific Shared Secret"

Whenever i try to navigate to App-Specific Shared Secret within ItunesConnect the dialog box attempts to load briefly then I get directed to a crash page titled
"We can't process your request".
I've reset safari clearing all website data and also used other computers.
I've contacted Apple who are sending an email shortly requesting more information but wondered if anyone else had come across a similar fault?
Another very easy solution which worked for me:
Use safari
SOLVED
The problem was due to not previously having created a master shared secret.
Once I did this then I could generate the shared secret for the specific application.
I has a similar issue, when I was getting invited to join Apple Developer Program. I tried joining through the invitation link and I would always get the "We can't process your request" message.
The solution was to:
Log in to an iPhone/iPad with that particular Apple id.
Try to install an app.
You will get a terms and condition pop up that you should accept.
Install the app
Wait for a while until Apple fast servers update your status (around 1 hour for me)
Now you should be able to proceed without the weird message.
I think need to update Mac OS to latest will solve problem. Alternatively you can use google chrome browser.

App rejected due to an IPV6 Swift3 error. How do I fix it?

A few days ago, Apple rejected my app, indicating that it didn't have IPV6 support, however I don't need that support since my app does not require internet access.
I asked the following:
Hi, my app does not need any internet connection yet.
So, why it's required to have support to IPV6?
They said:
Thank you for your response and for your question. In order to bring your app into compliance with Guideline 2.1 it would be appropriate for your app not to crash when logging in.
end
So, why do I need that Support?
If is necessarily, how do I can do it?
Please I need help
Test your app extensively and fix the crash. Enter wrong values, don't enter anything at all, intentionally try to break your app and get it to crash. Then you will find your error and you can fix.
EDIT BASED ON COMMENT BELOW
"My app don`t need conect with external database, because I got the information inside" - in this case, no, you do not need to add IPv6 support because you are not communicating with the internet for logging in purposes.
You can keep the login given it is only going to be 2 people using the app, just resolve the crash when logging in.
To test, enter a variety of incorrect passwords and usernames to ensure that there is no crash on incorrect entries, and confirm that correct entries do not crash the app.
Original Answer
Apple indicated that because there is a login feature, they think it is trying to communicate with an external database (ie a database that is not on the device). If there is no external database, just fix the crash is what they are asking.
Based on your question, you have eluded to the app not communicating externally for logging in. While some may find this odd, it is not uncommon. An example for those wondering would be a childrens app for iPad. The iPad might be shared amongst several children and as such each child might complete different sections or features of the app so an account local to the device is a good idea if there is no cloud support.
If there is external communication, you need to handle the case for no internet access. The question has been answered extensively, however this was the first result I found:
Detect Internet Connection and display UIAlertview Swift 3
Update: Why do I need to Support the case for no internet connection?
A use case:
John has just downloaded your app. He has just walked through the steps to create an account, but he has accidentally set his device to Aeroplane Mode.
John hits the "Create Now" button but nothing is happening. There is no error or success alert appearing, the screen has not changed, he can't see a loading icon. John is confused and getting frustrated because he's certain that he has completed everything in the form.
John doesn't understand that he needs internet connectivity to successfully submit a request to create an account. John decides to delete your app from his device and leaves a bad review.
John really could have used an alert saying "You need internet connection to sign up to this app. Please check you are connected and try again". This would have made John a whole lot happier and he probably would have continued to use your app with all of it's amazing features.
More information can be found in the guidelines that Apple mentioned, and further to this, the Apple Design Principles Guide is an invaluable resource.
I hope this makes sense.

MailCore2 Alternative

I've spent a great deal of time creating an Objective-C based application for the iPhone. I incorporated MailCore2 so that emails could be sent without a dialog popping up (Apple's system of in-app email). My app works perfectly on all of my devices, including all outside devices associated with TestFlight beta testing. Unfortunately, the moment Apple reviews the app, they always reject it, saying that MailCore2 made an AlertView with the contents: "Error! Please connect to the internet or try again later.", and the email never properly sends.
My question is, is there an alternative to MailCore2? I've heard of MailGun, but I see no documentation on their site for either Objective-C or Swift.
Thanks in advance to all who reply.
Mailigun is a services and yes you can send mail with Mailgun, but not receive mail like normal email app. Anyway it is completely different from mailcore (Imap/pop). Mailcore is so hard to use...
If you need only send email i can provide you entirely code for achieve this using mailgun.

iOS Simulator - Can't log in with iCloud

I am trying to test the iCloud sync functionality of my app between a (real) device and the simulator, however I can't seem to log into iCloud. When I go to Settings->iCloud and enter my account details, it just gets stuck on 'Verifying'. However if I enter incorrect details, it brings up the invalid password prompt as expected.
Has anyone got a fix for this?
TL;TR Log into http://www.icloud.com and agree to the terms.
It works. But there are some additional steps needed:
At work I tried with my new apple id: at work XYZ#mywork.com. At first It didn't work even though I was able to access iOS dev center. I realised that it is required to access to http://www.icloud.com with such Apple ID and agree to the terms. After a few seconds I received a 'Welcome to iCloud' email to my work address and then I went back to the simulator and I successfully logged in.
BTW, for a personal account XYZ#mac.com I have for ages and use regularly it worked from the beginning probably because I have agreed to the terms a long time ago.
So not only #icloud.com of #me.com or #mac.com accounts work. All accounts work.
Create an Apple ID from appleid.apple.com. You need an email address and a phone number to authenticate.
Login to icloud.com and accept terms and conditions.
Open Simulator, log in with your new Apple ID.
Done.
I had the same problem today as I was trying to use iCloud + Core Data in the simulator (iOS 8.0, Mavericks). What I found out is that you should use, in the simulator, your #icloud.com e-mail. If you do that, you are able to login and use some iCloud functionality.
This is Perfect Solution, it's 100% working
Create an Apple ID from appleid.apple.com. You need an email address and a phone number to authenticate.
Login to icloud.com and accept terms and conditions.
Open Simulator, log in with your new Apple ID.
Done.

feedback form in iOS app - allowed?

Would anyone one know if Apple has restrictions on providing a user feedback/bug report form within an app? I've searched around but haven't found anything very clear. Might seem a dumb question but I don't want to waste time on it if it is not allowed.
Also, assuming it is allowed - I guess I would do it through a server-based php script, rather than trying to wire it up through the user's email. I am not trying to capture the user's email or anything like that - just feedback/bug responses.
Cheers!
I believe companies like Uservoice and GetSatisfaction have mobile sdks for submitting feedback about apps.
Uservoice lets people submit anonymously, GetSatisfaction requires an account.
You can do this however you would like, lots of apps support emailing feedback but if you prefer to put in the work you could also do custom fields and have it simply send the response back through your own server.
Yes, it's allowed, and there's nothing to stop you doing it through email either - what is the difference between emailing a bug report using MFMailComposeViewController and emailing anything else?

Resources