{"id":275692,"date":"2016-03-09T08:20:02","date_gmt":"2016-03-09T05:20:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=275692"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=275692","title":{"rendered":"\u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 iOS \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0442\u0435\u043a \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 Microsoft"},"content":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/376\/7f8\/856\/3767f885618149ae969317dd0ad36b51.jpg\"\/><\/p>\n<p>  \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0441\u0442\u0430\u043b\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043e \u043f\u043e\u043a\u0443\u043f\u043a\u0435 Xamarin \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439 Microsoft. \u0414\u0430\u043d\u043d\u0430\u044f \u043d\u043e\u0432\u043e\u0441\u0442\u044c \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043d\u0435\u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435, \u0441\u0440\u0435\u0434\u0438 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u044d\u0442\u0438\u043c, \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u0433\u0434\u0435 \u0432 Microsoft Full Stack \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043d\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u0440\u0430\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0446\u0438\u0438 IT-\u043e\u0442\u0435\u043b\u0430, \u043b\u0438\u0431\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0432 \u0446\u0435\u043b\u043e\u043c. \u0414\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u044b\u043c \u0432\u044b\u0431\u043e\u0440 Xamarin, \u043a\u0430\u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430, \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u043f\u0430\u0437\u043b, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0438\u0437 SharePoint, ASP.NET MVC, WebAPI services \u0438 Azure.<br \/>  \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0442\u0435\u043a \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 Microsoft.<br \/>  \u041e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u0435\u0442\u043e\u0434, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0443\u043a\u043b\u043e\u043d \u0432 .NET \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043a iOS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0431\u0443\u0434\u044c \u0442\u043e Apache Cordova \u0438\u043b\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043d\u0430\u0442\u0438\u0432.<br \/>  <a name=\"habracut\"><\/a><\/p>\n<h4>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u0412 \u0441\u0432\u043e\u0435\u0439 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 <a href=\"https:\/\/habrahabr.ru\/post\/277763\/\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u044f \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 iOS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 MDM-\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 OS X Server. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043e \u043c\u0435\u0442\u043e\u0434\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0432 \u0430\u0440\u0441\u0435\u043d\u0430\u043b\u0435 \u0441\u0442\u0435\u043a \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 Microsoft.<\/p>\n<p>  \u041f\u043e\u0447\u0435\u043c\u0443 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0430\u043a\u0446\u0435\u043d\u0442 \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b Microsoft? \u041e\u0442\u0432\u0435\u0442 \u043b\u0435\u0436\u0438\u0442 \u043d\u0430 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438. \u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u043a\u0440\u0443\u043f\u043d\u0430\u044f, \u0442\u043e, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043c\u044b \u0438\u043c\u0435\u0435\u043c \u0434\u0435\u043b\u043e \u0441 SharePoint, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442, \u0438 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432, \u0438\u043c\u0435\u044e\u0449\u0438\u0445 \u043e\u043f\u044b\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434 .NET. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432\u0441\u0435 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u0445, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, PHP.<\/p>\n<p>  \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u043c\u0435\u0442\u043e\u0434 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0432\u044b\u0431\u0440\u0430\u044e\u0442 \u0432 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0447\u0435\u043d\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043e \u0438 \u0438\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043b\u0438\u0431\u043e, \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430, \u043a\u043e\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u0438\u043b\u0438 \u043a\u0443\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.<\/p>\n<p>  <i>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/i><br \/>  Microsoft \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0435\u0442 MDM-\u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 \u0431\u0430\u0437\u0435 System Center Configuration Manager \u0438 Windows Intune. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e \u043d\u0438\u0445 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c <a href=\"https:\/\/www.microsoft.com\/ru-ru\/server-cloud\/products\/microsoft-intune\/overview.aspx\">\u0440\u0430\u0437<\/a>, <a href=\"https:\/\/technet.microsoft.com\/ru-ru\/library\/jj884158.aspx\">\u0434\u0432\u0430<\/a> \u0438 <a href=\"https:\/\/technet.microsoft.com\/ru-ru\/library\/dn376523.aspx\">\u0442\u0440\u0438<\/a>.<\/p>\n<p>  <\/p>\n<h4>\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/h4>\n<p>  \u0414\u0430\u0432\u0430\u0442\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c\u0441\u044f \u0441 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0441\u0442\u0430\u0432\u044f\u0442, \u0438 \u0440\u0435\u0441\u0443\u0440\u0430\u043c\u0438, \u0438\u043c\u0435\u044e\u0449\u0438\u043c\u0438\u0441\u044f \u0443 \u043d\u0430\u0441, \u0434\u043b\u044f \u0438\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f:<\/p>\n<ul>\n<li>\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a \u0444\u0430\u0439\u043b, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438;<\/li>\n<li>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432;<\/li>\n<li>\u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0443\u0447\u0435\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 Apple Developer Program;<\/li>\n<\/ul>\n<p>  \u041f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0438\u043c \u043c\u0438\u043d\u0443\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<ul>\n<li>\u0414\u043b\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043e \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0447\u0442\u0430;<\/li>\n<li>\u0423 \u043d\u0430\u0441 \u043d\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430, \u043b\u0438\u0431\u043e, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438;<\/li>\n<li>\u0412\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b, \u0433\u0440\u0443\u0431\u043e, 100 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438;<\/li>\n<li>\u041f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0440\u044f\u0434 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0438 \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435;<\/li>\n<\/ul>\n<p>  \u041a\u0440\u0430\u0442\u043a\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043d\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432) \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<ul>\n<li>\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c UDID \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c;<\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c UDID \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u043d\u0430 <a href=\"https:\/\/developer.apple.com\/\">\u0441\u0430\u0439\u0442\u0435 Apple<\/a>;<\/li>\n<li>\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f (Provisioning Profile) \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f;<\/li>\n<li>\u041f\u0435\u0440\u0435\u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u043c Provisioning Profile;<\/li>\n<li>\u0412\u044b\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u0435\u0431-\u0440\u0435\u0441\u0443\u0440\u0441\u0435;<\/li>\n<\/ul>\n<p>  \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 UDID \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 iTunes \u0438\u043b\u0438 Apple Configurator 2. \u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u0436\u0435\u043b\u0430\u043d\u0438\u0435\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430. \u042d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439 (<a href=\"https:\/\/developer.apple.com\/library\/ios\/featuredarticles\/iPhoneConfigurationProfileRef\/Introduction\/Introduction.html\">iOS \u0421onfiguration Profile<\/a>), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u0444\u0430\u0439\u043b\u044b \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c *.mobileconfig, \u0438 \u0438\u043c\u0435\u044e\u0449\u0438\u0435 XML-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443. <br \/>  \u0415\u0441\u043b\u0438 \u043a\u0440\u0430\u0442\u043a\u043e, \u0442\u043e \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u0432 \u0444\u0430\u0439\u043b\u0435 *.mobileconfig \u0432\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0443 iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 UDID), \u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 URL, \u043a\u0443\u0434\u0430 iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442 \u043e\u0442\u0432\u0435\u0442\u043d\u044b\u0439 XML-\u0444\u0430\u0439\u043b \u0441 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u044f\u043c\u0438.<\/p>\n<p>  \u041e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u043f\u0440\u044f\u043c\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435 \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0435\u0442 \u0440\u044f\u0434 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u041e\u0434\u043d\u0430 \u0438\u0437 \u043d\u0438\u0445 \u2014 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f HTTPS.<\/p>\n<p>  <\/p>\n<h4>\u041a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442<\/h4>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0432\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u043f\u0440\u0438\u043a\u0438\u043d\u0443\u0442\u044c \u043e\u0431\u044a\u0435\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b \u0434\u0432\u0435 \u0441\u0445\u0435\u043c\u044b.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Apple Developer Program<\/b><\/p>\n<div class=\"spoiler_text\"> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/6ba\/248\/1f8\/6ba2481f86f24282bb26621b66b29a8e.png\"\/>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Apple Developer Enterprise Program<\/b><\/p>\n<div class=\"spoiler_text\"> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/670\/7fd\/a17\/6707fda178274736884117079f763a66.png\"\/>  <\/div>\n<\/div>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Apple Developer Program \u0432\u043b\u0435\u0447\u0435\u0442 \u0437\u0430 \u0441\u043e\u0431\u043e\u0439 \u043c\u043d\u043e\u0433\u043e \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u0440\u0430\u0441\u0445\u043e\u0434\u043e\u0432. \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u043a\u0430\u043a \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439.<\/p>\n<p>  \u042f \u0440\u0430\u0437\u0431\u0438\u043b \u0441\u0432\u043e\u0435 \u043f\u043e\u0432\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u0440\u0438 \u0441\u0435\u043a\u0446\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u043d\u0443\u0436\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0411\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u0445 \u00ab\u0448\u0430\u0433\u0430\u043c\u0438\u00bb. \u0418\u0442\u0430\u043a, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043a\u0440\u0430\u0442\u043a\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c.<\/p>\n<p>  <b>\u0428\u0430\u0433 1:<\/b> \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 UDID iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f:<\/p>\n<ul>\n<li>\u0421\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0444\u0438\u043b\u044c *.mobileconfig, \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043f\u043e\u043b\u0435\u0439;<\/li>\n<li>\u0412\u044b\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0438\u0441\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u044c *.mobileconfig, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f;<\/li>\n<li><i>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c:<\/i> \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044c, \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u043d\u044b\u0439 \u043d\u0430 html-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0447\u0435\u0440\u0435\u0437 Safari \u043d\u0430 iPhone;<\/li>\n<li><i>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c:<\/i> \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044c, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432\u0438\u0434\u0438\u0442 html-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u00ab\u0421\u043f\u0430\u0441\u0438\u0431\u043e!\u00bb;<\/li>\n<li>\u041d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f UDID \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u0442\u043e\u0442 UDID \u0432 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0435 iOS-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430;<\/li>\n<\/ul>\n<p>  <b>\u0428\u0430\u0433 2:<\/b> \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u0441\u044b\u043b\u043a\u0443:<\/p>\n<ul>\n<li>\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c *.ipa -\u043f\u0430\u043a\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 XCode \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438;<\/li>\n<li>\u041f\u0440\u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435 \u043f\u0430\u043a\u0435\u0442\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u043a \u043d\u0435\u043c\u0443 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435;<\/li>\n<li>\u0412\u044b\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435: manifest.plist, myApp.ipa, image.57&#215;57.png, image.512&#215;512.jpg \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043e\u0434\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435 app-files;<\/li>\n<li>\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432: .jpg .png .plist .ipa;<\/li>\n<li>\u041d\u0430 html-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0434\u0430\u0442\u044c \u0441\u043f\u0435\u0446-\u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 manifest.plist, \u0444\u043e\u0440\u043c\u0430\u0442\u0430 itms-services:\/\/?action=download-manifest;<\/li>\n<li>\u0412\u0435\u0431-\u0440\u0435\u0441\u0443\u0440\u0441 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0447\u0435\u0440\u0435\u0437 https \u0441 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c;<\/li>\n<li>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0441\u043f\u0435\u0446-\u0441\u0441\u044b\u043b\u043a\u0435 \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435;<\/li>\n<\/ul>\n<p>  <b>\u0428\u0430\u0433 3:<\/b> \u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 \u043d\u0430 \u0431\u0430\u0437\u0435 Windows Server 2012 (\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043a \u0428\u0430\u0433\u0443 2, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 \u0441 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c\u0438 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438):<\/p>\n<ul>\n<li>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 DNS-\u0441\u0435\u0440\u0432\u0435\u0440\u0430;<\/li>\n<li>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 IIS;<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432;<\/li>\n<li>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438 \u0441\u0431\u043e\u0440\u043a\u0430 \u0441\u0430\u0439\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f;<\/li>\n<\/ul>\n<p>  <i>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/i><br \/>  \u042f \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u0432\u043e\u0436\u0443 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u044d\u0442\u0430\u043f\u043e\u0432 \u0438 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u0447\u0442\u043e\u0431\u044b \u0443 \u043b\u044e\u0434\u0435\u0439, \u0441 \u0434\u0430\u0436\u0435 \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u043d\u0438\u044f\u043c\u0438 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438, \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u043e \u0437\u0430\u0442\u0440\u0443\u0434\u043d\u0435\u043d\u0438\u0439 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u043f\u0440\u043e\u0448\u0443 \u0431\u044b\u0442\u044c \u0441\u043d\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438. \u0421\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u0430 \u043a\u0430\u043a \u00ab\u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u00bb. \u0421\u043f\u0430\u0441\u0438\u0431\u043e.<\/p>\n<p>  <\/p>\n<h4>\u0428\u0430\u0433 1: \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 UDID iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/h4>\n<p>  \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f UDID iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ASP.NET WebAPI 2. \u042d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u0440\u0430\u0437\u0443 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442 \u043d\u0430\u043c:<\/p>\n<ul>\n<li>\u0414\u0438\u0430\u043b\u043e\u0433 \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0447\u0435\u0440\u0435\u0437 MVC-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b;<\/li>\n<li>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 XML-\u0444\u0430\u0439\u043b\u0430 \u043e\u0442 iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0447\u0435\u0440\u0435\u0437 API-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440;<\/li>\n<li>\u0425\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u0438 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 UDID;<\/li>\n<\/ul>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 WebAPI<\/b><\/p>\n<div class=\"spoiler_text\"> <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0dc\/e27\/3e9\/0dce273e9fca4d22b275aef9f8ef2938.png\"\/>  <\/div>\n<\/div>\n<p>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 \u0432 <i>\u0428\u0430\u0433\u0435<\/i> 1 \u0438 2 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Microsoft Azure. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 *.azurewebsites.net \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043d\u0430\u043c \u043d\u0430 <i>\u0428\u0430\u0433\u0435<\/i> 2. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0434\u043b\u044f \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c, \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0443\u044e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044e. \u041e\u0434\u043d\u0430\u043a\u043e, \u044d\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<p>  \u0421\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u0444\u0430\u0439\u043b *.mobileconfig \u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0435\u0433\u043e \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e WebAPI-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u00abDownloads\/corp-apps.mobileconfig\u00bb  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 *.mobileconfig<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">    &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;     &lt;!DOCTYPE plist PUBLIC &quot;-\/\/Apple\/\/DTD PLIST 1.0\/\/EN&quot; &quot;http:\/\/www.apple.com\/DTDs\/PropertyList-1.0.dtd&quot;&gt;     &lt;plist version=&quot;1.0&quot;&gt;         &lt;dict&gt;             &lt;key&gt;PayloadContent&lt;\/key&gt;             &lt;dict&gt;                 &lt;key&gt;URL&lt;\/key&gt;                 &lt;string&gt;http:\/\/iphone-udid.azurewebsites.net\/api\/xml&lt;\/string&gt;                 &lt;key&gt;DeviceAttributes&lt;\/key&gt;                 &lt;array&gt;                     &lt;string&gt;UDID&lt;\/string&gt;                     &lt;string&gt;IMEI&lt;\/string&gt;                     &lt;string&gt;ICCID&lt;\/string&gt;                     &lt;string&gt;VERSION&lt;\/string&gt;                     &lt;string&gt;PRODUCT&lt;\/string&gt;                 &lt;\/array&gt;             &lt;\/dict&gt;             &lt;key&gt;PayloadOrganization&lt;\/key&gt;             &lt;string&gt;Corp Apps&lt;\/string&gt;             &lt;key&gt;PayloadDisplayName&lt;\/key&gt;             &lt;string&gt;CorpApps&lt;\/string&gt;             &lt;key&gt;PayloadVersion&lt;\/key&gt;             &lt;integer&gt;1&lt;\/integer&gt;             &lt;key&gt;PayloadUUID&lt;\/key&gt;             &lt;string&gt;B43A078F-E0E2-4F52-B1E6-C03AD7032EDF&lt;\/string&gt;             &lt;key&gt;PayloadIdentifier&lt;\/key&gt;             &lt;string&gt;com.CorpApps.profile-service&lt;\/string&gt;             &lt;key&gt;PayloadDescription&lt;\/key&gt;             &lt;string&gt;This temporary profile will be used to find and display your current device's UDID.&lt;\/string&gt;             &lt;key&gt;PayloadType&lt;\/key&gt;             &lt;string&gt;Profile Service&lt;\/string&gt;         &lt;\/dict&gt;     &lt;\/plist&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0437\u0430\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0442 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0434\u0432\u0430 \u043f\u043e\u043b\u044f:<\/p>\n<p>  <i>URL<\/i> \u2014 \u044d\u0442\u043e \u0430\u0434\u0440\u0435\u0441 \u043d\u0430\u0448\u0435\u0433\u043e API-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c XML-\u0444\u0430\u0439\u043b, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043e\u0442 iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430;<br \/>  \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u044f \u0443\u043a\u0430\u0436\u0443 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0441\u0430\u0439\u0442, \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u043d\u044b\u0439 \u0432 Azure, \u0433\u0434\u0435 \/api\/xml \u2014 POST-\u043c\u0435\u0442\u043e\u0434 WebAPI \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430:  <\/p>\n<pre>http:\/\/iphone-udid.azurewebsites.net\/api\/xml<\/pre>\n<p>  <i>PayloadUUID<\/i> \u2014 \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u043e\u043b\u0435, \u043a\u0430\u043a \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 GUID, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<br \/>  \u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 UUID (PayloadUUID) \u043c\u043e\u0436\u043d\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 OS X \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u00abuuidgen\u00bb:<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b uuidgen<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">    os-x-server:~ zanael$ uuidgen --     generate a universally unique identifier     usage: uuidgen [-hdr]             -hdr    emit result in form suitable for coping into a header     os-x-server:~ zanael$ uuidgen     B43A078F-E0E2-4F52-B1E6-C03AD7032EDF     os-x-server:~ zanael$ <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u044b uuidgen<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/436\/b71\/bcc\/436b71bcc3d145df9cc3a941564d32ea.png\"\/>  <\/div>\n<\/div>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c XML-\u0444\u0430\u0439\u043b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 UDID. \u041d\u0430\u0437\u043e\u0432\u0435\u043c \u0435\u0433\u043e udids.xml, \u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0435\u0433\u043e \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e WebAPI-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u00abApp_Data\/udids.xml\u00bb.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u0442\u0443\u043a\u0442\u0443\u0440\u0430 XML-\u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 UDID<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">    &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;     &lt;udids&gt;         &lt;iPhone&gt;             &lt;TimeAdded&gt;&lt;\/TimeAdded&gt;             &lt;UDID&gt;&lt;\/UDID&gt;           &lt;\/iPhone&gt;     &lt;\/udids&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 Web.config \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432-\u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 Web.config<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">    &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;     &lt;configuration&gt;         &lt;system.webServer&gt;              &lt;staticContent&gt;                 &lt;mimeMap fileExtension=&quot;.mobileconfig&quot; mimeType=&quot;application\/x-apple-aspen-config&quot; \/&gt;             &lt;\/staticContent&gt;         &lt;\/system.webServer&gt;     &lt;\/configuration&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 UDID \u0432 \u043f\u0430\u043f\u043a\u0443 Models.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0439\u043b iPhoneUDID.cs<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    namespace iPhoneUDID.Models     {         public class iPhoneUDID         {             public string TimeAdded { get; set; }             public string UDID { get; set; }         }     } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c HomeController (MVC-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440) \u0432 \u043f\u0430\u043f\u043a\u0435 Controllers \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u043d\u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 UDID \u0438\u0437 XML.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0439\u043b HomeController.cs<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    using System;     using System.Collections.Generic;     using System.Web.Mvc;     using System.Xml.Linq;          namespace iPhoneUDID.Controllers     {         public class HomeController : Controller         {             [HttpGet]             public ActionResult Index()             {                 ViewBag.Title = &quot;Home Page&quot;;                      XDocument databaseXML;                 try                 {                     databaseXML = XDocument.Load(System.Web.Hosting.HostingEnvironment.MapPath(&quot;~\/App_Data\/udids.xml&quot;));                 }                 catch (Exception exp)                 {                     databaseXML = new XDocument(new XElement(&quot;udids&quot;));                 }                      List&lt;Models.iPhoneUDID&gt; UDIDs = new List&lt;Models.iPhoneUDID&gt;();                 XElement iPhones = databaseXML.Element(&quot;udids&quot;);                 foreach (XElement e in iPhones.Elements(&quot;iPhone&quot;))                 {                     UDIDs.Add(new Models.iPhoneUDID { TimeAdded = e.Element(&quot;TimeAdded&quot;).Value, UDID = e.Element(&quot;UDID&quot;).Value });                 }                 ViewBag.UDIDs = UDIDs;                      return View();             }         }     } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c View (Index.cshtml) \u0434\u043b\u044f HomeController, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439 UDID.<br \/>  \u041f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 <i>Take UDID<\/i> \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441\u043a\u0430\u0447\u0430\u0435\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044c, iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u0439\u043c\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442 \u0438\u0445 \u043f\u043e URL, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0443\u043a\u0430\u0437\u0430\u043b\u0438 \u0432 *.mobileconfig \u0444\u0430\u0439\u043b\u0435 \u0432 XML-\u0444\u043e\u0440\u043c\u0430\u0442\u0435.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0439\u043b \/Views\/Home\/Index.cshtml<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"html\">    &lt;div class=&quot;jumbotron&quot;&gt;         &lt;h1&gt;Get your UDID&lt;\/h1&gt;         &lt;p class=&quot;lead&quot;&gt;Please, reach this page in Mobile Safari from your iPhone.&lt;\/p&gt;         &lt;p&gt;&lt;a href=&quot;\/downloads\/corp-apps.mobileconfig&quot; class=&quot;btn btn-primary btn-lg&quot;&gt;Take UDID&lt;\/a&gt;&lt;\/p&gt;     &lt;\/div&gt;     &lt;div class=&quot;row&quot;&gt;         &lt;p&gt;             @{                 foreach (iPhoneUDID.Models.iPhoneUDID item in ViewBag.UDIDs)                 {                     &lt;h5&gt;TimeAdded: @item.TimeAdded, UDID: @item.UDID&lt;\/h5&gt;                 }             }         &lt;\/p&gt;     &lt;\/div&gt;     &lt;div class=&quot;row&quot;&gt;         @Html.ActionLink(&quot;Clear UDIDs list&quot;, &quot;ClearHistory&quot;, &quot;Home&quot;, null, new { @class = &quot;btn btn-primary btn-large&quot; })     &lt;\/div&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c XmlController (WebApi2-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440) \u0432 \u043f\u0430\u043f\u043a\u0435 Controllers, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043b\u043e\u0432\u0438\u0442\u044c XML-\u0444\u0430\u0439\u043b \u043e\u0442 iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0438\u0437 \u043d\u0435\u0433\u043e UDID \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 XML. <br \/>  \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Windows-\u043c\u0430\u0448\u0438\u043d\u0443, \u0442\u043e \u0432\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0444\u0430\u0439\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f *.plist. \u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0430 GitHub, \u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u043b\u0438\u0448\u044c UDID, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u0437\u044f\u0442\u044c \u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u043e \u0438\u0437 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u043d\u0435 \u0442\u044f\u043d\u0443\u0442\u044c \u043b\u0438\u0448\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0439\u043b XmlController.cs<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    using System;     using System.Net;     using System.Net.Http;     using System.Web.Http;     using System.Xml.Linq;          namespace iPhoneUDID.Controllers     {         public class XmlController : ApiController         {             [HttpPost]             public HttpResponseMessage PostRawXMLMessage(HttpRequestMessage request)             {                 string plist = request.Content.ReadAsStringAsync().Result;                 int begin = plist.IndexOf(&quot;UDID&quot;) + 20;                 int end = plist.IndexOf(&quot;&lt;&quot;, begin);                 string UDID = plist.Substring(begin, end - begin);                      XDocument databaseXML;                 try                 {                     databaseXML = XDocument.Load(System.Web.Hosting.HostingEnvironment.MapPath(&quot;~\/App_Data\/udids.xml&quot;));                 }                 catch (Exception exp)                 {                     databaseXML = new XDocument(new XElement(&quot;udids&quot;));                 }                      databaseXML.Element(&quot;udids&quot;).Add(                     new XElement(&quot;iPhone&quot;,                         new XElement(&quot;TimeAdded&quot;, DateTime.Now.ToLongTimeString() + &quot; - &quot; + DateTime.Now.ToShortDateString()),                         new XElement(&quot;UDID&quot;, UDID)));                 databaseXML.Save(System.Web.Hosting.HostingEnvironment.MapPath(&quot;~\/App_Data\/udids.xml&quot;));                      HttpResponseMessage response = request.CreateResponse(HttpStatusCode.MovedPermanently);                 response.Headers.Add(&quot;Location&quot;, &quot;\/Thanks&quot;);                 return response;             }         }     } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c ThanksController (MVC-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440) \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0435\u0433\u043e UDID.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0439\u043b ThanksController.cs<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    using System.Web.Mvc;          namespace iPhoneUDID.Controllers     {         public class ThanksController : Controller         {             [HttpGet]             public ActionResult Index()             {                 ViewBag.Title = &quot;Thanks Page&quot;;                      return View();             }         }     } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c View (Index.cshtml) \u0434\u043b\u044f ThanksController.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0439\u043b \/Views\/Thanks\/Index.cshtml<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"html\">    &lt;div class=&quot;jumbotron&quot;&gt;         &lt;h1&gt;Thanks for Attending!&lt;\/h1&gt;     &lt;\/div&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0414\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e XML \u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c\u0438 UDID, \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 HomeController (MVC-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440) \u043c\u0435\u0442\u043e\u0434 ClearHistory.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0439\u043b HomeController.cs<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    [HttpGet]     public ActionResult ClearHistory()     {         ViewBag.Title = &quot;Home Page&quot;;              XDocument databaseXML = new XDocument(new XElement(&quot;udids&quot;));         databaseXML.Save(Server.MapPath(&quot;\/App_Data\/udids.xml&quot;));              ViewBag.UDIDs = new List&lt;Models.iPhoneUDID&gt;();              return View(&quot;Index&quot;);     } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0422\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0431\u0449\u0438\u0439 Layout (_Layout.cshtml) \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0434\u043b\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u0430.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0439\u043b _Layout.cshtml<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"html\">    &lt;!DOCTYPE html&gt;     &lt;html&gt;     &lt;head&gt;     &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text\/html; charset=utf-8&quot;\/&gt;         &lt;meta charset=&quot;utf-8&quot; \/&gt;         &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width&quot; \/&gt;         &lt;title&gt;@ViewBag.Title&lt;\/title&gt;         @Styles.Render(&quot;~\/Content\/css&quot;)         @Scripts.Render(&quot;~\/bundles\/modernizr&quot;)     &lt;\/head&gt;     &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text\/html; charset=utf-8&quot;\/&gt;     &lt;body&gt;         &lt;div class=&quot;navbar navbar-inverse navbar-fixed-top&quot;&gt;             &lt;div class=&quot;container&quot;&gt;                 &lt;div class=&quot;navbar-header&quot;&gt;                     &lt;button type=&quot;button&quot; class=&quot;navbar-toggle&quot; data-toggle=&quot;collapse&quot; data-target=&quot;.navbar-collapse&quot;&gt;                         &lt;span class=&quot;icon-bar&quot;&gt;&lt;\/span&gt;                         &lt;span class=&quot;icon-bar&quot;&gt;&lt;\/span&gt;                         &lt;span class=&quot;icon-bar&quot;&gt;&lt;\/span&gt;                     &lt;\/button&gt;                     @Html.ActionLink(&quot;\u0418\u043c\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f&quot;, &quot;Index&quot;, &quot;Home&quot;, new { area = &quot;&quot; }, new { @class = &quot;navbar-brand&quot; })                 &lt;\/div&gt;                 &lt;div class=&quot;navbar-collapse collapse&quot;&gt;                     &lt;ul class=&quot;nav navbar-nav&quot;&gt;                         &lt;li&gt;@Html.ActionLink(&quot;\u0414\u043e\u043c\u0430\u0448\u043d\u044f\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430&quot;, &quot;Index&quot;, &quot;Home&quot;, new { area = &quot;&quot; }, null)&lt;\/li&gt;                         &lt;li&gt;@Html.ActionLink(&quot;API&quot;, &quot;Index&quot;, &quot;Help&quot;, new { area = &quot;&quot; }, null)&lt;\/li&gt;                     &lt;\/ul&gt;                 &lt;\/div&gt;             &lt;\/div&gt;         &lt;\/div&gt;         &lt;div class=&quot;container body-content&quot;&gt;             @RenderBody()             &lt;hr \/&gt;             &lt;footer&gt;                 &lt;p&gt;&copy; @DateTime.Now.Year \u2013 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 ASP.NET&lt;\/p&gt;             &lt;\/footer&gt;         &lt;\/div&gt;              @Scripts.Render(&quot;~\/bundles\/jquery&quot;)         @Scripts.Render(&quot;~\/bundles\/bootstrap&quot;)         @RenderSection(&quot;scripts&quot;, required: false)     &lt;\/body&gt;     &lt;\/html&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u0432\u0441\u0435 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e, \u044d\u0442\u043e \u0437\u0430\u0439\u0442\u0438 \u043d\u0430 \u0441\u0430\u0439\u0442 \u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u043f\u0430\u0440\u0443 \u043a\u043d\u043e\u043f\u043e\u043a.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/c60\/e74\/a3a\/c60e74a3a38747ba84ed6b8517c6c942.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/955\/eb7\/378\/955eb7378dda4ddc878586e60d1a9a47.png\"\/><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0415\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/c5d\/964\/633\/c5d96463345e4dcbb5104b5a7a8245c8.png\"\/>  <\/div>\n<\/div>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/14c\/0c0\/8e6\/14c0c08e606a4ca9a0e9201520f364e4.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/adf\/4f5\/db7\/adf4f5db747b43fe8da6eba99f94f656.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/865\/e0e\/b3c\/865e0eb3c4034771867aa712d83d3f20.png\"\/>  <\/div>\n<\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0443\u0432\u0438\u0434\u0438\u043c \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0435\u0433\u043e UDID.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043f\u0438\u0441\u043e\u043a \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 UDID<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/813\/690\/c37\/813690c37f534d88a97b6b7651cf4598.png\"\/>  <\/div>\n<\/div>\n<p>  \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0443 \u043d\u0430\u0441 \u0432 \u0440\u0443\u043a\u0430\u0445 \u0435\u0441\u0442\u044c UDID iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043d\u0430\u0448\u0435\u0439 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.<br \/>  \u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043d\u0430 <a href=\"https:\/\/developer.apple.com\/\">\u0441\u0430\u0439\u0442<\/a> Apple \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b Member Center.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/83e\/106\/f8c\/83e106f8c5284b69b211a91a54b1b9f0.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4f9\/514\/b99\/4f9514b992a44e7b9a93c4c288ab3ae5.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/6b4\/621\/d3b\/6b4621d3bbc44b68920de6da388326f6.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/647\/988\/da0\/647988da03514870aba822b198dac8b6.png\"\/>  <\/div>\n<\/div>\n<p>  \u0414\u043e\u0431\u0430\u0432\u0438\u043c UDID iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/056\/d6c\/5da\/056d6c5dac9f42ec8b123243566c94b4.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/5f6\/c39\/6bc\/5f6c396bcf464f9ca2ae0f94913af334.png\"\/>  <\/div>\n<\/div>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0435\u0449\u0435 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 App ID, \u0441\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u044d\u0442\u043e.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4ec\/412\/ab9\/4ec412ab9f914aaca750e44f8f2f54b4.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/c71\/f85\/5cd\/c71f855cd16845eeba471c37ae27012b.png\"\/>  <\/div>\n<\/div>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f (Provisioning Profile) \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/101\/a41\/39f\/101a4139ffb54cba86b4f8433632aade.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/969\/0ec\/104\/9690ec10450547b98c5e94dca2d7d683.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/097\/8dd\/44a\/0978dd44a4a04b3ba1255385a545f86c.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/864\/802\/f31\/864802f31810434cbbebc24624745bae.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/980\/391\/2af\/9803912afd5b436da49fda9bb0024c23.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/bd4\/f4f\/a63\/bd4f4fa637da4df4ab90b5a1fe0f684a.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/367\/376\/0bf\/3673760bf1214026861a9d5da456c896.png\"\/><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043a \u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0444\u0438\u043b\u044e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/572\/941\/0be\/5729410be1c7483c846276ae4f8ffb36.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/de0\/114\/6da\/de01146da27149bc9ca4eb806d155a80.png\"\/>  <\/div>\n<\/div>\n<h4>\u0428\u0430\u0433 2: \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u0441\u044b\u043b\u043a\u0443<\/h4>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 UDID iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0435\u0433\u043e \u043a \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0438 \u0432\u043d\u0435\u0441\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 Provisioning Profile, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432\u0435\u0431-\u0440\u0435\u0441\u0443\u0440\u0441, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u044b \u0444\u0430\u0439\u043b\u044b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Microsoft Azure, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 *.azurewebsites.net \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043c\u0435\u043d\u0438 \u0441\u0430\u0439\u0442\u0430 \u044f \u0432\u044b\u0431\u0435\u0440\u0443: <\/p>\n<pre>https:\/\/corp-apps.azurewebsites.net<\/pre>\n<p>  <i>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/i><br \/>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c HTTPS \u0441 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u043c SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c.<\/p>\n<p>  \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0448\u0430\u0431\u043b\u043e\u043d, \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432. \u0412\u0441\u0435 \u0447\u0442\u043e \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0443\u0436\u043d\u043e \u2014 \u044d\u0442\u043e HTML-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f04\/70a\/7f7\/f0470a7f793d4cf7879b370206902c80.png\"\/>  <\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u0430\u043a\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 XCode.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a6a\/adc\/ea0\/a6aadcea0f7649779768f6b011f408e4.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/709\/ebd\/273\/709ebd273a32429bbf7dc0967bb60ca9.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ef1\/0de\/0a3\/ef10de0a3d4a41b0aef1804bb1e5db64.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/779\/9a1\/2e7\/7799a12e77db4b1a8c07fb1e6a47ff24.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/9d0\/122\/0f4\/9d01220f4b8248dbae1f4ebbfaa5551f.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/846\/ca7\/1e8\/846ca71e8ce849fe90f18070d1caecbe.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4b2\/2ea\/487\/4b22ea48777b426885b890694446c2ee.png\"\/>  <\/div>\n<\/div>\n<p>  \u0417\u0430\u043f\u043e\u043b\u043d\u0438\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<ul>\n<li>Title:\n<pre>myApp<\/pre>\n<\/li>\n<li>App URL:\n<pre>https:\/\/corp-apps.azurewebsites.net\/app-files\/myApp.ipa<\/pre>\n<\/li>\n<li>Display Image URL:\n<pre>https:\/\/corp-apps.azurewebsites.net\/app-files\/image.57x57.png<\/pre>\n<\/li>\n<li>Full Size Image URL:\n<pre>https:\/\/corp-apps.azurewebsites.net\/app-files\/image.512x512.jpg<\/pre>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/da5\/c56\/62a\/da5c5662a0e145b4af8a8af69260e677.png\"\/>  <\/div>\n<\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430 \u0432 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u0430\u043f\u043a\u0435 \u0432\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442 manifest.plist, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u043d\u044b \u043f\u0443\u0442\u0438 \u043a \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430 manifest.plist<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">    &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;     &lt;!DOCTYPE plist PUBLIC &quot;-\/\/Apple\/\/DTD PLIST 1.0\/\/EN&quot; &quot;http:\/\/www.apple.com\/DTDs\/PropertyList-1.0.dtd&quot;&gt;     &lt;plist version=&quot;1.0&quot;&gt;     &lt;dict&gt;         &lt;key&gt;items&lt;\/key&gt;             &lt;array&gt;                 &lt;dict&gt;                     &lt;key&gt;assets&lt;\/key&gt;                     &lt;array&gt;                         &lt;dict&gt;                             &lt;key&gt;kind&lt;\/key&gt;                             &lt;string&gt;software-package&lt;\/string&gt;                             &lt;key&gt;url&lt;\/key&gt;                             &lt;string&gt;https:\/\/corp-apps.azurewebsites.net\/app-files\/myApp.ipa&lt;\/string&gt;                         &lt;\/dict&gt;                         &lt;dict&gt;                             &lt;key&gt;kind&lt;\/key&gt;                             &lt;string&gt;display-image&lt;\/string&gt;                             &lt;key&gt;url&lt;\/key&gt;                             &lt;string&gt;https:\/\/corp-apps.azurewebsites.net\/app-files\/image.57x57.png&lt;\/string&gt;                        &lt;\/dict&gt;                         &lt;dict&gt;                             &lt;key&gt;kind&lt;\/key&gt;                             &lt;string&gt;full-size-image&lt;\/string&gt;                             &lt;key&gt;url&lt;\/key&gt;                             &lt;string&gt;https:\/\/corp-apps.azurewebsites.net\/app-files\/image.512x512.jpg&lt;\/string&gt;                         &lt;\/dict&gt;                     &lt;\/array&gt;                     &lt;key&gt;metadata&lt;\/key&gt;                     &lt;dict&gt;                         &lt;key&gt;bundle-identifier&lt;\/key&gt;                         &lt;string&gt;com.habr.hellohabr001&lt;\/string&gt;                         &lt;key&gt;bundle-version&lt;\/key&gt;                         &lt;string&gt;0.0.1&lt;\/string&gt;                         &lt;key&gt;kind&lt;\/key&gt;                         &lt;string&gt;software&lt;\/string&gt;                         &lt;key&gt;title&lt;\/key&gt;                         &lt;string&gt;myApp&lt;\/string&gt;                     &lt;\/dict&gt;                 &lt;\/dict&gt;             &lt;\/array&gt;         &lt;\/dict&gt;     &lt;\/plist&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0432\u043d\u0435\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0444\u0430\u0439\u043b Web.config.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 Web.config<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">    &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;     &lt;configuration&gt;         &lt;system.webServer&gt;             &lt;staticContent&gt;                 &lt;mimeMap fileExtension=&quot;.jpg&quot; mimeType=&quot;image\/jpg&quot; \/&gt;                 &lt;mimeMap fileExtension=&quot;.png&quot; mimeType=&quot;image\/png&quot; \/&gt;                 &lt;mimeMap fileExtension=&quot;.plist&quot; mimeType=&quot;text\/plain&quot; \/&gt;                 &lt;mimeMap fileExtension=&quot;.ipa&quot; mimeType=&quot;application\/octet-stream&quot; \/&gt;             &lt;\/staticContent&gt;         &lt;\/system.webServer&gt;     &lt;\/configuration&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0418, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 html-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441\u043e \u0441\u043f\u0435\u0446-\u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0424\u0430\u0439\u043b index.html<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"html\">    &lt;!doctype html&gt;     &lt;html&gt;     &lt;head&gt;       &lt;meta charset=&quot;utf-8&quot;&gt;       &lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge,chrome=1&quot;&gt;       &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;       &lt;title&gt;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f&lt;\/title&gt;       &lt;link rel=&quot;stylesheet&quot; href=&quot;dist\/bootstrap.min.css&quot;&gt;     &lt;\/head&gt;     &lt;body&gt;       &lt;div class=&quot;container&quot;&gt;         &lt;br&gt;&lt;br&gt;         &lt;h1 class=&quot;text-center&quot;&gt;Hello Apache Cordova&lt;\/h1&gt;         &lt;p class=&quot;text-center&quot;&gt;             &lt;a href=&quot;itms-services:\/\/?action=download-manifest&url=https:\/\/corp-apps.azurewebsites.net\/app-files\/manifest.plist&quot; class=&quot;btn btn-info&quot; type=&quot;button&quot;&gt;Install App&lt;\/a&gt;         &lt;\/p&gt;         &lt;br&gt;&lt;br&gt;       &lt;\/div&gt;     &lt;\/body&gt;     &lt;\/html&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u0432\u0441\u0435, \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u2014 \u044d\u0442\u043e \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043d\u043e\u043f\u043e\u043a.<br \/>  \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044c \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0430 \u043f\u043e \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044e \u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0431\u044b\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u043d\u0430 Apache Cordova. \u0422\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u0438 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Xamarin.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/187\/922\/7fb\/1879227fb0b64a20b2897890c85fe190.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/58b\/2a1\/461\/58b2a1461a444abeb4e420f217971801.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ee9\/cd3\/e05\/ee9cd3e059d14e00b469a73273969720.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/489\/443\/235\/4894432351474019a940c000c4372d39.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/9e3\/8c1\/35e\/9e38c135e17e427893c58c2d640dfbc1.png\"\/>  <\/div>\n<\/div>\n<h4>\u0428\u0430\u0433 3: \u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 \u043d\u0430 \u0431\u0430\u0437\u0435 Windows Server 2012<\/h4>\n<p>  \u0418\u0442\u0430\u043a, \u043c\u044b \u043f\u043e\u0434\u043e\u0448\u043b\u0438 \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u0441\u043b\u043e\u0436\u043d\u043e\u043c\u0443 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044e, \u043a\u043e\u0433\u0434\u0430 \u0432\u0430\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Windows Server 2012 \u0438 IIS 8.<\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0435\u043c \u0434\u0432\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0430\u0439\u0442\u0430:  <\/p>\n<ul>\n<li>\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f UDID iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\n<pre>https:\/\/iphone-udid-zzzz.com<\/pre>\n<\/li>\n<li>\u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439\n<pre>https:\/\/corp-apps-zzzz.com<\/pre>\n<\/li>\n<\/ul>\n<p>  <i>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435<\/i><br \/>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 HTTPS \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u0430 iphone-udid-zzzz.com \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u0430, \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u044d\u0442\u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439 \u0434\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f IIS.<\/p>\n<p>  \u0414\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0430\u0439\u0442\u0430\u043c \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0434\u043e\u043c\u0435\u043d\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 DNS-\u0441\u0435\u0440\u0432\u0435\u0440 (\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0434\u043e\u043c\u0435\u043d\u0430 Active Directory, DNS-\u0441\u0435\u0440\u0432\u0435\u0440, \u0438 \u0441\u0430\u043c\u0438 \u0441\u0430\u0439\u0442\u044b \u2014 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435).<\/p>\n<p>  \u041d\u0430\u0447\u043d\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0437\u043e\u043d\u044b \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0441\u0430\u0439\u0442\u043e\u0432. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/2c4\/7ba\/2c5\/2c47ba2c59ae4877a0ae671e001ee1cc.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/1ef\/4f6\/a69\/1ef4f6a691ad4a149f332f8b68cf843b.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/921\/b8e\/bce\/921b8ebce79c40fb9f02a495bef55960.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/adb\/73f\/256\/adb73f2562d24a9992c381bf037cb976.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/177\/f79\/f41\/177f79f410844fd69a8865ad77d9e176.png\"\/>  <\/div>\n<\/div>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0437\u043e\u043d\u0443 \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f UDID iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430: <i>iphone-udid-zzzz.com<\/i>.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/dbc\/c21\/29d\/dbcc2129d3f84350986ad3eed633b7b4.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/bcb\/4c3\/426\/bcb4c34262ea4af1b4220863f60e595e.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/2f5\/8c0\/a06\/2f58c0a06b5e4a178ef1dfcdbca681dd.png\"\/>  <\/div>\n<\/div>\n<p>  \u0412 \u0430\u043a\u0430\u0434\u0435\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0446\u0435\u043b\u044f\u0445 \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0430\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 (\u0433\u0434\u0435 192.168.0.1 \u2014 IP-\u0430\u0434\u0440\u0435\u0441 WiFi-\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0430)<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/2a1\/e83\/caf\/2a1e83caf1474ca2a8124ed443739be0.png\"\/><\/p>\n<p>  \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 DNS \u0434\u043b\u044f WiFi-\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0430. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 D-Link \u043f\u043e\u0440\u044f\u0434\u043e\u043a DNS-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0432\u0430\u0436\u0435\u043d.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ebd\/d89\/18f\/ebdd8918ff9b4fd28583e993e26536e9.png\"\/><\/p>\n<p>  \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0441 Windows Server 2012.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/691\/26d\/16d\/69126d16d9864e6b8aa758214ee0e3ca.png\"\/>  <\/div>\n<\/div>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0443\u0437\u0435\u043b (\u0410 \u0438\u043b\u0438 \u0410\u0410\u0410\u0410).  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/e69\/588\/854\/e695888549104b29adf587403635e480.png\"\/><\/p>\n<p>  \u041f\u0440\u043e\u043f\u0438\u0448\u0435\u043c IP-\u0430\u0434\u0440\u0435\u0441 \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/35d\/94a\/9c7\/35d94a9c7be34c99b1ecbab0944ce44e.png\"\/><\/p>\n<p>  \u0423\u0431\u0435\u0434\u0438\u043c\u0441\u044f, \u0447\u0442\u043e \u0441\u0430\u0439\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0447\u0435\u0440\u0435\u0437 FQDN-\u0438\u043c\u044f. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043e\u0447\u0438\u0441\u0442\u043a\u0443 DNS \u043a\u044d\u0448\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/407\/81e\/cb5\/40781ecb50504842bcdd2534ee03a35a.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/30c\/b25\/d4a\/30cb25d4aec44710902a2daa0fbd311d.png\"\/><\/p>\n<p>  \u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.  <\/div>\n<\/div>\n<p>  \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u043c \u044d\u0442\u0443 \u0436\u0435 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u0430 \u0441\u043a\u0430\u0447\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439: <i>corp-apps-zzzz.com<\/i>.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/c86\/2a6\/62e\/c862a662eba54af28faaa06fe7806ef0.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/1e7\/fba\/2fa\/1e7fba2faab041868831f2cfdca2683b.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/7fd\/ce1\/00a\/7fdce100ad2f4976b670fb6d1d4a5fbe.png\"\/>  <\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 IIS.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0d6\/213\/f5f\/0d6213f5f19e464c9776448bbdd2993d.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/fa7\/37a\/93b\/fa737a93b8da4ac4b5ab667fe7bfd594.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4de\/7b9\/700\/4de7b9700b6e4bd79f68747968ebeda5.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f06\/1ff\/800\/f061ff800a594c46bf0e993c1e84e75f.png\"\/><\/p>\n<p>  \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0412\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440 (IIS).<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/2f5\/e78\/b18\/2f5e78b1800a4afaa7d75ef985d650c7.png\"\/><\/p>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f0b\/28f\/ddc\/f0b28fddc5e6486690f310bdc4a96e6c.png\"\/><\/p>\n<p>  \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8e5\/6f5\/b65\/8e56f5b658524c60b66a5b6f1766318f.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/6f2\/f65\/bf1\/6f2f65bf1706486c8a48c2bd2210a339.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/fea\/109\/662\/fea10966284e4a48886c63ba46b1c46b.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8e6\/bc0\/134\/8e6bc013495746d88a8b5658a843dc67.png\"\/><\/p>\n<p>  \u0411\u0443\u0434\u044c\u0442\u0435 \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u044b, \u0432\u044b\u0431\u0438\u0440\u0430\u044f \u00ab\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u00bb \u043d\u0430 \u0431\u043e\u0435\u0432\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f64\/07a\/946\/f6407a94661847bd9018fb569b586a76.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/68a\/15a\/bba\/68a15abbae854c5093edc64f22fb8477.png\"\/><\/p>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430.  <\/div>\n<\/div>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0438 \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0441\u0430\u0439\u0442\u043e\u0432.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/661\/13a\/735\/66113a73583a4e708459e9d35db85090.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/1f3\/224\/2fe\/1f32242fec754449820b1964ad56a709.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/502\/094\/628\/502094628ae445bd999893994a1c829d.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/c98\/907\/cf7\/c98907cf70374cc48c83671ba94f2234.png\"\/>  <\/div>\n<\/div>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a, \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 HTTPS \u2014 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0435 IIS, \u043d\u0430\u043c \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 OpenSSL.<br \/>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 Win32 OpenSSL, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043f\u043e <a href=\"http:\/\/slproweb.com\/products\/Win32OpenSSL.html\">\u0441\u0441\u044b\u043b\u043a\u0435<\/a>.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 OpenSSL<\/b><\/p>\n<div class=\"spoiler_text\">\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0435\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0414\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e Windows Server 2012 \u0431\u044b\u043b \u0432\u044b\u0431\u0440\u0430\u043d <b>Win64 OpenSSL v1.0.2e<\/b> (16MB Installer)<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/91d\/a59\/abe\/91da59abe36942018bc5010830d3ab6b.png\"\/><\/p>\n<p>  \u041c\u043e\u043c\u0435\u043d\u0442\u044b \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/fe8\/2e5\/c3b\/fe82e5c3b0a34b56b9b19cb903e286a8.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a46\/a7e\/477\/a46a7e47762144ed98b1fd6f0e8826ee.png\"\/>  <\/div>\n<\/div>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 OpenSSL, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 <i>C<\/i> \u043f\u0430\u043f\u043a\u0443 <i>OpenSSL-Certificates<\/i>.<\/p>\n<p>  \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0434\u043b\u044f <i>iphone-udid-zzzz.com<\/i>.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b openssl \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">    C:\\Users\\devin&gt; cd c:\\OpenSSL-Certificates          c:\\OpenSSL-Certificates&gt; set RANDFILE=c:\\OpenSSL-Certificates\\.rnd          c:\\OpenSSL-Certificates&gt; set OPENSSL_CONF=C:\\OpenSSL-Win64\\bin\\openssl.cfg          c:\\OpenSSL-Certificates&gt; c:\\OpenSSL-Win64\\bin\\openssl.exe          OpenSSL&gt; genrsa -out iphone-udid-zzzz.key 2048          OpenSSL&gt; req -new -x509 -sha256 -key iphone-udid-zzzz.key -out iphone-udid-zzzz.cer -days 365 -subj \/CN=iphone-udid-zzz.com          OpenSSL&gt; pkcs12 -export -out iphone-udid-zzzz.pfx -inkey iphone-udid-zzzz.key -in iphone-udid-zzzz.cer     Enter Export Password:     Verifying - Enter Export Password:          OpenSSL&gt; exit          c:\\OpenSSL-Certificates&gt;  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/704\/890\/396\/704890396ee24c3da70a2b74aa914ecb.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/1eb\/584\/749\/1eb5847494504db28ec52d01cb086bfd.png\"\/>  <\/div>\n<\/div>\n<p>  \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0434\u043b\u044f <i>corp-apps-zzzz.com<\/i>:  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u044b openssl \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">    C:\\Users\\devin&gt; cd c:\\OpenSSL-Certificates          c:\\OpenSSL-Certificates&gt; set RANDFILE=c:\\OpenSSL-Certificates\\.rnd          c:\\OpenSSL-Certificates&gt; set OPENSSL_CONF=C:\\OpenSSL-Win64\\bin\\openssl.cfg          c:\\OpenSSL-Certificates&gt; c:\\OpenSSL-Win64\\bin\\openssl.exe          OpenSSL&gt; genrsa -out corp-apps-zzzz.key 2048          OpenSSL&gt; req -new -x509 -sha256 -key corp-apps-zzzz.key -out corp-apps-zzzz.cer -days 365 -subj \/CN=corp-apps-zzzz.com          OpenSSL&gt; pkcs12 -export -out corp-apps-zzzz.pfx -inkey corp-apps-zzzz.key -in corp-apps-zzzz.cer     Enter Export Password:     Verifying - Enter Export Password:          OpenSSL&gt; exit          c:\\OpenSSL-Certificates&gt;  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/828\/0bb\/37f\/8280bb37f9cb4e96939434e44bb4a04c.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/098\/3b3\/f5a\/0983b3f5a53944749455ab9a80069a17.png\"\/>  <\/div>\n<\/div>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 *.pfx \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b \u0432 IIS.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/3b2\/93c\/503\/3b293c5035d849f5818eac3bdba715d8.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/3fe\/b5f\/ef4\/3feb5fef4c844191823e6816aa4574cb.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a01\/b49\/9b1\/a01b499b174f4cac978d965d3ab1caf7.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/1b0\/efe\/6dc\/1b0efe6dc9604ebdadd95f250959f418.png\"\/>  <\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c <i>\u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438<\/i>, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c HTTPS-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043b\u044f \u0441\u0430\u0439\u0442\u0430: iphone-udid-zzzz.com<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/208\/6b8\/cee\/2086b8cee1ff4446a9cdb76cc6b36c61.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a24\/d63\/2a8\/a24d632a8e314d61872588b2ac0603b6.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/4e4\/c0d\/88e\/4e4c0d88e53d46708f37b9b3bfe8bc6c.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/597\/272\/a1b\/597272a1b47c434793766a31312ac1dd.png\"\/>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043b\u044f \u0441\u0430\u0439\u0442\u0430: corp-apps-zzzz.com<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8a1\/c58\/321\/8a1c583211db4786b2a4aa6b7618a600.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/c5c\/e93\/0bd\/c5ce930bd0d04448bf8f21bf900d6b2d.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a78\/f3c\/de4\/a78f3cde4cd34304a23d53b97c4a7610.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/36e\/100\/165\/36e10016521e4c8fa6cefad965b6b0e9.png\"\/>  <\/div>\n<\/div>\n<p>  \u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u044d\u0442\u0430\u043f\u043e\u043c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u043d\u0435\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 WebAPI \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u0430 <i>iphone-udid-zzzz.com<\/i>.<\/p>\n<p>  \u0424\u0430\u0439\u043b <i>Web.config<\/i>, \u0434\u043b\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 WebDAV \u0438 \u043e\u0448\u0438\u0431\u043a\u0438 405, \u0441\u0435\u043a\u0446\u0438\u044f <i>system.webServer<\/i>.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 Web.config<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">    &lt;system.webServer&gt;         &lt;validation validateIntegratedModeConfiguration=&quot;false&quot; \/&gt;         &lt;modules runAllManagedModulesForAllRequests=&quot;true&quot;&gt;             &lt;remove name=&quot;WebDAVModule&quot;\/&gt;         &lt;\/modules&gt;         &lt;handlers&gt;             &lt;remove name=&quot;ExtensionlessUrlHandler-Integrated-4.0&quot; \/&gt;             &lt;add name=&quot;ExtensionlessUrl-Integrated-4.0&quot; path=&quot;*.&quot; verb=&quot;GET,HEAD,POST,DEBUG,PUT,DELETE&quot; type=&quot;System.Web.Handlers.TransferRequestHandler&quot; preCondition=&quot;integratedMode,runtimeVersionv4.0&quot; \/&gt;             &lt;remove name=&quot;OPTIONSVerbHandler&quot; \/&gt;             &lt;remove name=&quot;TRACEVerbHandler&quot; \/&gt;             &lt;remove name=&quot;WebDAV&quot; \/&gt;         &lt;\/handlers&gt;         &lt;staticContent&gt;             &lt;mimeMap fileExtension=&quot;.mobileconfig&quot; mimeType=&quot;application\/x-apple-aspen-config&quot; \/&gt;         &lt;\/staticContent&gt;     &lt;\/system.webServer&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0414\u043b\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 <i>Web.config<\/i>.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">    &lt;system.webServer&gt;         &lt;staticContent&gt;             &lt;remove fileExtension=&quot;.mobileconfig&quot; \/&gt;             &lt;mimeMap fileExtension=&quot;.mobileconfig&quot; mimeType=&quot;application\/x-apple-aspen-config&quot; \/&gt;             &lt;remove fileExtension=&quot;.crt&quot; \/&gt;             &lt;mimeMap fileExtension=&quot;.crt&quot; mimeType=&quot;application\/x-x509-ca-cert&quot; \/&gt;                     &lt;\/staticContent&gt;     &lt;\/system.webServer&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0424\u0430\u0439\u043b <i>\/Downloads\/iphone-udid-zzzz.mobileconfig<\/i> \u2014 \u0438\u0437\u043c\u0435\u043d\u0435\u043d URL.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">    &lt;key&gt;URL&lt;\/key&gt;     &lt;string&gt;https:\/\/iphone-udid-zzzz.com:9001\/api\/xml&lt;\/string&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412 \u043f\u0430\u043f\u043a\u0443 <i>\/Downloads\/<\/i> \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 <i>iphone-udid-zzzz.cer<\/i>, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043d\u0430 <i>*.crt<\/i>. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043d\u0430 iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/67c\/f00\/935\/67cf009359f641299cdc564c8b6552c8.png\"\/>  <\/div>\n<\/div>\n<p>  \u0424\u0430\u0439\u043b <i>\/Views\/Home\/Index.cshtml<\/i> \u2014 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b URL (href), \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 Index.cshtml<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"html\">    &lt;div class=&quot;jumbotron&quot;&gt;         &lt;h1&gt;Get your UDID&lt;\/h1&gt;         &lt;p&gt;&lt;a href=&quot;\/downloads\/iphone-udid-zzzz.mobileconfig&quot; class=&quot;btn btn-primary btn-lg&quot;&gt;Take UDID&lt;\/a&gt;&lt;\/p&gt;     &lt;\/div&gt;     &lt;div class=&quot;row&quot;&gt;         &lt;a href=&quot;\/downloads\/iphone-udid-zzzz.crt&quot; download class=&quot;btn btn-info&quot;&gt;Install SSL-Certificate&lt;\/a&gt;         &lt;p&gt;             @{                 foreach (iPhoneUDID.Models.iPhoneUDID item in ViewBag.UDIDs)                 {                     &lt;h5&gt;TimeAdded: @item.TimeAdded, UDID: @item.UDID&lt;\/h5&gt;                 }             }         &lt;\/p&gt;     &lt;\/div&gt;     &lt;div class=&quot;row&quot;&gt;         @Html.ActionLink(&quot;Clear UDIDs list&quot;, &quot;ClearHistory&quot;, &quot;Home&quot;, null, new { @class = &quot;btn btn-primary btn-large&quot; })     &lt;\/div&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0424\u0430\u0439\u043b <i>\/Controllers\/XmlController.cs<\/i> \u2014 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f try\/catch \u2014 \u043e\u0431\u0435\u0440\u0442\u043a\u0430 \u043f\u0440\u0438 \u0440\u0430\u0437\u0431\u043e\u0440\u0435 plist (UDID).  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">    using System;     using System.Net;     using System.Net.Http;     using System.Web.Http;     using System.Xml.Linq;          namespace iPhoneUDID.Controllers     {         public class XmlController : ApiController         {             [HttpPost]             public HttpResponseMessage PostRawXMLMessage(HttpRequestMessage request)             {                 string plist = request.Content.ReadAsStringAsync().Result;                      string UDID = &quot;Error&quot;;                 try                 {                     int begin = plist.IndexOf(&quot;UDID&quot;) + 20;                     int end = plist.IndexOf(&quot;&lt;&quot;, begin);                     UDID = plist.Substring(begin, end - begin);                 }                 catch (Exception exc)                 {                     \/\/                 }                           XDocument databaseXML;                 try                 {                     databaseXML = XDocument.Load(System.Web.Hosting.HostingEnvironment.MapPath(&quot;~\/App_Data\/udids.xml&quot;));                 }                 catch (Exception exp)                 {                     databaseXML = new XDocument(new XElement(&quot;udids&quot;));                 }                      databaseXML.Element(&quot;udids&quot;).Add(                     new XElement(&quot;iPhone&quot;,                         new XElement(&quot;TimeAdded&quot;, DateTime.Now.ToLongTimeString() + &quot; - &quot; + DateTime.Now.ToShortDateString()),                         new XElement(&quot;UDID&quot;, UDID)));                 databaseXML.Save(System.Web.Hosting.HostingEnvironment.MapPath(&quot;~\/App_Data\/udids.xml&quot;));                      HttpResponseMessage response = request.CreateResponse(HttpStatusCode.MovedPermanently);                 response.Headers.Add(&quot;Location&quot;, &quot;\/Thanks&quot;);                 return response;             }         }     } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041c\u043e\u0436\u0435\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u0430 <i>iphone-udid-zzzz.com<\/i>.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/e5b\/642\/568\/e5b6425680cc4ec8b5b1b363cad37176.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/046\/f95\/419\/046f95419a244fa293be471b10eb3220.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/525\/4ed\/eec\/5254edeec31448969056f2c2f203b18d.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/b8a\/64a\/2de\/b8a64a2dec9d478e933522ec4de8265f.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/3c5\/ddb\/604\/3c5ddb6045dc438dbfe46324704be0df.png\"\/>  <\/div>\n<\/div>\n<p>  \u041a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f11\/0fa\/5e1\/f110fa5e193c43cc918034543c645fb5.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/7ce\/a3a\/cac\/7cea3acacd2f400ab6949485961790b3.png\"\/><\/p>\n<p>  \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0430\u0439\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/d4f\/4d7\/8f1\/d4f4d78f1db54393bb45315ac13d3474.png\"\/>  <\/div>\n<\/div>\n<p>  \u0422\u0430\u043a\u0436\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 <i>udids.xml<\/i> \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ece\/25f\/00a\/ece25f00a8c44580ba6116b2d8ce3102.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/888\/480\/720\/8884807200a64e1a8663aacc9e502b6a.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/69f\/719\/1ca\/69f7191ca5554f0fb3aed993e3f38157.png\"\/>  <\/div>\n<\/div>\n<p>  \u0421 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c UDID \u0441\u0432\u043e\u0438\u0445 iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 \u0441\u0430\u0439\u0442\u0435: <\/p>\n<pre>https:\/\/iphone-udid-zzzz.com:9001<\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430. \u042d\u0442\u043e \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8f0\/d0d\/402\/8f0d0d4021344cd1ac5b77c7045ad95d.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/381\/164\/93b\/38116493b34a4b53827d1945fb65306a.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/36b\/ab2\/4d8\/36bab24d85bc4e34b7f16bdc5a796e61.png\"\/>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0415\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/13c\/a57\/dab\/13ca57dabc0d4e08b7ce56339072a53b.png\"\/>  <\/div>\n<\/div>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/c8f\/ddc\/4c6\/c8fddc4c644643fea8be329ad8d12825.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/e5a\/a30\/79e\/e5aa3079ee5740c1bf336f978738998c.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/d14\/b3d\/340\/d14b3d34048d4dc285a1adb0b46e9141.png\"\/><\/p>\n<p>  \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f UDID iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/455\/fff\/898\/455fff89871840099ef7d3543bb76843.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/b92\/a2f\/2b6\/b92a2f2b6d4c498c8c631b2be10c83ac.png\"\/>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0415\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/ae8\/2ec\/d2c\/ae82ecd2c70a44c7a7c3440c62d0f229.png\"\/>  <\/div>\n<\/div>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/5bf\/895\/f70\/5bf895f7028c48cab241d333b2c87618.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/236\/ad6\/a5c\/236ad6a5c4c24d66b46c392b324500cc.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/3fe\/beb\/b9a\/3febebb9aa884aacb47897337f63dabd.png\"\/><\/p>\n<p>  \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 UDID iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/1e1\/77e\/2a7\/1e177e2a76ce41869c0052af451155e5.png\"\/>  <\/div>\n<\/div>\n<p>  \u0412 \u0446\u0435\u043b\u044f\u0445 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f POST-\u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 UDID, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0434\u043b\u044f Google Chrome \u2014 <i>Postman<\/i>.<\/p>\n<ul>\n<li>URL:\n<pre>http:\/\/iphone-udid-zzzz.com\/api\/xml<\/pre>\n<\/li>\n<li>\u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441:\n<pre>xxxxxxUDIDxxxxxxxxxxxxxxxx100000000000000000002&lt;xxxxxxxxxxx<\/pre>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/bc1\/ed2\/af9\/bc1ed2af9eb24506acd377f1aa756e50.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/997\/e4e\/d12\/997e4ed123fd4de59cde860368f7e5c3.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/009\/55b\/3af\/00955b3af4de482fa838c8c7f2b52de4.png\"\/>  <\/div>\n<\/div>\n<p>  \u041d\u0430\u0447\u043d\u0435\u043c \u0441\u0431\u043e\u0440\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u0430 <i>corp-apps-zzzz.com<\/i>.<\/p>\n<p>  \u0424\u0430\u0439\u043b <i>Web.config<\/i>.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 Web.config<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">    &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;     &lt;configuration&gt;         &lt;system.webServer&gt;             &lt;staticContent&gt;             &lt;remove fileExtension=&quot;.jpg&quot; \/&gt;                 &lt;mimeMap fileExtension=&quot;.jpg&quot; mimeType=&quot;image\/jpg&quot; \/&gt;             &lt;remove fileExtension=&quot;.png&quot; \/&gt;                 &lt;mimeMap fileExtension=&quot;.png&quot; mimeType=&quot;image\/png&quot; \/&gt;             &lt;remove fileExtension=&quot;.plist&quot; \/&gt;                 &lt;mimeMap fileExtension=&quot;.plist&quot; mimeType=&quot;text\/plain&quot; \/&gt;             &lt;remove fileExtension=&quot;.ipa&quot; \/&gt;                 &lt;mimeMap fileExtension=&quot;.ipa&quot; mimeType=&quot;application\/octet-stream&quot; \/&gt;             &lt;remove fileExtension=&quot;.crt&quot; \/&gt;                 &lt;mimeMap fileExtension=&quot;.crt&quot; mimeType=&quot;application\/x-x509-ca-cert&quot; \/&gt;             &lt;\/staticContent&gt;         &lt;\/system.webServer&gt;     &lt;\/configuration&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0424\u0430\u0439\u043b <i>index.html<\/i> \u2014 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b URL (href), \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430.<br \/>  \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0434\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043e\u043d \u043f\u043e\u043b\u0443\u0447\u0438\u0442 \u043e\u0448\u0438\u0431\u043a\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 index.html<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"html\">    &lt;!doctype html&gt;     &lt;html&gt;     &lt;head&gt;     &lt;meta charset=&quot;utf-8&quot;&gt;     &lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge,chrome=1&quot;&gt;     &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;     &lt;title&gt;\u0420\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 iOS \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439&lt;\/title&gt;     &lt;link rel=&quot;stylesheet&quot; href=&quot;dist\/bootstrap.min.css&quot;&gt;     &lt;script src=&quot;dist\/jquery-1.11.3.min.js&quot;&gt;&lt;\/script&gt;     &lt;style&gt;         h4 {line-height: 25px;}     &lt;\/style&gt;     &lt;\/head&gt;     &lt;body&gt;     &lt;div class=&quot;container&quot;&gt;         &lt;br&gt;&lt;br&gt;         &lt;h1 class=&quot;text-center&quot;&gt;Hello Apache Cordova&lt;\/h1&gt;         &lt;p class=&quot;text-center&quot;&gt;             &lt;a href=&quot;itms-services:\/\/?action=download-manifest&url=https:\/\/corp-apps-zzzz.com:9002\/app-files\/manifest.plist&quot; class=&quot;btn btn-info&quot; type=&quot;button&quot;&gt;Install App&lt;\/a&gt;             &lt;a href=&quot;\/app-files\/corp-apps-zzzz.crt&quot; download class=&quot;btn btn-info&quot;&gt;Install SSL-Certificate&lt;\/a&gt;         &lt;\/p&gt;         &lt;br&gt;&lt;br&gt;     &lt;\/div&gt;     &lt;\/body&gt;     &lt;\/html&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0424\u0430\u0439\u043b <i>manifest.plist<\/i> \u2014 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b URL (\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u043e\u0440\u0442\u044b).  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u0435 manifest.plist<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"xml\">    &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;     &lt;!DOCTYPE plist PUBLIC &quot;-\/\/Apple\/\/DTD PLIST 1.0\/\/EN&quot; &quot;http:\/\/www.apple.com\/DTDs\/PropertyList-1.0.dtd&quot;&gt;     &lt;plist version=&quot;1.0&quot;&gt;     &lt;dict&gt;         &lt;key&gt;items&lt;\/key&gt;         &lt;array&gt;             &lt;dict&gt;                 &lt;key&gt;assets&lt;\/key&gt;                 &lt;array&gt;                     &lt;dict&gt;                         &lt;key&gt;kind&lt;\/key&gt;                         &lt;string&gt;software-package&lt;\/string&gt;                         &lt;key&gt;url&lt;\/key&gt;                         &lt;string&gt;https:\/\/corp-apps-zzzz.com:9002\/app-files\/myApp.ipa&lt;\/string&gt;                     &lt;\/dict&gt;                     &lt;dict&gt;                         &lt;key&gt;kind&lt;\/key&gt;                         &lt;string&gt;display-image&lt;\/string&gt;                         &lt;key&gt;url&lt;\/key&gt;                         &lt;string&gt;https:\/\/corp-apps-zzzz.com:9002\/app-files\/image.57x57.png&lt;\/string&gt;                     &lt;\/dict&gt;                     &lt;dict&gt;                         &lt;key&gt;kind&lt;\/key&gt;                         &lt;string&gt;full-size-image&lt;\/string&gt;                         &lt;key&gt;url&lt;\/key&gt;                         &lt;string&gt;https:\/\/corp-apps-zzzz.com:9002\/app-files\/image.512x512.jpg&lt;\/string&gt;                     &lt;\/dict&gt;                 &lt;\/array&gt;                 &lt;key&gt;metadata&lt;\/key&gt;                 &lt;dict&gt;                     &lt;key&gt;bundle-identifier&lt;\/key&gt;                     &lt;string&gt;com.habr.hellohabr001&lt;\/string&gt;                     &lt;key&gt;bundle-version&lt;\/key&gt;                     &lt;string&gt;0.0.1&lt;\/string&gt;                     &lt;key&gt;kind&lt;\/key&gt;                     &lt;string&gt;software&lt;\/string&gt;                     &lt;key&gt;title&lt;\/key&gt;                     &lt;string&gt;myApp&lt;\/string&gt;                 &lt;\/dict&gt;             &lt;\/dict&gt;         &lt;\/array&gt;     &lt;\/dict&gt;     &lt;\/plist&gt; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u0412 \u043f\u0430\u043f\u043a\u0443 <i>\/app-files\/<\/i> \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 <i>corp-apps-zzzz.cer<\/i>, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043d\u0430 <i>*.crt<\/i>. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043d\u0430 iOS-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b.   <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0ae\/100\/599\/0ae10059951d473d833504194b4d5732.png\"\/>  <\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c, \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0436\u0430\u0442\u044c \u0432\u0441\u0435\u0433\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043d\u043e\u043f\u043e\u043a, \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043d\u0430 \u0441\u0430\u0439\u0442: <\/p>\n<pre>https:\/\/corp-apps-zzzz.com:9002<\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/b95\/1ed\/fbb\/b951edfbb10b47269dd520f49b270448.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/063\/061\/93c\/06306193ccb84ddd9cbe5b36a348e855.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/a3c\/8de\/063\/a3c8de0639a4419ea49eb09d0c4facea.png\"\/><\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0415\u0441\u043b\u0438 \u043d\u0430\u0436\u0430\u0442\u044c \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e<\/b><\/p>\n<div class=\"spoiler_text\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/b96\/834\/28e\/b9683428ef354e4e99b4e25fe738bc6f.png\"\/>  <\/div>\n<\/div>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/b1a\/508\/ba6\/b1a508ba66de4c3e85097694e9aa49c9.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/edc\/c90\/414\/edcc90414450493ea963eda9fa84594d.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/83d\/516\/7b3\/83d5167b37bf40b883d4666a2474dbf9.png\"\/><\/p>\n<p>  \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8a1\/fce\/13e\/8a1fce13ee6d4c22bf3f0e48a6ac7a62.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/f6b\/cba\/e35\/f6bcbae35aa34f42bbd41a5585edf009.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/5b8\/1b3\/8e5\/5b81b38e5e534992a02a7ba5576da051.png\"\/>  <\/div>\n<\/div>\n<h4>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h4>\n<p>  \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f iOS \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0442\u0435\u043a \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Microsoft.<\/p>\n<p>  \u0412 \u0446\u0435\u043b\u044f\u0445 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u044f \u0432\u044b\u043b\u043e\u0436\u0438\u043b \u0434\u0435\u043c\u043e-\u043f\u0440\u043e\u0435\u043a\u0442\u044b \u043d\u0430 GitHub.<\/p>\n<ul>\n<li>\u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/github.com\/Zanael\/iOSDistribByLinkAzure\">\u0442\u0443\u0442<\/a>;<\/li>\n<li>\u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043b\u043e\u0449\u0430\u0434\u043a\u0438 windows server \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/github.com\/Zanael\/iOSDistribByLinkWinServer\">\u0442\u0443\u0442<\/a>.<\/li>\n<\/ul>\n<p>  \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043b\u044e\u0434\u044f\u043c, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0430 \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u043c\u0435.               <\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habrahabr.ru\/post\/277765\/\"> https:\/\/habrahabr.ru\/post\/277765\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/376\/7f8\/856\/3767f885618149ae969317dd0ad36b51.jpg\"\/><\/p>\n<p>  \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0441\u0442\u0430\u043b\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043e \u043f\u043e\u043a\u0443\u043f\u043a\u0435 Xamarin \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439 Microsoft. \u0414\u0430\u043d\u043d\u0430\u044f \u043d\u043e\u0432\u043e\u0441\u0442\u044c \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043d\u0435\u0437\u0430\u043c\u0435\u0447\u0435\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435, \u0441\u0440\u0435\u0434\u0438 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u0412 \u0441\u0432\u044f\u0437\u0438 \u0441 \u044d\u0442\u0438\u043c, \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b \u0438\u0441\u0442\u043e\u0440\u0438\u0438, \u0433\u0434\u0435 \u0432 Microsoft Full Stack \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043d\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u0440\u0430\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043d\u0430\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u043f\u0435\u0442\u0435\u043d\u0446\u0438\u0438 IT-\u043e\u0442\u0435\u043b\u0430, \u043b\u0438\u0431\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0432 \u0446\u0435\u043b\u043e\u043c. \u0414\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043b\u0430\u043a\u043e\u043d\u0438\u0447\u043d\u044b\u043c \u0432\u044b\u0431\u043e\u0440 Xamarin, \u043a\u0430\u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430, \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u043f\u0430\u0437\u043b, \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0438\u0437 SharePoint, ASP.NET MVC, WebAPI services \u0438 Azure.<br \/>  \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0442\u0435\u043a \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 Microsoft.<br \/>  \u041e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u0435\u0442\u043e\u0434, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0443\u043a\u043b\u043e\u043d \u0432 .NET \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u043a iOS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043b\u044e\u0431\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0431\u0443\u0434\u044c \u0442\u043e Apache Cordova \u0438\u043b\u0438 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043d\u0430\u0442\u0438\u0432.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-275692","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/275692","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=275692"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/275692\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=275692"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=275692"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=275692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}