iOS 8-엔터프라이즈 앱을 설치할 수 없음
저희 회사는 Enterprise Distribution을 사용하여 웹 사이트를 통해 다운로드 할 수있는 앱을 보유하고 있습니다.
iOS 8 베타 5에서 다운로드 링크를 누르면 예상되는 팝업 "(웹 사이트)에서 (앱 이름)을 설치하고 싶습니다"라는 팝업이 나타납니다. 해당 대화 상자에서 '설치'를 탭하면 먼저 앱이 "대기 중 ..."으로 멈 춥니 다.
마지막으로 "앱을 다운로드 할 수 없음 (앱 이름)을 지금 다운로드 할 수 없습니다."라는 메시지가 표시 될 때까지
iOS 7을 사용하면 설치가 예상대로 작동합니다.
iOS 8에서 Xcode에서 앱을 실행하면 작동합니다.
엔터프라이즈 배포 iOS 8을 어떻게 지원합니까?
Manifest 파일을 변경해야합니까? Xcode 6 Beta 7에서 앱을 빌드하려고 할 때 Enterprise Archival 프로세스에서 매니페스트 파일을 만들라는 메시지가 표시되지 않았습니다.
내 앱 중 하나를 설치하는 동안 전화 콘솔을 살펴보면서 다음을 발견했습니다.
Sep 9 12:16:56 iPhone misagent[94] <Error>: attempt to install invalid profile: 0xe8008011
Sep 9 12:16:56 iPhone installd[40] <Error>: 0x100484000 -[MIInstallableBundle _installEmbeddedProfileInBundle:]: Could not install embedded profile: 0xe8008011 (Expired)
나에게 알려지지 않은 이유는 애플이 내 프로필의 절반을 무효화하고 경고하지 못했습니다. developer.apple.com으로 이동 한 후 잘못된 프로필을 찾습니다.
히트 Edit
-> Generate
-> Download
새 프로필로 애플리케이션을 다시 빌드합니다.
그러나-나쁜 소식은 여전히 내 앱 중 하나 이상이 설치되지 않습니다. 콘솔을 살펴보면 아무것도 제공되지 않습니다. 나는 이것이 사과 버그라고 확신하므로 레이더를 제출했습니다 : 17622725
문제가 프로필 문제 였으면 좋겠습니다. 그렇지 않으면 오늘 밤 1800GMT까지 기다려야 Apple이 문제를 해결했는지 확인할 수 있습니다.
편집하다
iOS8 GM과 함께-난 그냥 Waiting...
-버그보고 진행 상황에 대해 계속 알려 드리겠습니다.
편집하다
문제 해결 후 몇 가지 수정 사항이 발견되었습니다.
수정 1
iOS8부터는 매니페스트 plist에 링크하는 이미지가 존재하지 않는 경우-Apple은 전화에 애플리케이션을 설치하지 않습니다.-매니페스트는 다운로드 페이지에서 링크하는 파일입니다. itms-services://?action=download-manifest&url={url}
둘 다 full-size-image
및 display-image
존재 하는지 확인하십시오 .
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://{path_to_real_image}</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://{path_to_real_image}</string>
</dict>
수정 2
iOS8의 버그로 인해 이전에 iOS7에 존재했던 엔터프라이즈 애플리케이션은 설치되지 않습니다. 콘솔에 오류가 나타납니다.
Ignore manifest download, already have bundleID: {bundle_id}
이 문제는 bundleID
매니페스트 파일에서 를 일시적으로 변경하여 수정할 수 있지만 Apple은 버그 보고서를 중복으로 표시했음을 알고 있습니다. 내부 테스트 후 홈 화면 레이아웃을 중단하여 문제를 해결합니다.General -> Reset -> Reset Home Screen Layout
수정 3
거의 확실하게 문제가 만료 된 것이 installing...
아니라 애플리케이션이 단계에 들어 간다면 다운로드를 수정하려면 새롭고 업데이트 된 프로비저닝 프로필로 애플리케이션을 다시 보관해야합니다.loading...
embedded provisioning profile
수정 4
애플리케이션이 installing...
스테이지에 도착하고 provisioning profile
유효한 경우-콘솔에 연결된 상태에서 애플리케이션을 다운로드합니다. (Xcode 6> 창> 장치> 왼쪽 하단 버튼 [v]), 설치가 실패 Verification Stage Failed
하고 약간 아래에 오류 메시지가 표시 될 것입니다. 제 경우에는 (Entitlements found that are not permitted by provisioning profile)
-이 오류의 경우 developer.apple.com으로 이동하여 올바른 서비스를 포함하도록 앱 식별자를 업데이트하십시오. 나를 App Groups
위해 활성화되어야했습니다. 그런 다음provisioning profile
오늘도 같은 문제가 발생했습니다. IOs8 (IOs7)에 엔터프라이즈 앱 중 하나를 설치할 수 없습니다. 몇 시간의 검색 끝에 마침내 장치 콘솔에서 다음 메시지를 읽었습니다.
<Warning>: LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.ecaste.Crew-Desk
오랜 검색 끝에 마침내이 게시물을 읽었습니다. http://support.hockeyapp.net/discussions/problems/26683-not-able-to-download-apps-ios8-beta-5-autoupdate-manually-etc
그리고 결국 나는 plist의 이름과 ipa를 다운로드하는 링크 (아마 두 번째는 필요하지 않음)를 변경하고 마침내 앱이 설치됩니다.
마지막으로 앱이 이미 설치된 것으로 간주하는 IOs8의 캐시 문제인 것 같습니다 (그렇지 않은 경우 이전에 제거했습니다).
이 도움을 바랍니다
여기에서 같은 오류가 발생했습니다. bundle-id, bundle-version, plist ...를 변경했지만 오류가 남아 있습니다.
이것이 약간 까다 롭다는 것을 알고 있지만 이것이 나를 위해 작동하는 유일한 것입니다.
- 장치를 Mac 또는 PC에 연결
iTunes에서 백업 생성
iExplorer 설치 : http://www.macroplant.com/iexplorer/
iExplorer를 시작한 다음 데모 모드를 선택하십시오.
왼쪽 사이드 바에서 미디어를 선택한 다음 다운로드 폴더를 열고 그 안의 모든 파일을 삭제합니다.
장치 다시 시작
다운로드 페이지를 열고 최신 버전의 앱을 설치합니다.
실제로 처음 두 단계를 생략하고 완벽하게 작동합니다. :)
이게 도움이 되길 바란다
배포 대상을 낮게 설정
프로젝트> 빌드 설정> iOS 배포 대상
대상> 빌드 설정> iOS 배포 대상
나는 지금 막이 문제가 있었고 그것은 mainfest plist (keys : full-size-image + display-image)가 존재하지 않는 URL 이미지 위치를 가리키고 있기 때문에 발생했습니다.
이미지가 존재하지 않는 경우 iOS6 / iOS7에서 처리 할 수 있지만 iOS8은 이에 대해 더 제한적인 것 같습니다.
"매니페스트 다운로드 무시"메시지에 대한 이전 의견을 기반으로 .plist의 번들 ID (예 : com.companyName.AppName)를 고유 한 이름으로 변경하여 iOS 8에서 다운로드 / 설치하도록했습니다. 설치 후 기존 사본을 올바르게 대체합니다.
여기에 두 가지 문제가 있다고 생각합니다. 엔터프라이즈 인증서 서명 .ipa 파일을 가리키는 https 웹 사이트의 .plist에 이미 설치된 응용 프로그램과 일치하는 번들 식별자가있는 경우 덮어 쓰지 않습니다. 번들 버전은 모든 .plist 파일에서 다르므로 어쨌든 설치해야합니다. iOS 7에는이 문제가없는 것 같습니다. 우리는 plist에서 번들 식별자를 엉망으로 만들어이 문제를 해결할 계획이므로 항상 빌드에 고유합니다.
두 번째 문제는 응용 프로그램을 성공적으로 설치했을 때 홈 화면으로 전환되지 않거나 아무것도 수행하고 있지 않다는 것입니다. iOS 7에서는 프롬프트에서 "설치"버튼을 선택하면 아이콘이 어두워지는 홈 화면으로 전환되고 진행률 표시기에 다운로드 진행률이 표시됩니다. 그러면 응용 프로그램 옆에 새 항목임을 나타내는 파란색 점이 표시됩니다. iOS 8에서는 홈 화면으로 전환되지 않아 작동하지 않는 것처럼 보입니다. 수동으로 홈 화면으로 이동할 수 있으며 진행률 표시기가있는 어두운 아이콘이 표시되어야합니다 (이제 기존 응용 프로그램을 대체 할 것인지 모르기 때문에 새 위치에 있음). 성공적으로 다운로드 / 설치된 후 교체 된 응용 프로그램에 파란색 점이 표시되지 않습니다.
도움이 되었기를 바랍니다.
이것은 나에게 큰 고통을 주었다. MDM 솔루션 외부의 직원 전화에만 새로운 앱 OTA를 설치해야했습니다. 나는 인터넷에서 찾을 수있는 모든 가능한 해결책을 시도하는 것처럼 보였지만 아무것도 작동하지 않았습니다. 내가 얻을 수있는 가장 가까운 것은 앱이 '로딩'단계에 도달하는 것이 었습니다. 내 솔루션은 여러 가지 작업을 수행하는 데 일주일이 걸렸습니다. 어떤 순서로 효과가 있었고 어쨌든 효과가 있었는지 확실하지 않지만 여기에 내가 한 일이 있습니다.
제 경우에는 이전에 개발자 (엔터프라이즈가 아닌) 계정의 프로비저닝 프로필을 사용하여이 앱을 빌드했습니다. Xcode에서 번들 식별자를 변경하여 새 이름을 지정했습니다. 예를 들어 원래 com.mydomain.myapp이었고 com.mydomain.mysuperapp이되었습니다.
앱의 코드 서명이 유효하고 Enterprise 계정에 대한 배포 인증서가 포함되어 있는지 확인했습니다.
나는 잘못된 프로비저닝 프로파일 (아이덴티티가 연결되지 않은 것)을 사용했기 때문에 '자동'을 선택했기 때문에 잘 구축되었지만 설치하지 않을 것입니다. 그래서 릴리스에 대한 코드 서명을 배포 프로필 (개발 프로필이 아닌)로 변경했습니다.
앱을 다운로드 할 장치에 대해 충분히 낮은 배포 대상으로 앱을 설정했는지 확인했습니다.
파일을 보관하고 엔터프라이즈 배포를 위해 내보냈습니다.
매니페스트에는 57x57 png 및 512x512 png 이미지가 포함되어야합니다. 그렇지 않으면 설치가 '대기'단계를 통과하지 않습니다.
다음과 같은 index.html 파일을 만들었습니다.
<html>
<body>
<a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/dw80wahlwupkyd5/MyApp.plist">
Install Learning Chunks App from Dropbox</a>
</body>
</html>
온라인에서 찾은 plist 샘플을 사용했으며 일부 옵션 설정이 포함되어 있습니다. 이걸 남겨 두었을 때 다운로드가 작동하지 않았습니다. 나는 그것들을 꺼냈다. 내 매니페스트 plist 파일의 이름은 MyApp.plist이며 다음과 같습니다.
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://dl.dropboxusercontent.com/s/r1bljbkcows7sje/mysuperapp.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string> https://dl.dropboxusercontent.com/s/ujk9ipcv2naltut/logo57.png</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://dl.dropboxusercontent.com/s/gpebomok83mp9d5/logo512.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.mydomain.mysuperapp</string>
<key>bundle-version</key>
<string>1.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>My Super App</string>
<key>subtitle</key>
<string>My Super App</string>
</dict>
</dict>
</array>
</dict>
</plist>
I uploaded the MyApp.plist, index.html, logo57.png, logo512.png and MyApp.ipa to DropBox. I shared the index.html with those who need to download the app.
The user can then click on the shared link in the email and the app should install.
EDIT: The issue below is a red herring. As Dylan Hand mentioned above, the problem for me was that I had broken image links in the manifest file. Apparently this didn't matter for ios7 but ios8 won't finish the install if this is true. When I removed those reference, it worked perfectly.
I have the same set of symptoms as OP (ie. "Unable to download app" message but only on iOS 8). When I try to validate (ie Organizer -> Validate), I receive the following message.
This led me to this post: https://stackoverflow.com/a/25757196/751136
It claims that re-generating your provisioning profiles should result in a new entitlement called beta-reports-active
. When I try to do this on in my enterprise account, the new profiles DO NOT have the new entitlement. However, when I regenerate provisioning profiles in another non-enterprise account, the new profiles DO have that field.
If you build your iOS apps with a build script and you were previously using PackageApplication with the --sign flag then that may be causing problems. The --sign flag doesn't work any longer when building on 10.10 and removing it got all of our iOS apps installing again.
see: https://devforums.apple.com/thread/251624?tstart=0
This issue drove me crazy, Only this helped for Enterprise Distribution: Perform all the required build settings and click on “Archive”. Perform the Enterprise Distribution Process. You will be shown Organizer window. On Mac machine locate the .xcacrchive file by selecting KRelease and choosing “Show in finder”.
User is navigated to the folder where the .xcarchive file is located. Right-click the .xcarchive file and select “Show Package Contents” option.
In the opened finder window go to Products/Applications Select and copy the .app file
Create a new folder somewhere on your disk with the name “Payload” Note: The folder name is case-sensitive. Paste the copied .app file into “Payload” folder. Compress the Payload folder to get Payload.zip file Rename the Payload.zip file to .ipa and bundle it with your .plist Done !!! the .ipa file is ready to be installed on the devices registered in the provisioning profile used in the .xcarchive generation.
I have sovled this problem.
- Since Apple has changed provisioning profiles, please RENEW the provisioning profiles (File 1) and copy it into the "Payload/".
- Make sure there's a Entitlements.plist (File 2) in the "Payload/", and this plist file MUST be PLAIN TEXT which is created by a text editor.
- Make sure there's a Info.plist (File 3) in "Payload/", and this is created by XCode;
- Copy the Entitlements.plist (File 4) anywhere else except the "Payload/".
- Be sure "Bundle identifier" in File 1-4 should be the same.
- Use this Entitlements.plist (File 4) to Re-Sign the IPA file.
You can resign it like this
codesign -fs "iPhone Distribution: Your Company Name" --entitlements=/Users/SenTR/Downloads/codesign/Entitlements.plist /Users/SenTR/Downloads/codesign/Payload/Your_Project_name.app
Entitlements.plist sample
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>PREFIX.yourappBundleID</string>
<key>aps-environment</key>
<string>production</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>PREFIX.yourappBundleID</string>
</array>
</dict>
</plist>
If you know Chinese, this will be helpful.
http://hennry.com/2015/03/fail-to-resign-ipa-since-ios8/
These answers are valid things to check, but in case anyone else has tried them like I did and STILL had problems, make sure your app contains the proper plist setting that allows the exported archive to be compressed correctly. This is what bit us, even after following all the steps above. Also of note, the answer that talks about ensuring the web site's plist contains valid image links doesn't seem to affect anything, at least for us using XCode 6.3 to export archives. It worked/didn't work irrespective of those links being correct. It's obviously a good idea to have that info correct though. Another interesting note is if we exported using XCode 5, the ipa's were ALWAYS in the correct format (see linked SO article above); it seems XCode 6+ now is picky about it.
My problem was corrected by removing all built outut, then rebuilding completely.
Yet another possible source of this installation issue is a case mismatch between the project and the provisioning profile (especially likely with automated or other command-line builds). The bundle IDs are case-sensitive. For example, if app bundle identifier in the provisioning profile is com.example.MyApp
and the project configuration and/or Info.plist uses com.Example.Myapp
, Xcode 7.1 will fail with a code signing error or fall back to a generic provisioning profile (one with * bundle id, which might itself be an issue) but xcodebuild
command will succeed. Jenkins will also upload the erroneously signed build to Hockeyapp for example. The build will download to client devices but won't install because of the case mismatch.
Therefore,
Fix 0
Check that the application bundle identifier is set up the same way both in the project and on Apple Developer portal.
The simplest way to avoid this particular issue is to always use lower-case characters in your bundle identifiers. Copying bundle id from Apple Developer portal and pasting it into the project build settings (PRODUCT_BUNDLE_IDENTIFIER
) also helps of course.
Though I had the issue with an enterprise account, it might in fact be not specific to this type of distribution.
Fix 0´
Make sure to check out Apple's technical note called Installation Failure Troubleshooting for iOS.
My issue was that I had a space both in my ipa filename, and the reference to that ipa in my plist. Removing the space in both allowed the installation
참고 URL : https://stackoverflow.com/questions/25733299/ios-8-cant-install-enterprise-app
'IT TIP' 카테고리의 다른 글
통계 데이터를 저장할 때 DECIMAL, FLOAT 또는 DOUBLE이 필요합니까? (0) | 2020.11.24 |
---|---|
python docstring의 클래스 메서드에 연결 (0) | 2020.11.24 |
npm을 사용하여 여러 버전의 패키지를 설치하는 방법 (0) | 2020.11.24 |
Java ReentrantReadWriteLocks-안전하게 쓰기 잠금을 획득하는 방법은 무엇입니까? (0) | 2020.11.24 |
boxing / unboxing과 type casting의 차이점은 무엇입니까? (0) | 2020.11.24 |