การกระจายการอัปเดตแอปขององค์กรบน 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 เวอร์ชันใด ฉันเคยได้ยินว่ามีคนที่มีปัญหาเช่นนี้กับ Beta 5
Anil Natha

7
ปัญหาเดียวกันแน่นอน iOS 8 GM. แอพเหล่านี้ปฏิเสธที่จะดาวน์โหลดทันที
Carl Sjogreen

3
ฉันใช้งาน ios8.0 ที่เปิดตัวอย่างเป็นทางการแล้วและการติดตั้งจะไม่เริ่มขึ้น ฉันดูที่กงสุลและมีข้อความว่า: "<คำเตือน>: LoadExternalDownloadManifestOperation: ละเว้นการดาวน์โหลดรายการมี bundleID: MYBUNDLENAME อยู่แล้ว" ... การกู้คืนอุปกรณ์หรือเปลี่ยนรหัสชุดจะช่วยแก้เคล็ด
user2387149


1
@pcperini ฉันคิดว่าคำตอบในโพสต์อื่นมีข้อมูลเพิ่มเติม ไม่มีเจตนากระทำผิด
Kristopher Johnson

คำตอบ:


91

ฉันยังพบปัญหานี้กับการแจกจ่ายแอปของเรา เราสามารถแก้ไขปัญหานี้ได้โดยการ 'ปลอมแปลง' ตัวระบุบันเดิลภายใน. plist โดยใช้สำหรับการกระจายการดาวน์โหลดโดยทำให้ตัวระบุบันเดิล ipa ของเราเหมือนเดิม

ตัวอย่างเช่นใน plist ของคุณ:

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

เปลี่ยนcom.mycom.MyAppเป็นcom.mycom.MyApp.ios8fix

แอพจะติดตั้งโดยใช้ไอคอนแอพใหม่ซึ่งจะหายไปหลังจากติดตั้ง

หากคุณติดตั้งแอปอยู่แล้วคุณจะเห็นไอคอนแอปใหม่ในระหว่างการติดตั้ง หลังจากการติดตั้งไอคอนนี้จะหายไป แต่แอปเวอร์ชันที่มีอยู่แล้วของคุณจะได้รับการอัปเดต เมื่อติดตั้งใหม่ทั้งหมดไอคอนการติดตั้งจะหายไปและไอคอนแอปพลิเคชันที่ติดตั้งจะปรากฏขึ้น

ดูเหมือนว่า iOS 8 กำลังแคชตัวระบุบันเดิลและเปรียบเทียบการติดตั้งที่ร้องขอกับตัวระบุแคชเหล่านี้ ส่วนใหญ่คุณจะเห็นเฉพาะป๊อปอัปขอให้ติดตั้ง แต่ไม่มีอะไรเกิดขึ้น

ดังที่ฌอนสังเกตเห็นแล้วสิ่งนี้จะปรากฏขึ้นพร้อมกับ xCode 6 GM และ iOS 8 เวอร์ชันอย่างเป็นทางการ อุปกรณ์ที่ไม่เคยติดตั้งแอปพลิเคชันของคุณมาก่อนจะไม่มีปัญหาในการติดตั้งแอป


3
มันใช้งานได้กับอุปกรณ์บางอย่าง แต่บางอย่างใช้ syslog ยังคงแสดงรหัสกลุ่มก่อนหน้าแม้ว่าฉันจะเปลี่ยนไฟล์ plist
วัด

การให้รูปภาพเป็นวิธีแก้ปัญหาที่ถูกต้อง - ตรวจสอบคำตอบนี้stackoverflow.com/a/26283611/276656
mspasov

3
ในกรณีของฉันการเปลี่ยน Bundle-Identifier ใช้งานได้กับอุปกรณ์บางอย่างไม่ใช่ทั้งหมด หลังจากเปลี่ยนเส้นทางไปยัง plist เองก็แก้ไขให้ฉัน
pawi

1
.plist จะแก้ไขได้ที่ไหนหากคุณกำลังดาวน์โหลดแอปจาก Xcode Server
Collin

1
คำตอบนี้stackoverflow.com/a/28727958/108040ทำงานได้ดีกว่าสำหรับเราเนื่องจากคุณไม่ต้องเปลี่ยน. plist
Robin

24

สิ่งนี้ใช้ได้ผลดีกว่าสำหรับฉันไม่จำเป็นต้องแตะรายการของคุณหรือกลอุบายอื่น ๆ (เหมาะสำหรับเซิร์ฟเวอร์ Xcode ที่plistสร้างขึ้นโดยอัตโนมัติ):

  1. ดาวน์โหลด iExplorer ( http://www.macroplant.com/iexplorer/ )
  2. เสียบอุปกรณ์ของคุณ
  3. ลบไฟล์ทั้งหมดใน "สื่อ> ดาวน์โหลด"
  4. รีสตาร์ทอุปกรณ์

การดำเนินการนี้จะรีเซ็ตแคชอุปกรณ์ตอนนี้คุณสามารถติดตั้งแอปของคุณได้ตามปกติ


3
ขอบคุณคุณเป็นผู้ช่วยชีวิต ฉันใช้ iBrowse ( ibrowseapp.com ) ซึ่งฟรีจาก Macroplant
Min Soe

2
สิ่งนี้ใช้ได้ผลดีสำหรับเรา ... อย่าลืมรีสตาร์ทอุปกรณ์หลังจากลบเนื้อหาของ Media -> ดาวน์โหลด
Robin

ขอบคุณงาน! แต่ยังคิดว่าจำเป็นต้องทำในโทรศัพท์ของผู้ใช้แต่ละคน!
Ammar Mujeeb

"ลบเนื้อหาและการตั้งค่าทั้งหมด" (ในแอปการตั้งค่า) ใช้งานได้หรือไม่
onmyway133

เนื้อหาของโฟลเดอร์ดาวน์โหลดคืออะไร
HamzaGhazouani

16

ฉันกำลังมีปัญหาเดียวกัน ฉันทำซ้ำโดย:

1) ติดตั้งแอปพลิเคชันของฉันขณะอัปเกรดจาก iOS 7 เป็น iOS 8 GM

2) การลบออกใน iOS 8

3) พยายามติดตั้งผ่าน itms-services: ด้วยชื่อบันเดิลเดียวกัน

เมื่อฉันพยายามเปลี่ยน Bundle-identifier ในเซิร์ฟเวอร์ plist (ไม่ใช่ในแอพพลิเคชั่น Info.plist) มันใช้งานได้ (แอพพลิเคชั่นถูกดาวน์โหลดโดยไม่มีไอคอน "เงา" อยู่) แต่ดูเหมือนบั๊กแอปเปิ้ล


1
แต่คุณต้องเปลี่ยนชื่อบันเดิลในแอพด้วยใช่ไหม ฉันได้ลองเปลี่ยนเฉพาะเซิร์ฟเวอร์และผลลัพธ์คือ: 18 ก.ย. 09:59:20 XXX-iPhone filecoordinationd [123] <คำเตือน>: การแซนด์บ็อกซ์ปฏิเสธการสมัครสมาชิกเพื่อดำเนินการในหมวด com.mo2o.XXX (รหัสกลุ่ม com.apple.iaptransportd , 037BE63A-8737-4A4B-9C9D-B8FAF8DC0D40) 18 ก.ย. 09:59:20 XXX-iPhone filecoordinationd [123] <คำเตือน>: การแซนด์บ็อกซ์ปฏิเสธการสมัครสมาชิกเพื่อความคืบหน้าในหมวด com.mo2o.XXX (บันเดิล id (null), 0B9D3B2A- 2B5D-4882-8771-61784326E507) และแอปไม่ติดตั้ง
Eva Madrazo

อืมฉันไม่ถูกต้องมันบันทึกคำเตือน แต่ยังติดตั้งแอพด้วย
Eva Madrazo

วิธีนี้ใช้งานได้ดีอย่างไรก็ตามมีข้อเสียเปรียบเล็กน้อย ระหว่างการติดตั้งอุปกรณ์จะไม่ทราบว่าคุณกำลังอัปเดตแอปใดดังนั้นคุณจะเห็นไอคอนแอปที่สองระหว่างการติดตั้ง หลังจากติดตั้งสิ่งนี้จะได้รับการแก้ไขโดยอัตโนมัติ
Ivo Jansch

4
ที่น่าสังเกตว่าในบทความ bulldozer.io ระบุว่า "ดูเหมือนว่าอุปกรณ์ที่ติดตั้งใบรับรองนักพัฒนาซอฟต์แวร์จะไม่ได้รับผลกระทบ" ไม่ชัดเจนว่า "ใบรับรองนักพัฒนาซอฟต์แวร์" หมายถึงอะไร (ฉันเดาว่าโปรไฟล์การจัดเตรียมการพัฒนาที่ "ครอบคลุม" แอปที่เป็นปัญหา) แต่สิ่งนี้สามารถอธิบายถึงปัญหาในการทำให้เกิดปัญหาในอุปกรณ์ต่างๆ
astletron

11

โซลูชันที่ยอมรับใช้ไม่ได้บน iOS9 อีกต่อไป

ความเข้าใจของฉันคือ Apple ได้ปิดช่องโหว่ด้านความปลอดภัยที่ร้ายแรงของ iOS โดยป้องกันไม่ให้ adhoc binaries แทนที่แอพหุ้นหรือแอพที่ดาวน์โหลดจาก App Store ดูบทความนี้สำหรับความเป็นมา (CVE-2015-3722 / 3725 และ CVE-2015-3725):

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

จากผลกระทบด้านความปลอดภัยฉันไม่คาดหวังว่าพฤติกรรมนี้จะเปลี่ยนแปลงในเวอร์ชัน IOS ในอนาคต ทางเลือกอื่นดูเหมือนจะเป็น:

  • ลบเวอร์ชัน App Store ก่อนติดตั้ง adhoc
  • แจกจ่าย adhoc เป็นแอป 'ใหม่' โดยการเปลี่ยนรหัสกลุ่มทั้งในแอปและเครื่องมือการแจกจ่าย
  • ใช้ TestFlight

ดูเหมือนว่าคุณจะพูดถูก ใช้งานได้ดีกับการติดตั้งใหม่หรือการอัปเดตแอปเวอร์ชัน adhoc ก่อนหน้านี้ แต่จะใช้งานไม่ได้เมื่อติดตั้งเวอร์ชันที่ติดตั้งจาก App Store
charles

นี่เป็นอีกหนึ่งคำแนะนำว่าทำไม Apple ถึงทำการเปลี่ยนแปลง: loopinsight.com/2015/10/05/…
Frans

ในขณะที่ฉันเข้าใจถึงความจำเป็นในการปิดการรักษาความปลอดภัยสิ่งนี้ทำให้เราอยู่ในสถานการณ์ที่น่าสนใจซึ่งเราไม่สามารถทดสอบการอัปเกรดจากเวอร์ชันหนึ่งไปยังอีกเวอร์ชันหนึ่งในเวอร์ชันที่ปรับใช้โดยไม่ต้องไปที่ TestFlight ดูเหมือนว่าแอปที่ลงนามโดยโปรไฟล์เฉพาะกิจและใบรับรองสำหรับนักพัฒนารายเดียวกันควรจะอัปเกรดได้
lidsinker

@charles, "ใช้งานได้ดีกับการติดตั้งใหม่หรืออัปเดตแอปเวอร์ชัน adhoc ก่อนหน้า" คุณได้ทดสอบหรือไม่ เนื่องจากเราพบปัญหา adhock update adhock นี้ใน IOS9 .....
flypig

@flypig ฉันได้ลองใช้กับ iOS 9 ในเวลานั้นและใช้งานได้จริง ยังไม่ได้ลองเลยขออภัย
charles

9

สิ่งที่กิลพูดดูเหมือนจะถูกต้อง แต่โดยเฉพาะอย่างยิ่งฉันพบว่าฉันต้องเพิ่มสตริงเวอร์ชันบันเดิลในเซิร์ฟเวอร์ด้วย

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

อย่างน้อยก็ช่วยให้คุณติดตั้ง OTA ได้สำเร็จ

(ขออภัย ... จะเพิ่มในความคิดเห็น แต่ฉันเป็น n00b มากเกินไป)


9

ลองดูคำตอบนี้และคำตอบนี้

คุณสามารถแก้ไขปัญหานี้ได้โดยไม่ต้องแฮ็กใด ๆ สำหรับ iOS8 คุณต้องรวมไว้ในassetsคีย์ของ.plistไฟล์manifest display-imageและfull-size-imageคีย์ พร้อมใช้งานใน Xcode 5 เมื่อบันทึกไฟล์เก็บถาวรสำหรับองค์กรและการปรับใช้งานเพิ่มเติม แต่ไม่จำเป็น

ผมได้สร้างส่วนสำคัญบน GitHub กับแม่แบบสำหรับการติดตั้ง manifet.plistไฟล์


7
ฉันประสบปัญหานี้จริง ๆ โดยมีคีย์ทั้งสองรวมอยู่ด้วย
Sean Danzeiser

ฉันเปลี่ยนตัวระบุบันเดิลและใช้งานได้ ไม่ตื่นเต้นกับมัน
Sean Danzeiser

เยี่ยมมาก! ฉันย้ายทุกอย่างไปที่โฟลเดอร์ย่อยและปรับเฉพาะ MD5 ของไฟล์ ipa
Felipe FMMobile

3

นี่คือข้อบกพร่องที่พบครั้งแรกใน iOS8 Beta5 และยังไม่ได้รับการแก้ไขโดย Apple ใน GM seed และเวอร์ชัน iOS8.0 อย่างเป็นทางการ สามารถดูการอภิปรายเพิ่มเติมได้ที่นี่

วิธีแก้ปัญหาปัจจุบันที่กำลังทดสอบโดยตัวฉันเอง:

  • หากคุณไม่สนใจเนื้อหาในอุปกรณ์ของคุณ: ทำการกู้คืนใหม่ทั้งหมดในโหมด DFU ของอุปกรณ์
  • หากคุณต้องการสิ่งของคืน
    1. สำรองข้อมูลอุปกรณ์ iOS ของคุณใน iTunes ก่อนกู้คืน (ไม่มีแอป Ad-Hoc / องค์กร)
    2. หลังจากกู้คืนอุปกรณ์ของคุณอย่างสมบูรณ์แล้วให้ติดตั้งแอป Ad-Hoc / องค์กรของคุณ
    3. กู้คืนข้อมูลสำรองของคุณจาก iTunes
    4. ตอนนี้คุณมีอิสระที่จะลบแอป Ad-Hoc / องค์กรและติดตั้งใหม่

1
ยังคงไม่ได้รับการแก้ไขใน 8.1 เช่นกัน
Kevin

2
ยังคงไม่ได้รับการแก้ไขใน 8.2 ....... บางทีแค่เรา 15 คนในโลกที่สร้างแอพสำหรับองค์กร
Karl Heinz Brehme Arredondo

3

แก้ไขปัญหาได้โดยการเปลี่ยน Bundle Identifier ใน plist

โดยปกติหลังจากแตะที่ลิงค์ itms จะแสดงเดสก์ท็อปซึ่งแสดงการติดตั้งไอคอน อย่างไรก็ตามสำหรับอุปกรณ์ iOS 8.0 ของฉันหลังจากแตะลิงก์ itms แล้วอุปกรณ์จะไม่เปลี่ยนไปที่หน้าการติดตั้ง แต่การติดตั้งใช้งานได้แล้ว


2

นี่เป็นเรื่องที่รุนแรง แต่ถ้าคุณไม่สามารถเปลี่ยนรหัสชุดของคุณซึ่งฉันทำไม่ได้การกู้คืน iPhone ของคุณผ่าน iTunes เป็น iOS 8 ล่าสุดและการกู้คืนจากข้อมูลสำรองจะช่วยแก้ปัญหาได้


คุณไม่ควรกู้คืน iPhone - เพียงไม่กี่ขั้นตอนupdraft.beekeeper.io/post/2046721
Sergey Kopanev

1

ปัญหาเดียวกันนี้มีอยู่ใน iOS 10 beta 1

31 ธ.ค. 19:01:32 iphone-6s itunesstored [98]: LoadExternalDownloadManifestOperation: ละเว้นการดาวน์โหลด manifest มี bundleID: com อยู่แล้ว ***************. ios พร้อมเฟส: SSDDownloadPhaseWaiting

สิ่งหนึ่งที่ฉันไม่เข้าใจที่นี่คือวันที่ 31 ธันวาคมในบันทึกอุปกรณ์ XCode อย่างไรก็ตามอุปกรณ์มีการกำหนดวันที่และเวลาที่ถูกต้อง

อัปเดต: Guys จาก HockeyApp แจ้ง Apple เกี่ยวกับปัญหานี้ในช่วง WWDC และการแก้ไขควรมาในเมล็ดพันธุ์ถัดไป


1
ปัญหาเดียวกันบน iOS 10
Crossle Song

0

หากคุณสร้างแอป iOS ด้วยบิลด์สคริปต์และก่อนหน้านี้คุณใช้ PackageApplication ด้วยแฟล็ก --sign นั่นอาจทำให้เกิดปัญหา แฟล็ก --sign ใช้งานไม่ได้อีกต่อไปเมื่อสร้างใน 10.10 และการลบออกทำให้แอพ iOS ทั้งหมดของเราติดตั้งอีกครั้ง

ดู: https://devforums.apple.com/thread/251624?tstart=0


นั่นคือการแก้ไขปัญหาอื่นและเกี่ยวข้องกับการสร้างและไม่ได้ติดตั้งตามที่ OP กำลังถาม
wottle

ฉันไม่เห็นด้วย. มีการเปลี่ยนแปลงพฤติกรรมที่เกิดขึ้นใน b5 ซึ่งทำให้ IPA ที่ลงชื่อไม่สามารถโหลดได้ สมมติว่า OP ไม่มีข้อผิดพลาดในไฟล์ Manifest ดังนั้น IPA ที่ลงนามจะได้รับการรับรองว่าไม่สามารถติดตั้งได้ด้วยข้อผิดพลาดที่ระบุ เนื่องจากพวกเขาไม่ได้พูดถึงวิธีการสร้าง IPA ของพวกเขาฉันจึงไม่สามารถบอกได้ว่าทำไมจึงล้มเหลว ในทางกลับกันการลบซิกออกจาก IPA ของเราทำให้พวกเขาติดตั้งอีกครั้ง
James Moore

นั่นอาจเป็นความจริง แต่หากคุณเผลอมองข้อผิดพลาดที่ระบุไว้ในคำถามเดิม: "ละเว้นการดาวน์โหลดรายการมี 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.