Get an iPhone UDID from Mobile Safari - ios

I wanna get an iphone UDID in mobile safari,and I follow this Getting an iPhone UDID from Mobile Safari, however, I doubt whether we do interactions with apple's server(ex: send some data to apple's server or get some data from apple's server ) during the steps mentioned in above article.
They click a link to a .mobileconfig XML file on your website
This pulls up their provisioning settings on their phone & offers
them an 'Install' button (which they must press)
The phone sends the data you requested in encrypted XML to the URL
you set in your .mobileconfig
You process the resulting data & show them a "thank you" web page

The only useful reason I can think of for having someone's UDID outside of an app would be for a beta distribution service, in which case you're almost certainly better off using a platform such as Testflight/Apple Beta or Installr (personally, I find Installr far easier to use and provision devices than Apple/Testflight).
If that is what you're trying to do, definitely give Installr a shot - it can connect to your Apple account and automatically provision devices, I've used it to send several betas or private builds to non-technical people and its by far been the easiest set up process.
Otherwise, mikep is right, it's iffy territory and I think Apple would disapprove of it / users are highly unlikely to accept the mobileconfig file anyway
Installr

Apple Server plays no role while you retrieve the UUID from the device by the above method mentioned in your question.
You can check this by creating a hotspot and connect both your phone and the server which serve the .mobileconfig file to the hotspot.
install the provision file on your phone and it will send back the response to the URL mentioned in the .mobileconfig file.
tip: you have to install trust certificate before installing the .mobileconfig file.

You can visit this site UDID
Here it will install a certificate and after installing it will show the UDID of the current device.

Related

Distribute iOS App executable ( iPA ) to a set of users over email to install

I recently finished an application in Unity for a client who runs a sporting event and wanted the app to let the referees keep a more accurate log of the statistics of each game. When building for android, i get a single file that i can send to my device and install it/run it. The part that i have some questions is re-building that same project for IOS.
I know i MUST have xcode which means i MUST have a mac OS, but here are a few questions that i am unaware of.
1) With the most recent release of xcode, developers dont need the $99 apple developers kit to produce something and test it on their device. From what i learned, is it true that you need to verify each device you send the application to in order to test it?
2) Is there a way to compile the IOS application in a way that i can get a single file, or even a folder, and send it via email to my client, at which point they can download the file to their phone and have the application installed?
3) What is the easiest route i can take in order to get my application into ~30 peoples iphones without individually signing each phone to my application?
Thankyou for your help!
You will have to remove this question as what i understand this is a programming site, Please find the answer for reference below as per your question order.
with xCode 7.0 you can do this, we dont need any licenses and its free for any number of devices to test , refer :- link
Yes you can generate a executable which is termed as iPA , but if you want anyone else to install the iPA, either you will have to generate this using a enterprise profile, or you wil have to add you client device id while generating the profile on apple developer protal :- refer :- link
post which they can install the iPA using itunes
This is not possible as per my knowledge, as Apple has strict poilicies as you cant distribute witout their knowledge. that is the reason of having the apple developer account at first place.
Hope the following helps:
1) For testing on your local device XCode should set up proper provisioning files for the development builds of your app automatically once you purchase a developer license.
2) I build Enterprise Ad Hoc applications for a large publicly traded client and I'm able to send the compiled .IPA file to the client and have him test it by installing it via iTunes after I've signed it with a production certificate through XCode. He tests the app using that method before using a third party vendor to distribute the app on their corporately owned iPhones. The same should work if you sign your application with a production cert, although the aforementioned may be limited to the enterprise account's certificate.
3) If you're trying to remotely install a development version of the app on a test phone you will need to verify the phone via UDID in the Apple Developer center for AdHoc distribution, or use the TestFlight method. You can read more about how to do both of these methods here.
Hope this answer will help you out & good luck!
I think for that what you want you need a Paid Apple Developer because it is not possible (without Jailbreak) to install Apps which are not from the AppStore in iOS. So you have to "test" the App on each iPhone you want the App to run on, or you have to publish it to the AppStore, where you can set, that only specific Apple-IDs may download your app.
Thanks luca4499 and Max. I guess the $99 apple dev kit is the way i'm going to have to go then.
To clarify to other users interested in the same questions.
You can develop for multiple people without using the dev kit as long as your list of people isnt changing often, or you are ok with adding each device separately.
If you want to distribute your application, the easiest way is to get the apple dev kit.

How do I send people my app beta?

Whenever I've asked people about how to send out a beta through email, they've always told me "Oh, it's easy. You just export the IPA, then send everyone the link." I've done this myself as a tester. I tap the link, and it installs. Easy as that.
And now I can't find out how to do that.
For me, I export, and attach the link in an email to myself, and it forwards me to safari, with an "Open with..." prompt. I can't figure out how to get it to install.
I'm not interested in TestFlight or anything that involves more complication. I just want to send people my build, and can't figure out which part I'm getting wrong.
Assuming (and I hope you don't) jailbreak targeted devices:
With a basic Apple developer licence, you'll need to add devices UDID into the provisioning profile you built your app with. Using a third-party service is a great solution (Crashlytics, TestFlight).
If you have an Enterprise Apple Developer plan, you can build your app with your certificate and install it on a device without adding its UDID before - that's what you need. Once you built the app, you'll just have to host the generated .ipa on a web-server with HTTPS and send the direct link to your customer. Please find the official documentation here and here.
You'll need a webserver for this, and one that support HTTPS.
Here is a link how to do this. Of course, this only works if you know the user's UDIDs beforehand, or use an In-House distribution profile.

iOS: Releasing app for third party testing

I have developed an iOS app. I want to give it for third party testing. What should i choose scheme when creating build for third party testing, Debug or Release? Third party testing device UDID is included in the provisioning profile.
If I use TestFlight for OTA installation, will the UDID to be included still? (or) TestFlight app doesn't need any UDID included in the build?
Please advise!
Thank you!
(Seems like I can't comment yet). In response to the comments posted to the original question:
TestFlight, part of Burstly, is now Apple propery, as mentioned in this rumor
http://www.macrumors.com/2014/02/21/apple-may-acquire-testflight/
and later confirmed by Apple.
http://recode.net/2014/02/21/apple-confirms-burstly-buy/
As mentioned by someone, Apple uses shuts down their acquisitions and hence it may not be a very good idea to start using it now.
Archive your app, which will be a release build by default as far as I know. Doesn't really matter what the build type is, then in the archive manager click "distribute" and "save for enterprise or ad-hoc deployment", and select a provisioning profile for the app that has your beta tester's device IDs embedded in it, only those devices will be able to run the app.
This will create a file with the profile built in. Users can install it on their phone using three methods:
add it to their iTunes library and sync the phone using USB
use the "iPhone Configuration Utility", which is a free download for windows/mac from Apple's website, and doesn't require iTunes and all the baggage that brings along with it
upload the file to a website and also upload an XML file pointing to the download URL and also a PNG image, display name, and a few other things. Get the iOS device to visit the XML file's URL with itms-services:// as the protocol. Any means to open the URL is fine, email, website link, SMS message, whatever.
Test Flight uses the third approach. But you can easily set it up yourself.
Extensive documentation for all three approaches is available at http://developer.apple.com
Whichever method you use you'll need to build the app with a provisioning profile that includes your tester's device UDID.
I suggest using a Release build, so they are actually going to be testing the same version you are planning on releasing.

Programmatically verify an MDM profile (configuration) has been successfully pushed to an iOS device?

I am writing an iOS client app that sends a request to a server who turns around and requests that an updated configuration profile be pushed to my device via external MDM (AirWatch). I believe the profile shows up in Settings -> General -> Profiles. When the MDM finishes processing the profile push (sent or queued, I'm not sure), it responds to the calling server saying 'yes the profile was pushed' who echoes that response to my client app.
The problem is that it takes about 30 seconds for the profile to actually get pushed / installed on the device, while the web service response is much shorter than that. So my client app believes the configuration profile has been installed, and it allows the app to continue while the profile is still unavailable. I would like to be able to detect when the profile is successfully pushed to my device, and not allow the app to continue until afterwards. My other option is to make a pop-up saying the profile was successfully pushed, but I would still need to detect the profile being installed.
Most of the 2013 Q&A on stackoverflow appears to say it is not possible to query configuration profiles, but I was wondering if there are any work-arounds people have recently tried. I thought of the following possibilities - but I don't know which is preferred, or if it is even possible with iOS7 (as of 2/12/2014).
Query the installed profiles for the one I need (sounds impossible
from most Q&A I've seen; don't know if updates to iOS7 has changed
this)
What if I knew the exact profile name I was looking for?
Add a notification listener for MDM pushes
Use registerForRemoteNotificationTypes / didReceiveRemoteNotification or didFinishLaunchingWithOptions
The MDM push may happen outside of my app, so sandboxing may get in the way
Can you listen to the port the MDM is using?
Listen for changes to the profile configuration settings
Add a request at the server to query the device for the installed profile, and call that prior to sending a response to the client
Do certificate validation by including a self-signed cert in the profile and verifying it
Seems a little hacky and I’m not sure if my MDM will allow me to do it
Use reachability methods
As a note I have looked at the following links plus more:
WWDC 2013 MDM slides - didn't see anything that stood out
iOS get Configuration Profiles that are installed
Verify/Check to see if a Configuration Profile has been installed on iPhone (from 2010)
Thanks in advance!
It will not be possible for your app to determine whether a configuration profile has been installed as no (public) APIs exist that allow an app to query it's installed profiles nor will you be able to determine whether an MDM push notification has been sent to the device. You will have to rely on your MDM (AirWatch) to determine with certainty that the profile has been installed.
When AirWatch pushes the profile to the device it will receive an acknowledgement that the profile has been installed but it's not until AirWatch re-queries all installed profiles that it will report that the profile has been installed. What I have seen is that soon after AirWatch sends a profile installation command it will re-query the list of profiles on the device so it may be feasible to just poll the server a few times and wait until you see that the profile has been installed. I have not spent much time in the AirWatch REST API in detail but I assume this is possible.
Other than this, the only other option I can see is for you to do something with Reachability to detect whether the VPN tunnel is being setup.

Can we install an unpublished iOS app on a remote device.?

I am developing an iOS app which needs to be tested in a device which is present in another country with the client. If needed I can get the UDID and other details of the device. Can I install my under-development app on that device without publishing my App.? If yes, please explain the procedure.
Thank you all in advance.
Yes, you can. To do this you will need the UDID of all the devices where the App will be installed, and then you need to generate an Ad Hoc provisiong profile for those devices.
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html
To send the app to your client, go to XCode > Product (Menu) > Archive.
Then open Organizer > Archives (Tab) > Distribute. Follow on-screen instructions.
This will generate an .ipa file (executable) which you can then send to your testers (through email, or whatever other mean). He will have to install this .ipa by dragging and dropping it onto iTunes.
For further discussions look at this question.
Yes, you can.
1)Register client's device into device list in your developer account on apples site
2)Generate Ad-Hoc provision profile and send to your client with *.ipa file
3)Test it
Also take a look at 3-rd party services like TestFlight - http://testflightapp.com .Very popular and convenient way to work with beta-testers all around the world.
Answer is yes. You need to get UDID and add it to your developer portal as testing device. Download the provisioning profile and rebuild the app with revised provisioning profile. This app can be send to client for testing.
If you can sign with an Distribution profile for enterprises than you can upload that file on a link and user can Install the iPA file just by clicking on that link..
for more info check on these links..
How to distribute ios application wirelessly without managing UDIDs and recompilation
iPhone Application Enterprise Distribution Process
This an incredibly bad idea. What you are setting up is a back door into any iOS device to plant (potentially) malicious software. While your intentions may be good the long term effects are not.
Publishing your app would require it to go through code review, which is entail to ensure the enteritis of the app.

Resources