[ios] iOS 7.1에서 엔터프라이즈 앱 배포가 작동하지 않습니다

itms-services://URL을 사용하여 엔터프라이즈 계정을 통해 앱을 배포합니다 . 이것은 항상 잘 작동했지만 iPad에 iOS 7.1 베타를 설치 한 후에는 설치를 거부합니다. 대신 Cannot connect to example.com앱을 다운로드하는 데 문제가있을 때 iOS가 도움이되지 않는 일반적인 메시지를 얻습니다 .

SO, Google 또는 7.1 릴리스 정보에서 문제의 원인을 제안하는 내용을 찾을 수 없었습니다.



답변

앱을 설치하려고 할 때 iPad를 컴퓨터에 연결하고 XCode Organizer를 통해 콘솔을 보면서 문제를 발견했습니다. 오류는 다음과 같습니다.

http가 아닌 매니페스트 URL을로드 할 수 없습니다 : http://example.com/manifest.plist

iOS 7.1에서 manifest.plist파일 의 URL은 HTTP를 사용하는 HTTPS 여야합니다. URL을 HTTPS로 변경하면 문제가 해결되었습니다.

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

된다

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

해당 도메인에 유효한 SSL 인증서가 있어야한다고 가정합니다. 우리는 이미했지만 그것 없이는 문제가 있다고 상상할 것입니다.


답변

ingconti가 옳다.

  1. dropbox에 app.plist를 업로드하십시오.
  2. https://www.dropbox.com/s/qgknrfngaxazm38/app.plist 와 같은 app.plist의 공유 링크 가져 오기
  3. 대체 www.dropbox.comdl.dropboxusercontent.com같은 링크에 https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist
  4. Dropbox 공유 가능 링크에서 “? dl = 0t”와 같은 매개 변수를 제거하십시오 ( Enterprise 앱 배포의 Carlos Aguirre Tradeco가 iOS 7.1 및 자체 경험 에서는 작동하지 않음 ).
  5. 다음 download.html과 같은 형식의 링크가 있는 파일을 만듭니다.<a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/qgknrfngaxazm38/app.plist">INSTALL!!</a>
  6. download.html보관 용 계정에 업로드
  7. 다시 https://www.dropbox.com/s/gnoctp7n9g0l3hx/download.html 과 같은 download.html의 공유 링크를 가져 와서 매개 변수를 제거하십시오.
  8. 교체 www.dropbox.comdl.dropboxusercontent.com같은뿐만 아니라 두 번째 링크 https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html

이제 https://dl.dropboxusercontent.com/s/gnoctp7n9g0l3hx/download.html장치를 방문 하여 이전과 같이 앱을 설치할 수 있습니다.

훌륭한 세상!


답변

Mark Parnell의 답변에 더하여, 이것을 해결하는 빠르고 더러운 방법은 매니페스트 plist를 Dropbox에 넣은 다음 Dropbox 웹 인터페이스를 사용하여 직접 https 링크를 얻는 것입니다 ( ‘공유 링크’-> ‘ 링크 받기 ‘->’다운로드 ‘).

실제 ipa는 언제 어디서나 서비스를 제공 할 수 있습니다. plist의 URL을 itms-servivces URL의 쿼리에 삽입하기 전에 plist의 URL을 URL 인코딩해야합니다 (& s를 % 3D (으)로 바꾸면 효과가 있습니다).

한 가지 단점은 이제 설치 대화 상자에 “dl.dropbox.com이 [어떻게] 설치하려고합니다”라는 메시지가 표시된다는 것입니다.


답변

앞으로 iOS7.1에서 https를 통해 모든 OTA 배포를 수행해야합니다. 이것을 문서화하지 않은 것에 대한 사과의 수치.

dropbox에 의존하는 것보다 더 나은 사내 솔루션을 찾고 있거나 인증서를 현금으로 인출하는 것보다 더 나은 사내 솔루션을 찾고있는 사람들은 여기 팁 # 5에 설명 된 단계를 수행하면 솔루션을 가질 수 있습니다 : http : // blog. httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/

그것의 요지는 이것입니다 :

  • 완전히 신뢰할 수있는 장치에 설치할 수있는 자체 CA 기관 인증서를 만듭니다 (전자 메일로 간단히 설치).
  • 루트 인증서에 대해 키 / cer 쌍을 작성하여 서버에 설치하십시오.
  • 웹 서버가 CA Authority 루트 인증서와 일치하는 키 / cer 쌍을 사용하는지 확인하십시오
  • 이 시점에서 평소와 같이 https를 통해 앱을 설치할 수 있습니다
  • 이 모든 것은 기본적으로 이미 설치되어있는 openssl을 사용하여 OSX에서 수행 할 수 있습니다.

이것은 자체 서명 된 인증서를 수행하는 것과 같지 않습니다.이 솔루션에서 사용자는 자신의 개인 인증 기관으로도 활동하고 있습니다. Apple 장치에 설치된 루트 인증서가 신뢰할 수있는 (녹색)으로 표시되지 않으면 잘못된 것입니다. 끝났어

이것은 절대적으로 작동합니다.

업데이트 : 2014 년 3 월 13 일-이 전체 프로세스를 단순화하는 작은 명령 줄 유틸리티를 제공했습니다. https://github.com/deckarep/EasyCert/releases 에서 얻을 수 있습니다.


답변

나는 같은 문제가 있었고 이미 SSL 서버를 사용하고 있었지만 근본적인 문제가 있었기 때문에 단순히 https로 링크를 변경하는 것이 작동하지 않았습니다.

여기에 이미지 설명을 입력하십시오
이미지를 보시려면 여기를 클릭하십시오

강조 표시된 부분 은 인증서를 신뢰할 수있는 옵션이 제공 되어야한다고 말 했지만 이것이 앱 스토어이므로 Safari를 통해 복구 제안이 제시되지 않습니다.


다음과 같은 이유로 기존 솔루션에 만족하지 못했습니다.

  • 일부 옵션은 타사 (Dropbox)에 의존해야합니다.
  • SSL 인증서 비용을 기꺼이 지불하지 않았습니다
    • 무료 SSL 인증서는 임시 솔루션 일뿐입니다.

마지막으로 자체 서명 된 루트 인증 기관을 만들고이를 사용하여 서버의 SSL 인증서를 생성 하여 솔루션을 찾았습니다 .

Keychain Access와 OSX Server를 사용했지만 각 단계마다 다른 유효한 솔루션이 있습니다.


인증 기관 생성

내가 수집 한 것에서 인증 기관은 인증서가 정품인지 확인하는 데 사용됩니다. 우리가 직접 만들려고하므로 정확히 안전 하지는 않지만 주어진 기관의 모든 인증서를 신뢰할 수 있음을 의미합니다. 이러한 권한 목록은 일반적으로 브라우저에서 실제로 신뢰 되므로 기본적으로 브라우저에 포함됩니다 . (GeoTrust Global CA, Verisign 등)

  • 키 체인을 열고 인증 지원을 사용하여 권한을 작성하십시오.

여기에 이미지 설명을 입력하십시오

  • 인증 기관 정보를 입력하십시오

여기에 이미지 설명을 입력하십시오

  • 필요한지 모르겠지만 권한을 신뢰할 수있게 만들었습니다.

여기에 이미지 설명을 입력하십시오


인증서 서명 요청 생성

이 경우 서버 관리자가 인증서 서명 요청을 생성합니다. 단순히 “내 사이트에이 정보가 포함 된 인증서를받을 수 있습니까?”라는 파일입니다.

  • 다음으로 인증서 서명 요청 을 작성해야합니다 (이 비트에 대해 OSX Server의 인증서 관리자를 사용했습니다)

여기에 이미지 설명을 입력하십시오

  • 인증서 정보를 입력하십시오 (@Jasper Blues 덕분에 ascii 문자 만 포함해야합니다!).

여기에 이미지 설명을 입력하십시오

  • 생성 CSR을 어딘가에 저장

여기에 이미지 설명을 입력하십시오


인증서 작성

인증 기관의 역할을 다시 수행하는 것은 CSR을 보낸 사람이 진짜이고 다른 사람이 아닌 척하는 것은 귀하의 결정에 달려 있습니다. 실제 당국은이를 수행하는 고유 한 방법을 가지고 있지만, 본인이 본인임을 확신하기 때문에 확인이 확실해야합니다. 🙂

  • 키 체인 접근으로 돌아가서 그림과 같이 “인증서 생성”옵션을여십시오.

여기에 이미지 설명을 입력하십시오

  • 저장된 CSR을 표시된 상자로 끕니다.

여기에 이미지 설명을 입력하십시오

  • “이 요청에 대한 기본값을 무시합니다”버튼을 클릭하십시오.

여기에 이미지 설명을 입력하십시오

  • 유효 기간을 늘리고 싶습니다.

여기에 이미지 설명을 입력하십시오

  • 어떤 이유로 우리는 정보를 다시 채워야합니다

여기에 이미지 설명을 입력하십시오

  • 이 화면에서 계속을 클릭하십시오

여기에 이미지 설명을 입력하십시오

  • SSL 서버 인증을 클릭했는지 확인하십시오 . 이로 인해 두통이 발생했습니다.

여기에 이미지 설명을 입력하십시오

  • 나머지 옵션을 통해 계속을 클릭 할 수 있습니다.

  • Mail 앱이 열리고 인증서를 보낼 수 있습니다. 이메일로 보내지 말고 마우스 오른쪽 버튼을 클릭하여 저장하십시오.

여기에 이미지 설명을 입력하십시오


인증서 설치

이제 SSL 트래픽을 위해 방금 생성 한 인증서를 사용하도록 서버를 설정해야합니다.

  • 작업중인 장치 서버 인 경우 인증서가 이미 설치되어있을 수 있습니다.

여기에 이미지 설명을 입력하십시오

  • 그렇지 않은 경우 보류중인 인증서를 두 번 클릭하고 방금 이메일에서 저장 한 PEM 파일을 표시된 공간으로 끕니다. 또는 키 체인에서 PEM을 저장하지 않은 경우 PEM을 내보낼 수 있습니다.

여기에 이미지 설명을 입력하십시오

  • 이 새 인증서를 사용하도록 서버를 업데이트하십시오. 새 인증서가 “고착”되지 않고 계속 되 돌리면 BOLD ITALIC CAPS 의 비트로 돌아가십시오.

여기에 이미지 설명을 입력하십시오


장치 설정

앱을 설치해야하는 각 장치에는 해당 인증 기관의 사본이 있어야 해당 기관의 SSL 인증서를 신뢰할 수 있음을 알 수 있습니다.

  • 키 체인 접근으로 돌아가서 인증 기관을 .cer로 내보내기

여기에 이미지 설명을 입력하십시오

  • 그런 다음이 파일을 OTA 앱과 함께 서버에 저장하면 사용자가이 링크를 클릭하고 기관 인증서를 다운로드 할 수 있습니다. 인증서를 사용자에게 직접 이메일로 보내는 것도 유효한 옵션입니다.

여기에 이미지 설명을 입력하십시오

  • 장치에 인증서를 설치하십시오.

여기에 이미지 설명을 입력하십시오


테스트

  • plist 링크 가 https 인지 확인하십시오

    • 앱을 설치하고 설치하십시오! 이제 작동합니다. 인증 기관을 신뢰할 수 있으며 SSL 인증서는 해당 기관에서 가져 왔습니다.

답변

작동하는지 확인할 수 있지만 dropbox에 html 및 plist를 넣어야합니다. 기업 외 OTA에서도 작동합니다. 즉, 개발자와 앱을 공유하려고합니다. 팀.

나는했다 :

a) 내 사이트 에서이 링크가있는 페이지를 만들었습니다.

.. href = “https://dl.dropboxusercontent.com/u//(your DB id) /ipa.html”> MyApp

b) DropBox에서 다른 HTML 페이지를 작성했습니다.

.. https://dl.dropboxusercontent.com/u/(your DB id) /MyApp.plist “> 탭하여 MyApp 설치

c) DropBox에서 plist를 옮겼지만 이전 서버로 POINT로 둡니다 (https 없음)


답변

터미널을 열고 다음 명령을 실행하십시오 : curl -i https : // (.ipa 파일 경로가 plist가 아님)

설치 프로그램이 IPA 파일을 볼 수 있는지 여부를 알려줍니다. ‘-i’와 함께 curl 명령을 실행하면 전체 응답이 표시되고 IPA 파일이 아닐 수 있습니다. 이것은 설치 프로그램이 보는 응답이므로 HTTP 200 및 IPA를 반환하지 않으면 최종적으로 반환해야합니다.

ITMS 설치 프로그램은 Safari의 컨텍스트를 저장하지 않습니다. Safari에서 보안 포털로 인증 한 경우 인증 쿠키가 설치 프로그램으로 전달되지 않습니다. 즉, 설치 프로그램이 인증없이 앱을 볼 수 있어야하며 이것이 ‘서버에 연결할 수 없습니다’라는 이유 일 수 있습니다.