iOS 8의 엔터프라이즈 앱 업데이트 배포


111

itmsURL을 통해 배포하는 엔터프라이즈 앱이 있습니다 .

itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=https://$MY_PLIST_URL.plist

iOS 7에서는 다운로드와 업데이트가 모두 정상적으로 작동합니다. 그러나 iOS 8에서는 오류가 발생합니다.

LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.mycom.MyApp

내 plist에서 나는

<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>

iOS 8의 내 앱에서 버전 0.2.1을 실행하고 있습니다.


1
실행중인 iOS8 버전. 나는 베타 5와 같은 문제가있는 사람들이 들었어요
아닐 Natha

7
똑같은 문제입니다. iOS 8 GM. 이러한 앱은 지금 다운로드를 거부합니다.
Carl Sjogreen 2014 년

3
현재 공식 출시 된 ios8.0을 실행 중이며 설치가 시작되지 않습니다. 나는 consule 살펴했고 메시지 선생님이있다 : "<경고> : LoadExternalDownloadManifestOperation : 매니페스트 다운로드를 무시, 이미 bundleID 있습니다 MYBUNDLENAME를"... 장치를 복원하거나 트릭 할 것 번들 ID를 변경
user2387149을


1
@pcperini 다른 게시물의 답변에 더 많은 정보가 있다고 생각합니다. 의도 된 위반이 없습니다.
Kristopher Johnson 2014

답변:


91

우리 앱 배포에서도이 문제가 발생했습니다. 우리는 ipa 번들 식별자를 동일하게 유지하면서 다운로드 배포에 사용하는 .plist 내의 번들 식별자를 '위조'하여이 문제를 해결할 수있었습니다.

예를 들어, plist에서 :

<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>

com.mycom.MyAppcom.mycom.MyApp.ios8fix로 변경하십시오.

앱은 새로운 앱 아이콘을 사용하여 설치되며 설치 후 사라집니다.

이미 앱을 설치 한 경우 설치 중에 새 앱 아이콘도 표시됩니다. 설치 후이 아이콘은 사라지지만 기존 버전의 앱이 업데이트됩니다. 새로 설치하면 설치 아이콘이 사라지고 설치된 응용 프로그램 아이콘이 제자리에 나타납니다.

iOS 8이 번들 식별자를 캐싱하고 요청 된 설치를 이러한 캐시 된 설치와 비교하는 것 같습니다. 대부분의 경우 설치를 요청하는 팝업 만 표시되지만 아무 일도 일어나지 않습니다.

Sean이 이미 알아 차렸 듯이 이것은 xCode 6 GM과 공식 iOS 8 버전에서 나타납니다. 이전에 애플리케이션을 설치 한 적이없는 기기는 앱 설치에 문제가 없습니다.


3
일부 장치에서 작동하지만 다른 일부는 plist 파일을 변경하더라도 여전히 이전 번들 ID를 표시하는 syslog를 왜곡합니다.
사원

사실 올바른 솔루션은 이미지입니다 제공 -이 응답 확인 stackoverflow.com/a/26283611/276656
mspasov

3
제 경우에는 번들 식별자 변경이 일부 장치에서 작동했습니다. plist 자체에 대한 경로를 변경 한 후 나를 위해 해결했습니다.
pawi

1
Xcode Server에서 앱을 다운로드하는 경우 편집 할 .plist는 어디에 있습니까?
Collin

1
이 답변 stackoverflow.com/a/28727958/108040 은 .plist를 변경할 필요가 없기 때문에 더 잘 작동했습니다.
Robin

24

이것은 나를 위해 더 잘 작동했으며 매니페스트 또는 기타 속임수를 만질 필요가 없습니다 ( plist자동 생성 되는 Xcode Server에 적합 ).

  1. iExplorer 다운로드 ( http://www.macroplant.com/iexplorer/ )
  2. 장치 연결
  3. "미디어> 다운로드"에서 모든 파일을 삭제합니다.
  4. 장치 다시 시작

이렇게하면 기기 캐시가 재설정되므로 이제 평소처럼 앱을 설치할 수 있습니다.


3
감사합니다, 당신은 생명의 은인입니다. 저는 Macroplant에서 무료 인 iBrowse ( ibrowseapp.com )를 사용합니다
Min Soe

2
이것은 우리에게 큰 도움이되었습니다 ...
Robin

감사합니다! 그러나 여전히 각 사용자의 전화에서 수행해야한다고 생각합니다!
Ammar Mujeeb

"모든 콘텐츠 및 설정 지우기"(설정 앱 아래)가 작동합니까?
onmyway133

다운로드 폴더의 내용은 무엇입니까?
HamzaGhazouani

16

나는 같은 문제가 있습니다. 나는 그것을 다음과 같이 재현했다.

1) iOS 7에서 iOS 8 GM으로 업그레이드하는 동안 내 애플리케이션 설치

2) iOS 8에서 제거

3) itms-services를 통해 설치 시도 : 동일한 번들 이름으로

서버 plist (응용 프로그램 Info.plist가 아님)에서 번들 식별자를 변경하려고했을 때 작동했습니다 (응용 프로그램이 다운로드되고 "그림자"아이콘이 남아 있지 않음). 그러나 그것은 사과 벌레처럼 보입니다.


1
하지만 앱에서 번들 이름도 변경해야합니다. 서버 plist 만 변경하려고했는데 결과는 다음과 같습니다. 9 월 18 일 09:59:20 XXX-iPhone filecoordinationd [123] <경고> : 샌드 박싱이 com.mo2o.XXX (번들 ID com.apple.iaptransportd) 카테고리에서 진행 구독을 거부했습니다. , 037BE63A-8737-4A4B-9C9D-B8FAF8DC0D40) Sep 18 09:59:20 XXX-iPhone filecoordinationd [123] <경고> : 샌드 박싱이 com.mo2o.XXX 범주에서 진행 구독을 거부했습니다 (번들 ID (null), 0B9D3B2A- 2B5D-4882-8771-61784326E507) 및 응용 프로그램이 설치되지 않습니다
에바 Madrazo에게

mmm 내가 옳지 않습니다. 경고를 기록하지만 앱을 설치합니다.
Eva Madrazo

이것은 잘 작동하지만 사소한 단점이 있습니다. 설치하는 동안 장치는 업데이트중인 앱을 알지 못하므로 설치하는 동안 두 번째 앱 아이콘이 표시됩니다. 설치 후 이것은 자동으로 수정됩니다.
Ivo Jansch 2014 년

4
bulldozer.io 기사에서 "개발자 인증서가 설치된 장치는 영향을받지 않는 것 같습니다"라고 표시되어 있다는 점에 주목할 가치가 있습니다. '개발자 인증서'(문제의 앱을 '덮는'개발 프로비저닝 프로필)가 무엇을 의미하는지 명확하지 않지만 다른 기기에서 문제를 재현하는 문제를 설명 할 수 있습니다.
astletron 2014 년

11

허용되는 솔루션은 더 이상 iOS9에서 작동하지 않습니다.

내 이해는 Apple이 임시 바이너리가 App Store에서 다운로드 한 스톡 앱이나 앱을 대체하는 것을 방지함으로써 심각한 iOS 보안 허점을 막았다는 것입니다. 배경에 대해서는이 문서를 참조하십시오 (CVE-2015-3722 / 3725 및 CVE-2015-3725).

https://www.fireeye.com/blog/threat-research/2015/06/three_new_masqueatt.html

보안 의미를 고려할 때이 동작이 향후 IOS 버전에서 변경 될 것으로 예상하지 않습니다. 대체 옵션은 다음과 같습니다.

  • 애드혹을 설치하기 전에 App Store 버전을 삭제하십시오.
  • 앱과 배포 plist 모두에서 번들 ID를 변경하여 임시를 '새'앱으로 배포합니다.
  • TestFlight 사용

당신이 옳은 것 같습니다. 새로 설치하거나 앱의 이전 임시 버전을 업데이트하면 제대로 작동하지만 설치된 버전이 App Store에서 설치된 경우에는 작동하지 않습니다.
찰스

여기에 애플이 변경 한 이유는 또 다른 힌트는 다음과 같습니다 loopinsight.com/2015/10/05/...
프랑스어

보안을 닫아야 할 필요성을 이해하고 있지만 이로 인해 TestFlight로 이동하지 않고 배포 된 버전에서 한 버전에서 다른 버전으로의 업그레이드를 테스트 할 수없는 흥미로운 시나리오가 있습니다. 같은 개발자의 ad-hoc 프로필과 인증서로 서명 된 앱은 업그레이드 할 수 있어야하는 것 같습니다.
lidsinker 2015-10-13

@charles , "새로 설치하거나 앱의 이전 임시 버전을 업데이트 할 때 잘 작동합니다."테스트 했습니까? 우리가 IOS9이 adhock 업데이트 애드혹 문제가 발생하기 때문에 .....
flypig

@flypig 당시 iOS 9에서 사용해 보았는데 제대로 작동했습니다. 나는 그 이후로 시도하지 않았습니다.
Charles

9

Gil이 말한 것은 옳은 것 같지만 더 구체적으로는 server.plist에서 번들 버전 문자열을 증가시켜야한다는 것을 발견했습니다.

    <key>bundle-version</key>
    <string>3.2.2</string>

최소한 OTA 설치를 수행 할 수 있습니다.

(죄송합니다 ... 댓글에 추가했을 텐데 저는 너무 많은 n00b입니다.)


9

이상 살펴보세요 이 답변 하고 이 답변을 .

해킹없이이 문제를 해결할 수 있습니다. iOS8 assets의 경우 매니페스트 .plist파일 display-imagefull-size-image키 의 키에 포함해야 합니다. 엔터프라이즈 및 애드혹 배포 용 아카이브를 저장할 때 Xcode 5에서 사용할 수 있었지만 필수는 아닙니다.

install-manifet.plist 파일에 대한 템플릿으로 github에 요점을 만들었습니다 .


7
실제로 두 키가 모두 포함 된 상태에서이 문제가 발생했습니다.
Sean Danzeiser 2014 년

나중에 번들 식별자를 변경했고 작동했습니다. 그것에 대해 감격하지 않습니다.
Sean Danzeiser 2014 년

큰! 또한 모든 것을 하위 폴더로 이동하고 ipa 파일의 MD5 만 조정합니다.
Felipe FMMobile 2017-06-02

3

이것은 iOS8 Beta5에서 처음 발견 된 버그입니다. 그리고 그것은 GM 시드와 공식 iOS8.0 버전에서 여전히 Apple에 의해 수정되지 않았습니다. 더 많은 토론은 여기 에서 찾을 수 있습니다 .

직접 테스트중인 현재 해결 방법 :

  • 장치의 내용을 신경 쓰지 않는 경우 : 장치의 DFU 모드에서 클린 복원을 수행하십시오.
  • 물건을 돌려 받고 싶다면
    1. 복원하기 전에 iTunes에서 iOS 장비 백업 (Ad-Hoc / enterprise 앱 없음)
    2. 장치를 깨끗하게 복원 한 후 Ad-Hoc / enterprise 앱을 설치하십시오.
    3. iTunes에서 백업 복원
    4. 이제 해당 애드혹 / 엔터프라이즈 앱을 자유롭게 삭제하고 다시 설치할 수 있습니다.

1
8.1에서도 여전히 수정되지 않았습니다
Kevin

2
8.2에서는 아직 수정되지 않았습니다 ....... 아마도 전 세계 15 명이 기업용 앱을 만들 수도 있습니다.
Karl Heinz Brehme Arredondo 2015 년

3

plist에서 번들 식별자를 변경하여 문제가 해결되었습니다.

일반적으로 itms 링크를 탭하면 아이콘 설치를 보여주는 바탕 화면이 표시됩니다. 그러나 iOS 8.0 장치의 경우 itms 링크를 탭한 후 설치 페이지로 변경되지 않지만 설치는 이미 뒤에서 작동합니다.



1

iOS 10 베타 1에도 동일한 문제가 있습니다.

Dec 31 19:01:32 iphone-6s itunesstored [98] : LoadExternalDownloadManifestOperation : 매니페스트 다운로드 무시, 이미 bundleID : com. ***************. ios with phase : SSDownloadPhaseWaiting

내가 여기서 이해하지 못하는 한 가지는 XCode 장치 로그에서 날짜가 12 월 31 일이지만 장치에 올바른 날짜와 시간이 구성되어 있다는 것입니다.

업데이트 : HockeyApp의 Guys는 WWDC 중에이 문제에 대해 Apple에 알 렸으며 다음 시드에 수정해야합니다.


1
아이폰 OS 10에 동일한 문제
Crossle 노래

0

빌드 스크립트로 iOS 앱을 빌드하고 이전에 --sign 플래그와 함께 PackageApplication을 사용한 경우 문제가 발생할 수 있습니다. --sign 플래그는 10.10에서 빌드 할 때 더 이상 작동하지 않으며 제거하면 모든 iOS 앱이 다시 설치됩니다.

참조 : https://devforums.apple.com/thread/251624?tstart=0


그것은 다른 문제를 다루고 있으며 OP가 요구하는 것처럼 설치가 아닌 건물과 관련이 있습니다.
wottle

동의하지 않습니다. b5에서 도입 된 동작 변경으로 인해 서명 된 IPA가로드되지 않습니다. OP에 매니페스트 파일에 오류가 없다고 가정하면 서명 된 IPA는 제공 한 오류와 함께 설치에 실패하는 것이 사실상 보장됩니다. 그들이 IPA를 구축 한 방법에 대해 언급하지 않았기 때문에 왜 그것이 실패했는지 확실히 말할 수 없습니다. 반면 IPA에서 sig를 제거하면 모두 다시 설치됩니다.
James Moore

사실 일 수 있지만 원래 질문 인 "Ignore manifest download, already have bundleID :"에 지정된 오류를 살펴보면 현재 널리 논의되고있는 엔터프라이즈 앱의 iOS8 버그 및 앱을 설치할 수없는 것과 관련이 있습니다. iOS8로 업그레이드하기 전에 설치 한 다음 iOS8로 업그레이드 한 후 제거합니다. 문제를 해결하고있을 수 있지만 OP에있는 문제는 아닙니다.
wottle

0

완전한 인터넷 접속이 가능한지 확인하십시오.

OTA 설치와 IOS8에서 동일한 문제에 직면했습니다. 내가 회사 프록시 뒤에 있기 때문에 위의 솔루션은 해당 문제를 해결하기 위해 수동 프록시 설정 (IOS7에서는 필요 없음)을 설정할 때까지 작동하지 않았습니다.


0

8.1을 실행하는 장치에서 방금이 문제가 발생했습니다. 장치를 8.3으로 업그레이드하면 문제가 해결되었습니다. 따라서 8.3에서 버그가 더 이상 존재하지 않거나 업그레이드 작업으로 캐시 된 데이터가 삭제되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.