programing

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

megabox 2023. 5. 24. 21:51
반응형

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

.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

내 리스트에서, 나는.

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

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

저는 또한 우리의 앱 배포와 관련하여 이 문제에 직면했습니다.다운로드 배포에 사용하는 .plist 내부의 번들 식별자를 '가짜'하여 ipa 번들 식별자를 동일하게 유지함으로써 이 문제를 해결할 수 있었습니다.

예를 들어, 목록에서:

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

com.mycom을 변경합니다.com.mycom에 내 앱.MyApp.ios8 픽스

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

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

iOS 8은 번들 식별자를 캐싱하고 요청된 설치를 캐시된 설치와 비교하는 것처럼 보입니다.대부분 설치를 요청하는 팝업만 표시되지만 아무 일도 일어나지 않습니다.

션이 이미 알아차렸듯이, 이것은 xCode 6 GM과 공식 iOS 8 버전과 함께 나타납니다.이전에 응용 프로그램을 설치한 적이 없는 장치는 응용 프로그램을 설치하는 데 문제가 없습니다.

속임수를 가 없기 에 저에게잘했습니다. (Xcode 에서 Xcode Server는 Xcode 곳에 적합합니다.)plist자동 생성됨):

  1. i Explorer 다운로드(http://www.macroplant.com/iexplorer/)
  2. 장치 연결
  3. "미디어 > 다운로드"의 모든 파일 삭제
  4. 장치 다시 시작

그러면 장치 캐시가 재설정되고, 이제 평소처럼 앱을 설치할 수 있습니다.

저도 같은 문제를 겪고 있습니다.다음을 통해 복제했습니다.

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

iOS 8에서 제거하기

itms-services: 동일한 번들 이름을 사용하여 설치하려고 합니다.

(애플리케이션 Info.plist가 아닌) 서버 목록에서 번들 식별자를 변경하려고 시도했을 때, 작동했습니다(애플리케이션이 다운로드되고 "그림자" 아이콘이 남아 있지 않음).하지만 그것은 사과 벌레처럼 보입니다.

승인된 솔루션은 iOS9에서 더 이상 작동하지 않습니다.

애플이 애드혹 바이너리가 앱스토어에서 다운로드한 주식 앱이나 앱을 대체하는 것을 막음으로써 심각한 iOS 보안 구멍을 막은 것으로 알고 있습니다.배경은 이 문서를 참조하십시오(CVE-2015-3722/3725 및 CVE-2015-3725).

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

보안 문제를 고려할 때 향후 IOS 버전에서 이러한 동작이 변경되지는 않을 것으로 예상됩니다.대안은 다음과 같습니다.

  • 애드혹을 설치하기 전에 앱스토어 버전 삭제
  • 앱과 배포 목록 모두에서 번들 ID를 변경하여 애드혹을 '새' 앱으로 배포합니다.
  • 테스트 플라이트 사용

Gil이 말한 것이 맞는 것 같지만, 좀 더 구체적으로 말하면, server.plist에서 bundle-version 문자열도 증가시켜야 한다는 것을 알게 되었습니다.

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

이렇게 하면 적어도 OTA 설치를 완료할 수 있습니다.

(죄송합니다...댓글에 추가할 수도 있었지만, 저는 너무 과분합니다.)

답과 이 답을 살펴보세요.

의 경우 이 할 수 . iOS8의 에는 이 할 수 .assets키 니페스 키매트 ▁of키▁the▁key.plist철하다, 철하다, 철하다, 철하다, 철하다, 철하다, 철.display-image그리고.full-size-image엔터프라이즈 및 애드혹 배포를 위해 아카이브를 저장할 때 Xcode 5에서 키를 사용할 수 있지만 필수는 아닙니다.

저는 install-manifet.plist 파일의 템플릿으로 giston github을 만들었습니다.

이것은 iOS8 베타5에서 처음 발견된 버그입니다.그리고 그것은 여전히 애플에 의해 GM 시드와 공식 iOS 8.0 버전에서 고쳐지지 않았습니다.자세한 내용은 여기에서 확인할 수 있습니다.

자체 테스트 중인 현재 해결 방법:

  • 장치의 내용이 중요하지 않은 경우: 장치의 DFU 모드에서 새로 복원
  • 당신이 당신의 물건을 돌려받고 싶다면,
    1. 복원하기 전에 iTunes에서 iOS 기기 백업(애드혹/엔터프라이즈 앱 제외)
    2. 장치를 완전히 복원한 후 애드혹/엔터프라이즈 앱을 설치합니다.
    3. iTunes에서 백업 복원
    4. 이제 애드혹/엔터프라이즈 앱을 삭제하고 다시 설치할 수 있습니다.

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

일반적으로 항목 링크를 누르면 아이콘 설치를 보여주는 바탕 화면이 표시됩니다.하지만 iOS 8.0 기기의 경우, items 링크를 누른 후 설치 페이지로 변경되지 않고 이미 설치가 완료되었습니다.

이것은 극단적이지만 번들 식별자를 변경할 수 없다면 iTunes를 통해 iPhone을 최신 iOS 8로 복원하고 백업에서 복원하면 문제가 해결됩니다.

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

Dec 31 19:01:32 iphone-6s itunes stored [98] : 외부 다운로드 매니페스트 로드 작업:매니페스트 다운로드 무시, 이미 번들 있음com님.***********.ios(단계: SSD 다운로드 단계 대기)

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

업데이트: 하키 앱의 직원들은 WWDC 동안 이 문제에 대해 Apple에 알렸고 수정 사항은 다음 시드에 포함되어야 합니다.

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

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

인터넷에 완전히 액세스할 수 있는지 확인합니다.

저는 OTA 설치와 IOS8에서도 같은 문제에 직면했습니다.회사 프록시를 사용하고 있기 때문에 위의 솔루션은 해당 문제를 해결하기 위해 수동 프록시 설정(IOS7에서 필요하지 않음)을 설정하기 전까지는 작동하지 않았습니다.

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

언급URL : https://stackoverflow.com/questions/25772664/enterprise-app-update-distribution-on-ios-8

반응형