Wdrożenie aplikacji korporacyjnej nie działa w systemie iOS 7.1

317

Dystrybuujemy aplikacje za pośrednictwem konta Enterprise za pomocą itms-services://adresu URL. To zawsze działało dobrze, ale po zainstalowaniu iOS 7.1 beta na naszym iPadzie odmawia instalacji. Zamiast tego otrzymujemy ogólny Cannot connect to example.comkomunikat, który iOS niepomyślnie wyświetla, gdy pojawia się jakikolwiek problem z pobraniem aplikacji.

Nie mogłem znaleźć niczego tutaj w SO, Google ani w informacjach o wersji 7.1, które sugerowałyby przyczynę problemu.

Mark Parnell
źródło
1
Czy obejmuje to również serwer kompilacji, który jest częścią Mavericks Server?
Dan
To również zostało dla nas uszkodzone na naszym serwerze OS X Server.
toofah
może to pomoże teratotech.com/blog/…
HelmiB

Odpowiedzi:

330

Znalazłem problem, podłączając iPada do komputera i przeglądając konsolę za pomocą XCode Organizer podczas próby zainstalowania aplikacji. Błąd okazuje się:

Nie można załadować manifestu URL innego niż https: http://example.com/manifest.plist

Okazuje się, że w iOS 7.1 adres URL manifest.plistpliku musi być HTTPS, w którym używaliśmy HTTP. Zmiana adresu URL na HTTPS rozwiązała problem.

To znaczy

itms-services://?action=download-manifest&url=http://example.com/manifest.plist

staje się

itms-services://?action=download-manifest&url=https://example.com/manifest.plist

Zakładam, że musisz mieć ważny certyfikat SSL dla danej domeny. Już to zrobiliśmy, ale wyobrażam sobie, że bez tego będziesz mieć problemy.

Mark Parnell
źródło
5
Możesz utworzyć samopodpisany certyfikat SSL dla swojej witryny, nie zapomnij utworzyć profilu za pomocą iPhone Configuration Utility, aby zaufać certyfikatowi na swoim urządzeniu.
Niralp,
1
@SantaClaus Czy sprawdziłeś, że link z „itms-services: //” zawiera https: // a nie http: //? Ponadto sprawdź, czy masz również adres IPA Url z HTTPS.
Niralp,
3
Mam takie same problemy jak @Niralp. Skonfigurowałem nasz serwer Apache z samopodpisanym certyfikatem SSL. Serwer wydaje się działać z protokołem SSL w porządku, ale łącza OTA nadal nie działają i powodują wyświetlenie błędu opisanego powyżej. Zainstalowałem certyfikat na urządzeniu z iOS, ale to też nie miało znaczenia. jakieś pomysły?
toofah
5
Utworzyłem własny urząd certyfikacji i podpisałem nim certyfikat SSL serwera WWW. Za pomocą Apple Configurator możesz utworzyć profil, który oznaczy ten urząd certyfikacji jako zaufany. Następnie instalacja działa zgodnie z oczekiwaniami.
Monobono
1
Warto zauważyć, że adresy URL zawarte w manifeście.pl NIE muszą być HTTPS. Tylko adres URL ITMS musi być HTTPS
Brody Robertson
233

ingconti ma rację.

  1. Prześlij swoją app.plist do dropbox.
  2. Uzyskaj udostępniony link do app.plist, np. Https://www.dropbox.com/s/qgknrfngaxazm38/app.plist
  3. wymienić www.dropbox.comze dl.dropboxusercontent.comw linku, jak https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist
  4. Usuń wszelkie parametry z udostępnianego łącza Dropbox, takie jak „? Dl = 0t” (zgodnie z Carlosem Aguirre Tradeco przy wdrażaniu aplikacji Enterprise nie działa na iOS 7.1 i moim własnym doświadczeniu).
  5. Utwórz download.htmlplik z linkiem sformatowanym jako<a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist">INSTALL!!</a>
  6. Prześlij download.htmldo skrzynki odbiorczej
  7. Ponownie uzyskaj udostępniony link download.html, na przykład https://www.dropbox.com/s/gnoctp7n9g0l3hx/download.html , i usuń wszelkie parametry.
  8. Wymień www.dropbox.comsię dl.dropboxusercontent.comw drugim linku, a także, jak https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html

Teraz odwiedź https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.htmlswoje urządzenie, możesz zainstalować aplikację tak jak wcześniej.

CO CUDOWNY ŚWIAT!

starzec
źródło
4
To uratowało mój bekon! Dziekuję Dziekuję Dziękuję!
Bentford
13
dzięki ... jestem wielkim fanem Apple, ale zaczynam go nienawidzić ... bo te głupie rzeczy, które rujnują mój czas ...
Karthik
1
Zrobiłem wszystkie powyższe kroki. Mam do czynienia z tym samym problemem, co DanM. Pobieranie rozpoczyna się, ale po kilku sekundach pojawia się komunikat „... nie można pobrać w tej chwili”.
alper_k
1
Pojawia się błąd: „Nie można połączyć się z dl.dropboxusercontent.com”, gdy próbuje się zainstalować <a href = "itms-services: //? Action = download-manifest & amp; url = dl.dropboxusercontent.com/s/56ny312cwdacho7 /xxxxx.plist > with https
nano
1
Mam. Poprzednio zapisałem pliki w moim prywatnym folderze, ponownie zmieniłem je na folder publiczny. Nie zapomnij umieścić plików w folderze publicznym. Cheers Oldman
Hariprasad.J
72

W odpowiedzi na odpowiedź Marka Parnella, szybki i brudny sposób obejścia tego problemu polega na umieszczeniu listy manifestów w Dropbox, a następnie za pomocą interfejsu internetowego Dropbox, aby uzyskać bezpośredni link https do niego („Udostępnij link” -> ” Uzyskaj link ”->„ Pobierz ”).

Rzeczywista IPA może pozostać wszędzie tam, gdzie zawsze ją podawałeś. Będziesz musiał zakodować URL URL-a plist, zanim wstawisz go do zapytania URL itms-servivces (chociaż wystarczy zastąpić dowolne & s% 3D).

Jednym minusem jest to, że okno dialogowe instalacji brzmi teraz „dl.dropbox.com chce zainstalować [cokolwiek]”.

Mikrofon
źródło
Nie myślałem o tym! Dzięki!
Święty Mikołaj
Trochę zajęło uzyskanie wartościowego adresu URL (zakodowanego), ale w końcu zaczęło działać. Dzięki!
David Dunham
Sprytne rozwiązanie: D Dzięki!
MobileGuy
Mike, wielkie dzięki, w końcu udało się! Ratownik!
adamteale
Zrobiłem narzędzie, aby pomóc w tym: otter-ota.herokuapp.com . Automatycznie dostosuje adresy URL udostępniania Dropbox, wygeneruje listę (ponieważ xcode już tego nie robi?) I utworzy wymagany link itms i HTML. Może także hostować stronę docelową, jeśli chcesz.
Zupa
36

To prawda, że ​​w przyszłości oczekuje się, że wykonasz wszystkie wdrożenia OTA za pośrednictwem https w iOS7.1. Szkoda, że ​​Apple tego nie dokumentuje.

Dla tych z Was, którzy szukają lepszego rozwiązania wewnętrznego niż poleganie na dropboksie lub konieczność wypłaty gotówki za certyfikat, możesz znaleźć rozwiązanie, postępując zgodnie z krokami opisanymi w punkcie 5 tutaj: http: // blog. httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/

Istota tego jest taka:

  • Utwórz własny certyfikat urzędu certyfikacji, który możesz zainstalować na urządzeniu, które jest w pełni zaufane (zainstalowałem, wysyłając go pocztą elektroniczną)
  • Utwórz parę klucz / cer dla certyfikatu głównego i zainstaluj go na serwerze
  • Upewnij się, że twój serwer używa pary klucz / cer, która pasuje do głównego certyfikatu urzędu certyfikacji
  • W tym momencie powinieneś być w stanie zainstalować swoje aplikacje jak zwykle przez https
  • Wszystko to można osiągnąć w OSX przy użyciu openssl, który jest już domyślnie zainstalowany

To nie jest to samo, co robienie samopodpisanego certyfikatu, w tym rozwiązaniu działasz również jako prywatny urząd certyfikacji. Jeśli certyfikat główny zainstalowany na urządzeniu Apple nie jest oznaczony jako Zaufany (zielony), oznacza to, że coś jest nie tak. Zrób to jeszcze raz.

To absolutnie działa.

Aktualizacja: 13.03.2014 - Udostępniłem małe narzędzie wiersza poleceń, które upraszcza cały ten proces. Możesz go pobrać pod adresem : https://github.com/deckarep/EasyCert/releases

Ralph Caraveo
źródło
1
Bardzo dobrze. Dziękujemy za podsumowanie i narzędzie CL.
Alex Zavatone
Właśnie spędziłem godzinę zastanawiając się nad tym. Użycie 8192-bitowego klucza do certyfikatu CA zakończy się niepowodzeniem. iOS zaimportuje Twój certyfikat, ale nie ufa mu z jakiegokolwiek powodu. 4096-bitowy klucz CA działa.
EmeraldD.
1
@EmeraldD. W kodzie nie ma gdzie: github.com/deckarep/EasyCert/blob/master/EasyCert.go, który używa klucza 8192-bitowego. W rzeczywistości narzędzie używa kluczy 2048, tak jak pokazano w artykule. Przepraszam, że straciłeś czas.
Ralph Caraveo
@ZhaoXiang Mogę spojrzeć na dodanie tego. Czy mógłbyś zgłosić problem tutaj: github.com/deckarep/easycert/issues i, jeśli to możliwe, opublikować wszystkie polecenia użyte do konwersji wszystkich plików w razie potrzeby.
Ralph Caraveo
1
To jest właściwa odpowiedź chłopaki, +1 :))
Tech_Intelliswift
33

Miałem ten sam problem i chociaż korzystałem już z serwera SSL, po prostu zmiana linków na https nie działała, ponieważ istniał problem.

wprowadź opis zdjęcia tutaj Kliknij tutaj, aby zobaczyć obraz

Ten podświetlony fragment powiedział mi, że powinniśmy mieć opcję zaufania do certyfikatu, ale ponieważ jest to sklep z aplikacjami, działając za pośrednictwem Safari, sugestia odzyskiwania po prostu nie jest prezentowana.


Nie byłem zadowolony z istniejących rozwiązań, ponieważ:

  • Niektóre opcje wymagają zależności od strony trzeciej (Dropbox)
  • Nie byliśmy gotowi zapłacić za certyfikat SSL
    • Darmowe certyfikaty SSL są tylko tymczasowym rozwiązaniem.

W końcu znalazłem rozwiązanie, tworząc samopodpisany główny urząd certyfikacji i generując przy tym certyfikat SSL naszego serwera.

Użyłem Keychain Access i OSX Server, ale istnieją inne prawidłowe rozwiązania dla każdego kroku


Tworzenie urzędu certyfikacji

Z tego, co zbieram, urzędy certyfikacji służą do sprawdzania, czy certyfikaty są oryginalne. Ponieważ zamierzamy go stworzyć sami, nie jest to do końca bezpieczne , ale oznacza, że ​​możesz ufać wszystkim certyfikatom danego organu. Lista tych organów jest zazwyczaj domyślnie dołączana do twoich przeglądarek, ponieważ są one w rzeczywistości zaufane. (GeoTrust Global CA, Verisign itp.)

  • Otwórz pęku kluczy i użyj asystenta certyfikatu, aby utworzyć urząd

wprowadź opis zdjęcia tutaj

  • Podaj informacje o urzędzie certyfikacji

wprowadź opis zdjęcia tutaj

  • Nie wiem, czy to konieczne, ale zaufałem autorytetowi.

wprowadź opis zdjęcia tutaj


Generowanie żądania podpisania certyfikatu

W naszym przypadku żądania podpisania certyfikatu są generowane przez administratora serwera. Po prostu jest to plik z pytaniem: „Czy mogę prosić o certyfikat z tymi informacjami dla mojej witryny?”.

  • Następnie musisz utworzyć żądanie podpisania certyfikatu (użyłem menedżera certyfikatów OSX Server dla tego bitu

wprowadź opis zdjęcia tutaj

  • Podaj informacje o certyfikacie (musi zawierać tylko znaki ascii !, dzięki @Jasper Blues)

wprowadź opis zdjęcia tutaj

  • Zapisz gdzieś wygenerowany CSR

wprowadź opis zdjęcia tutaj


Tworzenie certyfikatu

Ponownie działając jako urząd certyfikacji, to Ty decydujesz, czy osoba, która przesłała Ci CSR, jest prawdziwa i nie udaje, że jest kimś innym. Prawdziwe władze mają na to własne sposoby, ale ponieważ masz nadzieję, że jesteś pewien, że jesteś sobą, twoja weryfikacja powinna być całkiem pewna :)

  • Wróć do pęku kluczy i otwórz opcję „Utwórz certyfikat ..”, jak pokazano

wprowadź opis zdjęcia tutaj

  • Przeciągnij zapisany CSR do wskazanego pola

wprowadź opis zdjęcia tutaj

  • Kliknij przycisk „Pozwól mi zastąpić ustawienia domyślne dla tego żądania”

wprowadź opis zdjęcia tutaj

  • Chciałbym przedłużyć okres ważności.

wprowadź opis zdjęcia tutaj

  • Z jakiegoś powodu musimy ponownie podać informacje

wprowadź opis zdjęcia tutaj

  • Kliknij Kontynuuj na tym ekranie

wprowadź opis zdjęcia tutaj

  • UPEWNIJ SIĘ, ŻE KLIKNIJ UWIERZYTELNIANIE SERWERA SSL , ten spowodował u mnie pewne bóle głowy.

wprowadź opis zdjęcia tutaj

  • Możesz kliknąć kontynuuj w pozostałych opcjach.

  • Otworzy się aplikacja Poczta, dająca możliwość wysłania certyfikatu. Zamiast wysyłać e-mailem, kliknij go prawym przyciskiem myszy i zapisz.

wprowadź opis zdjęcia tutaj


Instalowanie certyfikatu

Teraz musimy skonfigurować serwer, aby używał właśnie utworzonego certyfikatu dla ruchu SSL.

  • Jeśli urządzenie, na którym pracujesz, to Twój serwer, być może certyfikat jest już zainstalowany.

wprowadź opis zdjęcia tutaj

  • Jeśli nie, kliknij dwukrotnie certyfikat Oczekujący i przeciągnij plik PEM, który właśnie zapisaliśmy z wiadomości e-mail, we wskazane miejsce. (Alternatywnie możesz wyeksportować swój PEM z pęku kluczy, jeśli go nie zapisałeś).

wprowadź opis zdjęcia tutaj

  • Zaktualizuj serwer, aby używać tego nowego certyfikatu. Jeśli okaże się, że nowy certyfikat nie „przykleja się” i ciągle się przywraca, wróć do bitu w BOLD ITALIC CAPS

wprowadź opis zdjęcia tutaj


Konfigurowanie urządzeń

Każde urządzenie, na którym chcesz zainstalować aplikacje, musi mieć kopię tego urzędu certyfikacji, aby wiedzieć, że może ufać certyfikatom SSL od tego urzędu

  • Wróć do pęku kluczy i wyeksportuj swój ośrodek certyfikacji jako .cer

wprowadź opis zdjęcia tutaj

  • Następnie umieszczam ten plik na moim serwerze za pomocą aplikacji OTA, użytkownicy mogą kliknąć ten link i pobrać certyfikat urzędu. Ważną opcją jest również wysłanie certyfikatu bezpośrednio do użytkowników.

wprowadź opis zdjęcia tutaj

  • Zainstaluj certyfikat na swoim urządzeniu.

wprowadź opis zdjęcia tutaj


Test

  • Upewnij się, że twoje linki Plist są https

    • Spróbuj zainstalować aplikację! Powinno teraz działać. Urząd certyfikacji jest zaufany, a certyfikat SSL pochodzi z tego urzędu.
James Webster
źródło
Nie do końca zrozumiałem ostatnią część twojej odpowiedzi, czy to oznacza, że ​​muszę umieścić plik .cer na moim serwerze, użytkownik powinien pobrać .cer przez HTTP, zanim będzie mógł zainstalować ipa przez HTTPS, czy moje zrozumienie jest prawidłowe ?
Zhao Xiang
Pamiętaj, że plik .cer nie musi być obsługiwany przez HTTP, ponieważ Safari wyświetli interfejs „Czy chcesz zaufać temu certyfikatowi”, który zaniedbuje App Store.
James Webster,
1
Całkowicie zautomatyzowałem ten proces za pomocą łatwego w użyciu narzędzia wiersza polecenia, które wymaga tylko dwóch parametrów. Zobacz moją odpowiedź dotyczącą: github.com/deckarep/EasyCert/releases
Ralph Caraveo
Używam IIS na Windows Server, wygenerowałem plik .cer i umieściłem go na swoim iPhonie, ale nadal nie działa, nie wiedziałem dlaczego. Myślę, że wolałbym teraz wydać trochę pieniędzy na certyfikację.
Zhao Xiang
1
Zwróć też uwagę, że certyfikat, który musi być zainstalowany na urządzeniu, to Certificate Authoritycert, a nie samopodpisany certyfikat SSL, ponieważ zostałem przez pomyłkę zainstalowany na początku
NSTJ
6

Mogę potwierdzić, że działa, ale musisz umieścić html AND plist na dropbox. Działa również w przypadku OTA dla przedsiębiorstw, tj. Chcesz udostępnić aplikację swojemu twórcy. zespół.

Zrobiłem:

a) na mojej stronie utworzyłem stronę z tym linkiem:

.. href = "https://dl.dropboxusercontent.com/u//( twój identyfikator DB) /ipa.html"> MyApp

b) na DropBox napisałem inną stronę HTML:

.. https://dl.dropboxusercontent.com/u/( twój identyfikator DB) /MyApp.plist "> Stuknij, aby zainstalować MyApp

c) przeniósł plist na DropBox, ale pozostawił go POINT na moim starym serwerze (bez https)

ingconti
źródło
7
Nie musiałem umieszczać html i wydaje się, że działa dobrze. Wystarczył plist.
Ben G
który plist to btw? Czy jest to app.plist czy wygenerowany podczas budowania plików IPA?
user1872384,
3

Otwórz terminal i uruchom polecenie: curl -i https: // (ścieżka pliku .ipa nie plist)

Dzięki temu dowiesz się, czy instalator może zobaczyć plik IPA. Jeśli uruchomisz polecenie curl za pomocą „-i”, zobaczysz pełną odpowiedź i prawdopodobnie nie jest to plik IPA. Jest to odpowiedź, którą widzi instalator, więc jeśli nie zwraca HTTP 200 i IPA, musisz go zwrócić po swojej stronie.

Instalator ITMS nie zapisuje żadnego kontekstu z Safari. Jeśli uwierzytelniłeś się w bezpiecznym portalu w Safari, pliki cookie uwierzytelniające nie są przekazywane do instalatora. tzn. instalator musi widzieć aplikację bez uwierzytelnienia, co może być przyczyną „Nie można połączyć się z serwerem”.

Gagan_iOS
źródło
To było dla mnie bardzo pomocne. Dzięki!
Stanislav Pankevich
chcesz uruchomić polecenie z aplikacji terminalowej na iPhonie lub MACBooku? Wygląda na to, że mam również ten sam problem.
user867662
2

Miałem te same problemy i zrobiłem, jak wspomniano powyżej.

  • Umieść plist w Dropbox.
  • Nad przyciskiem pobierania pliku poniżej obrazu dokumentu prawym przyciskiem myszy wybierz akcję kopiowania łącza. Ten link jest już podobny do https://dl.dropboxusercontent.com/s/xyz123/app.plist?stuff=stuff z wieloma parametrami.
  • Usuń parametry (zachowuje tylko adres między https i .plist)
  • Wyszukaj kod URL w trybie online, wybierz jeden z tych linków, skopiuj, wklej, uruchom, a następnie skopiuj tekst i wklej go do html, w którym mam link itms-services. Nawiasem mówiąc, mam ten HTML w dwóch różnych lokalizacjach, w jednym z nich znajduje się IPA.
  • Upewnij się, że plist zawiera bezwzględne odwołania do pliku ipa.

Obie strony działały pomyślnie, instalując aplikację na iPhone'ach z ios 7.1

Ale teraz telefony z systemem iOS 7.0x nie mogą zainstalować aplikacji.

Stworzyłem nowe pytanie: zaktualizowane wdrożenie aplikacji adhoc nie działa na iOS wcześniejszych niż 7.1

Obie kwestie są ściśle powiązane, a także związane z brakiem oficjalnych referencji.

Carlos Aguirre Tradeco
źródło
2

Jakiś miły facet poradził sobie z tym problemem, używając certyfikatu StartSSL klasy 1 i udostępnionej konfiguracji Apache, która dodaje obsługę certyfikatów (będzie działać z każdym certyfikatem) i kod do automatycznej zmiany łączy w istniejących plikach * .plist. Zbyt długo, aby skopiować, więc oto link: http://cases.azoft.com/how-to-fix-certificate-is-not-valid-error-on-ios-7/

kostka lodu
źródło
2

Jeśli zdarzy ci się mieć AWS S3, który działa również jak urok. Dobrze. Obiektywnie mówiąc :-)

Utwórz segment dla swoich ad hoc w AWS, dodaj plik indeksu (może to być po prostu pusty plik index.html), a następnie za pomocą klienta, który może połączyć się z S3, na przykład CyberDuck lub Coda (użyłem Cody - tam, gdzie wybrałeś Dodaj Witryna, aby uzyskać okno połączenia), a następnie ustaw połączenia jak załączone:

Następnie zbuduj ad hoc dla przedsiębiorstw w XCode i upewnij się, że używasz https://s3.amazonaws.com/your-bucket-name/your-ad-hoc-folder/your-app.ipa jako URL aplikacji i prześlij go do nowego katalogu segmentu S3.

Twój link itms powinien pasować, tj. Itms-services: //? Action = download-manifest & url = https://s3.amazonaws.com/your-bucket-name/your-ad-hoc-folder/your-app.plist

I voilá.

Dotyczy to tylko ogólnych adresów URL AWS - nie próbowałem z niestandardowymi adresami URL w AWS, więc być może będziesz musiał zrobić kilka rzeczy inaczej.

Byłem zdeterminowany, aby spróbować rozwiązania Jamesa Webstera powyżej, ale nie mogłem zmusić go do współpracy z Plesk.

Katarzyna
źródło
1

Alternatywnie do korzystania z Dropbox do dystrybucji korporacyjnej możesz użyć TestFlight do dystrybucji aplikacji podpisanych korporacyjnie.

https://www.testflightapp.com/

To fantastyczna usługa do hostowania i dystrybucji zarówno kompilacji programistycznych ad-hoc, jak i kompilacji korporacyjnych.

Brody Robertson
źródło
1
Jak na ironię, Testflight został najwyraźniej przejęty przez Apple techcrunch.com/2014/02/21/...
Thunder Rabbit
1
Ponadto, teraz, gdy Apple zostało nabyte przez Testflight, rezygnują z obsługi Androida.
Brody Robertson,
1

Kontynuując poprzednie odpowiedzi na temat Dropbox, zaimplementowałem następujące drzewo plików, takie jak tylko plik PLIST musi zostać przesłany do Dropbox:

  1. prześlij plik IPA na swój serwer w http (tutaj bez zmian)
  2. prześlij plik informacyjny (.mobileprovision) na swój serwer w http (bez zmian tutaj)
  3. prześlij plik plist do swojego dropboxa (bez zmian w pliku plist, ponieważ adresy URL są bezwzględne)
  4. użyj opcji „Udostępnij link Dropbox”, która kopiuje link do schowka. Ten link należy skopiować do pliku HTML do zapytania URL itms-servivces po zmianie części www.dropbox.como dl.dropboxusercontent.com. Uwaga: URL kodowałem link zgodnie z sugestią @Mike, ale nie testuję bez zrobienia tego. Teraz zapytanie adresu URL usług itms powinno wyglądać następująco:itms-services://?action=download-manifest&url=https%3A%2F%2Fdl.dropboxusercontent.com%2Fs%2FYourShortDropboxLink.plist

  5. prześlij plik HTML na swój serwer w http. Uwaga: plik HTML zawiera zarówno łącza do plików ipa, jak i do plików inicjujących.

  6. dostęp do pliku HTML z urządzenia, a teraz ipa może być instalowana przez OTA jak zwykle.

Odtąd tylko plik IPA musi zostać zmieniony, aby udostępnić kolejne wersje aplikacji przez OTA swoim beta testerom. Dopóki Apple nie zmieni jeszcze zasad bezpieczeństwa.

Dołączam tutaj po bardzo prostym pliku HTML, którego używam:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>iPhone app for test</title>
</head>
<body>
<h1>iPhone app for test</h1>
<br/>
<ul>
    <li><a href="http://www.yourdomain.com/with/directories/provision/v.last/yourprovision_adhoc.mobileprovision">
            Install Provisioning File</a></li>
    <li><a href="itms-services://?action=download-manifest&url=https%3A%2F%2Fdl.dropboxusercontent.com%2Fs%2FYourShortDropboxLink.plist">
            Install Application</a></li>
</ul>
</body>
</html>
Lisarien
źródło
1
Do Twojej wiadomości można użyć następującego linku do zakodowania adresu URL: w3schools.com/tags/ref_urlencode.asp
Lisarien,
0

Nasz zespół korzysta z Dropbox do dystrybucji ad-hoc, która korzysta z protokołu https, ale nadal nie można zainstalować naszej aplikacji. Po wielu rozwiązywaniach problemów zdaliśmy sobie sprawę, że pole tytułowe jest również wymagane. Ilekroć wysyłaliśmy link bez tego pola, safari zignorowało link i nie poprosiło użytkownika o instalację. Czasami w przypadku szybkich testów programistycznych pomijaliśmy węzeł tytułowy w pliku XML i nie wypełnialiśmy go. Jeśli jest to pomocne dla każdego, kto ma ten problem, upewnij się, że .plist zawiera następujące węzły:

      ....
     <string>software</string>
    <key>title</key>
     <string>Your App Name</string>
      ...
użytkownik2325031
źródło
0

Po przeczytaniu tego postu nadal miałem problem z pobraniem mojej aplikacji. Problem był z powodu samopodpisanego certyfikatu SSL.

Znalazłem rozwiązanie tego problemu. Musisz przesłać plik certyfikatu z rozszerzeniem „.crt” do sieci i wpisać jego adres w mobilnym safari. System poprosi Cię o dodanie certyfikatu do listy zaufanych certyfikatów. Po tej operacji będziesz mógł zainstalować aplikację ad-hoc.

ArturOlszak
źródło
0

Uniwersalnym rozwiązaniem jest podłączenie urządzenia do komputera Mac i obserwowanie, co dzieje się podczas instalacji. Mam błąd:

Nie można załadować manifestu pobierania z podstawowym błędem: Błąd Domena = NSURLErrorDomain Kod = -1202 „Nie można połączyć się ze sklepem” UserInfo = 0x146635d0 {NSLocalizedDescription = Nie można połączyć się ze sklepem, NSLocalizedRecoverySuggestion = Czy mimo to chcesz się połączyć z serwerem ?, NSLocalizedFailureReason = Nie można nawiązać bezpiecznego połączenia. Sprawdź ustawienia daty i godziny. , NSErrorFailingURLStringKey = https://myserver.com/app/manifest.plist } https://myserver.com/app/manifest.plist , NSUnderlyingError = 0x14678880 „Certyfikat dla tego serwera jest nieprawidłowy. Być może łączysz się z serwerem udającym„ myserver.com ”, który może poufne informacje zagrożone. ", NSURLErrorFailingURLPeerTrustErrorKey =, NSErrorFailingURLKey =

W tym błędzie była nawet sugestia sprawdzenia ustawień daty. Z jakiegoś powodu była to data 1 stycznia 1970 r. Ustawienie prawidłowej daty rozwiązało problem.

beryl
źródło
-1

Apter próbował zmienić itms-services://?action=download-manifest&url=http://....na itms-services://?action=download-manifest&url=https://..... To też nie działa. Alert jest cannot connect to my domain. Dowiaduję się, że również muszę zaktualizować stronę internetową.

Problem nie polega na tym, że głównym adresem URL jest HTTPS, ale częścią kodu HTML w linku na stronie. Będziesz potrzebować programistów, aby zaktualizować stronę. Zauważyłem również, że nie ma ważnego certyfikatu SSL w Twojej domenie testowej, więc musisz go zainstalować lub użyć Dropbox, a tutaj jest link, który może ci pomóc

zawietrzny
źródło