ไม่สามารถสร้างการเก็บถาวร iOS App ใน xcode


175

ฉันมีปัญหาในการสร้างที่เก็บถาวร iOS App จากแอปพลิเคชัน แอพพลิเคชั่นรวบรวมได้ดีและยังสามารถใช้งานได้ในเครื่องจำลอง ตอนนี้ฉันต้องการทำการทดสอบแบบเฉพาะกิจและไม่สามารถสร้าง iOS App Archive ได้ เมื่อฉันคลิกที่ผลิตภัณฑ์ -> เก็บถาวรมันจะสร้างไฟล์เก็บถาวร xcode ทั่วไป ทุกคนสามารถช่วยฉันได้ ฉันควรพูดถึงว่าฉันได้สร้าง iOS App Archive ของแอปพลิเคชันนี้แล้ว มันเพิ่งหยุดสร้าง iOS Archive ด้วยเหตุผลบางประการ ขอบคุณมาก.


7
แม้ว่าจะเป็นคำถามที่เกี่ยวกับการสร้างที่เก็บจาก Xcode xcodebuildผมต้องเผชิญกับปัญหานี้โดยใช้ ทางออกคือการระบุปลายทาง:xcodebuild -destination generic/platform=iOS
db42

ขอบคุณ @ db42 นั่นแหละที่ทำได้!
fabb

1
คุณสามารถอธิบายอย่างละเอียดเกี่ยวกับความละเอียดที่คุณทำการเปลี่ยนแปลงที่?
jlo-gmail

หากคุณมีไฟล์. xcodeproj ใด ๆ ในโครงการ> เป้าหมาย> สร้างเฟส> การพึ่งพาเป้าหมายให้ลบไฟล์ออกจากที่นั่นแล้วสร้าง ipa ของคุณ มันใช้งานได้สำหรับฉัน ไชโย
Kalpesh Panchasara

คำตอบ:


316

ตรวจสอบการตั้งค่า Build:

  1. ข้ามการติดตั้งนั้นไม่ใช่สำหรับเป้าหมายหลักของโครงการ
  2. ข้ามการติดตั้งคือใช่สำหรับเป้าหมาย (โครงการย่อย) เป้าหมาย
  3. ใน Build Phases สำหรับโครงการย่อย Copy Headers จำเป็นต้องอยู่ใน Project ไม่ใช่ Public (ไม่ใช้หากสร้างห้องสมุดแบบคงที่)
  4. ไดเรกทอรีการติดตั้งภายใต้การปรับใช้นั้นถูกต้อง (ตัวอย่างเช่น / Applications)

2
นี่คือคำตอบที่สมบูรณ์ที่สุดซึ่งรวมเอาคำตอบบางส่วนข้างต้น ขอบคุณ Alex L! ฉันคิดว่านี่ควรเป็นคำตอบที่เลือกสำหรับคำถามนี้
Brandon

3
ในฐานะที่เป็นคำถามเมตาคุณคิดยังไง? ดูเหมือนว่าฉันจะใช้ Stackoverflow สำหรับคำถามที่เกี่ยวข้องกับงานสร้างทั้งหมดของฉัน
philipkd

4
สวย! ฉันคิดว่านี่เป็นปัญหาของโปรไฟล์การจัดสรร แต่มันใช้งานได้ดีมาก โครงการย่อยคือสาขา mapbox ของ route-me / MapView ส่วนหัวของการคัดลอกเป็นกุญแจสำคัญเนื่องจากโพสต์ด้านล่างนี้สามารถพบได้ในการสร้างเฟสของโครงการย่อย
rcarver

7
# 3 แก้ไขปัญหาของฉัน แต่ฉันต้องย้ายไฟล์จากส่วนตัวไปยังโปรเจ็กต์ด้วยก่อนที่ไฟล์เก็บถาวรของฉันจะถูกสร้างเป็น iOS App Archive
โทมัสฮัจคัก

4
เทคนิค, ปัญหาไม่ได้อยู่ที่ส่วนหัวเป็นสาธารณะภายใต้การคัดลอกส่วนหัวก็ว่าสร้างการตั้งค่า> /usr/local/includeเส้นทางสาธารณะส่วนหัวโฟลเดอร์มีการตั้งค่าเริ่มต้นของ หากคุณกำลังสร้างห้องสมุดแบบคงที่ส่วนหัวจะต้องเป็นสาธารณะดังนั้นจึงถูกต้องมากขึ้นถ้า # 3 คือการเปลี่ยนเส้นทางโฟลเดอร์ส่วนหัวสาธารณะเป็นสิ่งที่เหมาะสมinclude/$(TARGET_NAME)กว่า @CopperCash บันทึกสิ่งนี้ในคำตอบด้านล่าง
bcattle

75

สิ่งนี้สามารถเกิดขึ้นได้หากคุณเพิ่มเฟรมเวิร์ก / ไลบรารี ... คุณต้องแก้ไข Target-> Build Settings ของไลบรารีนั้นและตั้งค่า 'ข้ามการติดตั้ง' เป็น 'ใช่' เมื่อคุณเก็บถาวรใหม่ XCode ควรเริ่มผลิต 'iOS App Archive' อีกครั้งแทนที่จะเป็น 'ไฟล์เก็บถาวร xcode ทั่วไป'


แต่ "ข้ามการติดตั้ง" ไม่พร้อมใช้งานใน xcode 4.4.1 อย่างน้อยฉันไม่สามารถค้นหาการข้ามทั้งหมดใน xcode ของฉันได้
Mashhadi

2
เช่นเดียวกับการรวมกลุ่มเพิ่ม
Mark Horgan

62

นอกจากนี้ในการข้ามการติดตั้งจะใช่และในกรณีที่คุณเปิด lib / โครงการ framwork อื่นภายในโครงการของแอปคุณจะต้องย้ายหัว (ถ้ามี) จากประชาชนเพื่อโครงการในรูปร่างเฟส / คัดลอกส่วนหัว

สร้างเฟสของเป้าหมาย lib / framwork ของคุณ


3
ฉันเพิ่งจะหมดหวังเพราะข้ามการติดตั้งเป็นใช่ไม่ได้ผลสำหรับฉัน การคัดลอกส่วนหัวไปที่ Project ทำเคล็ดลับสำหรับฉัน ขอบคุณ!
ksm

10
เพื่อช่วยคุณในการแปลโครงการย่อย Xcode ที่ผิดพลาดคุณสามารถแสดงเอกสารทั่วไป Xcode Archive ใน Finder และสำรวจแพ็คเกจ ภายใน. xcarchive คุณจะเห็นส่วนหัวที่ผิดพลาดในผลิตภัณฑ์ / usr / local / include
MonsieurDart

1
เหตุใดจึงต้องใส่ไฟล์บางไฟล์เพื่อคัดลอกส่วนหัวไปยังที่สาธารณะ
mskw

mskw ฉันเดาว่าสิ่งประดิษฐ์ที่สร้างขึ้นมีส่วนหัวสาธารณะหนึ่งหรือมากกว่านั้นไม่สามารถกลายเป็นไฟล์เก็บถาวร "อุปกรณ์ที่ปรับใช้งานได้" (iOS App Archive จากที่ที่คุณสร้าง IPA) มันยังคงเป็นโครงการจัดเก็บ Xcode ขอบคุณ
ebtokyo

1
แช่งขอบคุณ ths ทำงานสำหรับฉัน .. ฉันสงสัยว่านรกคุณจัดการเพื่อหาชนิดของการแก้ปัญหาเหล่านี้ :)
ฟาบิโอ Napodano

45

ฉันทำสิ่งต่อไปนี้เพื่อให้ใช้ได้ผลกับฉัน:

  1. ฉันมีห้องสมุดแบบคงที่สาม20ฉันใช้cocoapodsเพื่อรวมไฟล์ภายในโครงการหลัก
  2. ติดตามการติดตั้งข้ามสำหรับโครงการย่อยอื่น ๆ / ไลบรารีแบบคงที่และเปลี่ยนส่วนหัวการคัดลอกจากสาธารณะเป็นโครงการตามที่ระบุข้างต้น
  3. ที่สำคัญที่สุดคือ:ในแต่ละห้องสมุดใช้โครงการของคุณไปที่การสร้างขั้นตอน -> คัดลอกแฟ้มและทำให้มั่นใจได้ว่าปลายทางจะมีการเปลี่ยนแปลงจากการAbsolute path products directoryหมายเหตุ: ดูคำแนะนำด้านล่างเพื่อ จำกัด การค้นหาของคุณเพื่อค้นหาไลบรารีที่ทำให้เกิดข้อผิดพลาดนี้

และนั่นคือมัน!

คำใบ้:เพื่อให้ได้แนวคิดเกี่ยวกับไฟล์ที่ละเมิดที่ทำให้ไฟล์เก็บถาวรของคุณสร้างไฟล์เก็บถาวรไม่ใช่ IP ทำสิ่งนี้

  1. เลือกไฟล์เก็บถาวรและคลิกปุ่มแจกจ่าย
  2. เลือกตัวเลือก 'บันทึกผลิตภัณฑ์ที่สร้างขึ้น'
  3. กดถัดไปและบันทึก
  4. เรียกดูไดเรกทอรีที่สร้างขึ้นใน Finder
  5. ไดเรกทอรีย่อย 'ไลบรารี' จะระบุไลบรารีที่คุณต้องการตั้งค่าข้ามการติดตั้งเป็นใช่
  6. ในบางกรณีusr/local/includeจะระบุไฟล์ส่วนหัวของผู้ร้ายที่คุณต้องการย้ายจากสาธารณะเป็นโปรเจ็กต์หรือไฟล์ที่คุณต้องเปลี่ยนจากพา ธ สัมบูรณ์เป็นไดเร็กทอรีผลิตภัณฑ์ (หรือแม้แต่ไฟล์ที่คุณลืมตั้งข้ามการติดตั้งเป็นแฟล็กใช่) แต่ไดเรกทอรีนั้น (เช่น usr / local / include) จะแตกต่างกันไปขึ้นอยู่กับโครงสร้างไดเรกทอรีย่อยของห้องสมุด ในหลายกรณี .. คุณจะเห็นทุกไฟล์ที่ระบุไว้ภายใต้การคัดลอกแฟ้มในขั้นตอนที่ 3 ข้างต้นไว้ที่นี่ หากคุณพบพวกเขาที่นี่คุณมีคำตอบที่ชัดเจนสำหรับสาเหตุของปัญหาของคุณ

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

ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้นฉันบอกได้เลยว่ามันมีบางอย่างที่เกี่ยวข้องกับcryptoและssl libraries .. ค้นหาพวกเขา:

ป้อนคำอธิบายรูปภาพที่นี่

ทำให้ฉันรู้ว่าฉันลืมตั้งข้ามการติดตั้งเป็นใช่


คำใบ้ยอดเยี่ยม! ฉันเปลี่ยนส่วนหัวของเฟรมเป็น 'ส่วนตัว'; ./usr/local/includeด้วยเหตุผลบางอย่างนี้ที่ทำให้พวกเขาได้รับการคัดลอกออกไป
Ben Mosher

1
เป็นความยินดีเสมอที่ได้ช่วยเหลือ @BenMosher :)
abbood

1
คำตอบที่ดีที่สุดที่ฉันได้รับ ขอบคุณสำหรับเคล็ดลับช่วยชีวิตฉันไว้ !
neywen

แน่นอนคำตอบที่ฉันกำลังมองหา - ผลิตภัณฑ์สร้างประหยัดชี้ให้ฉันเห็นถึงสาเหตุที่แท้จริงของปัญหา
Dennis L

คำตอบที่กว้างขวางของ "Save Built Products" มีประโยชน์มาก - @abbood ขอบคุณมากสำหรับคุณ หวังว่าฉันสามารถคืนความโปรดปรานบางวัน
Scott Corscadden

21

หากคุณส่งออกการเก็บถาวรให้เปิดและดู/urs/local/includeในผลิตภัณฑ์ลองคำแนะนำนี้ :

ในแต่ละฝักภายใต้Packaging, Private Headers Folder Pathและมีการตั้งค่าPublic Headers Folder Path /usr/local/includeถ้าฉันล้างพวกเขาแล้วฉันจะได้รับการเก็บถาวรที่ถูกต้อง

ป้อนคำอธิบายรูปภาพที่นี่

ทำงานให้ฉันหลังจากการอัพเกรดของฉันตอบสนองแอพพลิเคพื้นเมือง0.11.0, Xcode 7และ 0.39.0.beta.4CocoaPods


1
ฉันสามารถยืนยันได้ว่างานนี้! ตราบใดที่คุณจำได้ว่าจะลบเส้นทางส่วนบุคคลและสาธารณะส่วนหัว นอกจากนี้ยังค่อนข้างง่ายหากคุณเลือกพ็อดทั้งหมดค้นหาเส้นทางส่วนหัวแล้วล้างออกทั้งหมดในเวลาเดียวกัน
โรคเอดส์

1
ฉันยังสามารถยืนยันได้ว่างานนี้ประหยัดเวลาได้มากเกิดขึ้นเมื่อฉันอัปเกรดพ็อดเป็นเวอร์ชั่น 0.39.0.beta
ไบรอันพี

น่ากลัว ทำงานให้ฉัน :) ฉันดิ้นรนตั้งแต่ 1 วันครึ่ง ขอบคุณ, ขอบคุณ, ขอบคุณ :) :) :)
Srikanth

ฉันคิดว่านี่เป็นสิ่งที่เหมาะกับฉัน Xcode 7.0 iOS9 ฉันไม่มี cocoapods แต่สิ่งนี้แก้ไขปัญหาได้ไม่น้อยเลย Thanks man
Geoff H

นอกจากนี้ฉันยังต้องตั้งค่า SKIP_INSTALL เป็น Yes ในส่วนขยาย WatchKit และแอพเพื่อให้ใช้งานได้
Snowman

12

หากคุณกำลังใช้ CocoaPods เช่นเดียวกับ WatchKit หรือส่วนขยายวันนี้มีปัญหาเปิดอยู่บน repo CocoaPods อธิบายว่าปัญหาของคุณอาจเป็นอย่างไร

วิธีการแก้ปัญหาสำหรับฉันคือการที่จะเอาCopy Pod Resourcesเฟสจาก WatchKit Build Phasesส่งเสริมและขยายวันนี้ภายใต้เป้าหมาย โครงการรวบรวมและจัดเก็บตามที่คาดไว้เมื่อฉันทำสิ่งนี้

หวังว่านี่จะช่วยใครซักคนนี่ทำให้ฉันนิ่งงันทั้งวัน!


1
@ Lewis42 สามารถเพิ่มรางวัลได้เสมอ)
rebello95

ไม่เห็นตัวเลือกที่จะให้โหวตขึ้นบนความคิดเห็นของคุณจะต้องทำ;)
ลูอิส

@ Lewis42 คุณจะต้องเพิ่มเงินรางวัลให้กับคำถามและได้รับรางวัลไปยังฮ่า ๆ คำตอบ
rebello95

@ rebello95 คุณร็อคเพื่อน!
Matt

10

หากคำตอบข้างต้นไม่ได้ผลปัญหาของคุณอาจเกิดcocoaPodsจาก การอัปเดตล่าสุดทำให้0.38.1สิ่งต่าง ๆ ยุ่งเหยิงสำหรับฉัน แต่จากนั้นฉันปรับลดรุ่นเป็น0.37.1และสิ่งต่าง ๆ กลับสู่ปกติ การใช้Xcode 6.3.1

แก้ไขในภายหลัง: การอัปเดตเป็น0.38.2จะแก้ไขปัญหานี้ด้วย ข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่ทำให้เกิดปัญหานี้ได้ที่นี่: Cocoapods 0.38.1 ไม่สามารถสร้างที่เก็บถาวรที่ถูกต้อง


3
ฉันอัปเดตเป็น0.38.2และยังมีปัญหาอยู่ คุณใช้ Xcode 7 อยู่หรือเปล่า
พนักงานยกกระเป๋า Hoskins

@PorterHoskins ผมเพิ่งเขียนถึงปัญหานี้เป็นXcode 7 จะไม่สร้างที่ถูกต้องเอกสารเก่าจากโครงการเดียวกันที่สร้างที่เก็บที่ถูกต้องใน Xcode 6 ฉันใช้ Cocoa Pods 0.38.2 เมื่อใช้ Xcode 6 ทุกอย่างดี แต่ด้วย Xcode 7 การสร้างที่เก็บถาวรไม่ถูกต้อง คุณได้ตรวจสอบโครงสร้างโฟลเดอร์ของคุณเพื่อดูว่าคุณมีไฟล์. appex นอกไฟล์. app ในแพ็คเกจหรือไม่?
หมีขั้วโลก

/Library/Frameworksฉันมีกรอบที่ ฉันคิดว่าอาจมีบางอย่างที่เกี่ยวข้องกับฝักโกโก้ของ Google ที่ไม่ได้ถูกสร้างขึ้นเป็นเฟรมเวิร์กแบบไดนามิก มันฟังดูคล้ายกับgithub.com/CocoaPods/CocoaPods/issues/3889
Porter Hoskins

3
ฉันย้ายส่วนหัวของพ็อดทุกอันใน Build Phases / Headers ไปที่ส่วนโครงการจากสาธารณะและใช้งานได้ ดังนั้นปัญหาอาจอยู่ใน CocoaPods
เดนิส Kutlubaev

7

แม้ว่าฉันจะใช้ Xcode5 และสิ่งที่เรียงลำดับสำหรับฉันคือการแก้ไข Build Scheme - ลองทำตามคำแนะนำทั้งหมดข้างต้นที่เกี่ยวข้องไม่ได้ช่วยในกรณีของฉัน

ฉันมีสองเป้าหมายพูดว่า "แอพ" และ "แอปฟรี" ปัญหาของฉันกับการเก็บถาวรทั่วไปเกิดขึ้นเมื่อฉันพยายามที่จะเก็บถาวรเวอร์ชันฟรีซึ่งฉันเพิ่มหลังจากแอป 'ปกติ' รุ่น ในกรณีของฉันเมื่อฉันเลือก Scheme ในแถบเครื่องมือและเลือก Edit Scheme ... ฉันเห็นว่าส่วน Build มีสองเป้าหมายคือ App และ App ฟรี

ฉันยกเลิกการเลือกคอลัมน์ทั้งหมดสำหรับแอพโดยปล่อยให้มีการตรวจสอบคอลัมน์ของแอปฟรีเท่านั้นและคลิกตกลง ครั้งต่อไปที่ฉันเลือกผลิตภัณฑ์> เก็บถาวรฉันได้รับแอพฟรีแทนที่จะเป็นคลังข้อมูลทั่วไป :)


7

หากคุณมีเพียงโครงการเดียวอาจเป็นวิธีแก้ปัญหานี้ได้ ปัญหานี้เกิดขึ้นเมื่อฉันทำซ้ำเป้าหมาย เป็นผลให้ฉันมีสองเป้าหมายที่สร้างแบบขนาน นี่เป็นสาเหตุของปัญหา สร้างคลังเก็บ IOS ทั่วไปแล้ว

หากต้องการปิดตัวสร้างแบบขนานให้ไปที่

  • จัดการแบบแผน
  • แก้ไขแบบแผน
  • สร้าง,
  • ลบเป้าหมายอื่น

5

ฉันมีปัญหานี้หลังจากอัปเดตเป็น iOS 9 และ Xcode 7 โซลูชันของ Josh H ใช้งานได้สำหรับฉัน:

ในแต่ละพ็อดภายใต้บรรจุภัณฑ์พา ธ โฟลเดอร์ส่วนหัวและพา ธ โฟลเดอร์ส่วนหัวสาธารณะถูกตั้งค่าเป็น / usr / local / include ถ้าฉันล้างพวกเขาฉันจะได้รับเอกสารที่ถูกต้อง

ฉันยังสร้างสคริปต์การติดตั้งโพสต์ให้ Podfile ทำสิ่งนี้โดยอัตโนมัติ!

    post_install do |installer_representation|
        installer_representation.pods_project.targets.each do |target|
            target.build_configurations.each do |config|
                config.build_settings['PUBLIC_HEADERS_FOLDER_PATH'] = [""];
                config.build_settings['PRIVATE_HEADERS_FOLDER_PATH'] = [""];
            end
        end
    end

เพียงเพิ่มลงในด้านล่างของ Podfile ของคุณและเรียกใช้ pod install


5

ฉันมีหลายโครงการในพื้นที่ทำงานของฉัน (GTL, Pods และโครงการหลักของฉัน) และนี่คือสิ่งที่ได้ผลสำหรับฉัน:

เลือกโครงการจะมี 2 ประเภทมีมีของโครงการและมีเป็นเป้าหมาย

สำหรับโครงการที่ไม่ใช่โครงการหลักของคุณGTLหรือPODS:

โครงงาน:

Skip Install = NO
Installation Directory = /Applications
// For pods
Private Headers Folder Path = ""
Public Headers Folder Path = ""

เป้าหมาย:

Skip Install = YES
Installation Directory = /Applications
// For pods
Private Headers Folder Path = ""
Public Headers Folder Path = ""

สำหรับโครงการหลัก (ซึ่งมักจะมีชื่อเดียวกับชื่อผลิตภัณฑ์ของคุณ):

โครงงาน:

Skip Install = NO
Installation Directory = /Applications

เป้าหมาย:

Skip Install = NO
Installation Directory = /Applications

ตรวจสอบเป้าหมายการปรับใช้ ios ในแต่ละโครงการและเป้าหมายเพื่อให้แน่ใจว่าเหมือนกันทั้งหมด


ขอบคุณสำหรับการอธิบายทีละขั้นตอน นั่นช่วยฉันแก้ปัญหาได้จริงๆ
Arslan

4

ฉันมีปัญหานี้ ในกรณีของฉันมันเกิดจากการทำให้เป้าหมายแอป Mac เป็นที่พึ่งพาของแอป iOS

เหตุผลที่มีการตั้งค่าเช่นนี้คือแอป Mac เป็นเครื่องมือที่ใช้ในการสร้างข้อมูลบางส่วนสำหรับแอป iOS ซึ่งรวมอยู่ในชุดข้อมูล

ฉันต้องลบการพึ่งพานั้นและสร้างเครื่องมือแยกต่างหากก่อนทำการสร้างแอป iOS เอง


ไลบรารี่เช่น lippd มาพร้อมกับทั้งเป้าหมาย ios และ osx ฉันลืมลบเป้าหมาย osx ... doh
james_alvarez

4

ในสถานการณ์ของฉันฉันได้รับ "Generic Archive" ที่ผิดพลาดหลังจากที่ฉันเริ่มรวมรหัส Swift ในโครงการ Objective-C ของฉัน หลังจากการแก้ไขปัญหาและตรวจสอบไฟล์เก็บถาวรที่ Xcode กำลังคายออกมามากมายฉันสังเกตว่าSwiftSupportโฟลเดอร์ (ที่มี dylibs ที่จำเป็นสำหรับ Swift runtime) อยู่ในที่ที่แตกต่างกันในที่เก็บถาวรของฉันมากกว่าจากที่เก็บถาวรของ Swift .

ฉันพบการInstallation Directoryตั้งค่าการสร้างและสังเกตว่ามันถูกตั้งค่าเป็นเส้นทางที่กำหนดเองในโครงการของฉัน ฉันเพิ่งลบมัน (ตั้งค่าเป็นค่าทั่วไปของ/Applications) และ Build -> Archive ถัดไปฉันทำงานได้ตามที่คาดหวังและให้ iOS App Archive แก่ฉัน

TL; DR:ตรวจสอบให้แน่ใจว่าInstallation Directoryการตั้งค่าการสร้างของคุณถูกตั้งค่าเป็นค่าเริ่มต้นของ/Applicationsเมื่อรวมถึงรหัส Swift ในแอปของคุณโดยเฉพาะอย่างยิ่งถ้าคุณเริ่มต้นด้วยไฟล์โครงการเก่าที่อาจมีการตั้งค่าการสร้างแบบดั้งเดิม


3

ออกจากที่นี่เพื่อช่วยชีวิตผู้อื่นจากการเดินทางเดียวกัน

ฉันพบว่าฉันต้องการลบขั้นตอนการสร้าง Copy Pod Resources เดียวกันจากเป้าหมายคลังแบบคงที่ในพื้นที่ทำงานของฉันด้วย


หลังจากลองสิ่งต่าง ๆ มากมายข้างต้นมันใช้งานได้สำหรับฉัน (Xcode 7)
humphriesj

2

นอกจากคำตอบของ Alex L

จุดที่ 3 เปลี่ยน 'สร้างการตั้งค่า' -> 'เส้นทางโฟลเดอร์ส่วนหัวสาธารณะ' เป็น 'รวม / xxx' ได้เช่นกัน


สิ่งนี้ถูกต้องมากกว่า # 3 ด้านบน ส่วนหัวของคุณต้องเป็นแบบสาธารณะหากคุณกำลังสร้างห้องสมุดแบบคงที่
bcattle

2

หากไม่มีสิ่งใดที่ได้กล่าวมาช่วยคุณได้ ... หลังจากเวลาผ่านไป .......

ฉันลบค่าใน Info.plist สำหรับ Bundle Versionเพราะฉันมีความสุขมากที่มีเพียง Bundle Version Short 1.0 ไม่ดี อย่าทำอย่างนี้

* หมายเหตุฉันทำสิ่งนี้จริง ๆ โดยการแก้ไขใน UI ทางด้านขวาโดยที่ไม่ทราบว่ามันจะใส่คีย์เปล่าในไฟล์ Info.plist ฉันคิดว่านั่นทำให้ไม่ถูกต้อง ชุดของฉันปรากฏเป็นรายการอื่น ๆ ในขณะที่เก็บถาวรและไม่มีไอคอนและฉันไม่สามารถอัปโหลดไปที่ใดก็ได้

สิ่งนี้จะลดลงเป็นค่าที่ไม่ถูกต้องใน Info.plist หากไม่ใช่ไฟล์เก็บถาวรที่ถูกต้องให้ลองทำการคลายไฟล์เอกสารเก่าและวางใน / เขียนทับเอกสารปัจจุบันของคุณและดูว่าจะแก้ไขได้หรือไม่เมื่อสร้างไฟล์เก็บถาวรใหม่


1
  1. ไปที่การตั้งค่าการสร้างและเพิ่ม

    yourAppName / Resources / dist.plistไปที่การให้สิทธิ์การเซ็นชื่อโค้ด

  2. กดcmd + Bพร้อมอุปกรณ์ iOSหรืออุปกรณ์จริงที่เลือกเป็น Build Target

  3. เมื่อเสร็จแล้ว -> เลื่อนไปที่โฟลเดอร์ "ผลิตภัณฑ์" และคลิกขวาที่ yourAppName.app

  4. เลือก "แสดงใน Finder"

  5. สร้างโฟลเดอร์ที่มี Name Payload (ตัวพิมพ์ใหญ่ "P" )

  6. คัดลอก yourAppName ลงในโฟลเดอร์ Payload ของคุณ

  7. สร้าง zipจากโฟลเดอร์ Payload ของคุณ

  8. เปลี่ยนชื่อ zip เป็นyourAppName.ipa

DONE


1

หลังจากลองทุกอย่าง:

  • ทำความสะอาดเก็บถาวร
  • ลบ DerivedData, เก็บถาวร
  • รีสตาร์ท Xcode (ฉันใช้ XCode7), เก็บถาวร
  • การรวมกันของด้านบน ...

ฉันสังเกตเห็นว่าพาร์ติชันสำหรับเริ่มระบบของฉัน 'มีพื้นที่ว่างบนดิสก์เหลือน้อย' ... ประมาณ 1GB ฉันรีบูทจากนั้นได้รับฟรีประมาณ 18GB

จากนั้นเปิด Xcode และโครงการดำเนินการเก็บถาวร ... และน่าแปลกใจ (หลังจากหนึ่งชั่วโมงของการพยายามสร้างที่เก็บถาวร) ในที่สุดฉันก็ได้รับเอกสารทั่วไปที่ไม่ใช่

ไม่ทราบว่าเป็นปัญหาของดิสก์ที่ว่างซึ่งแก้ไขหรือรีบูทของ macOS ที่แก้ไข แต่มันใช้งานได้สำหรับฉัน


1

หากคุณมีไฟล์. xcodeproj ในโครงการ> เป้าหมาย> สร้างเฟส> การพึ่งพาเป้าหมายให้ลบไฟล์ออกจากที่นั่นแล้วสร้าง ipa ของคุณ มันใช้งานได้สำหรับฉัน ไชโย

คุณสามารถรับคำตอบได้ที่นี่: xcode กำลังสร้างไฟล์เก็บถาวร xcode ทั่วไปแทน iOS App Archive


0

ในกรณีของฉันฉันต้องย้ายทั้ง FMDB และ BlocksKit ไปยังไลบรารีแบบคงที่ ก่อนหน้านี้พวกเขาถูกสร้างเป็นโครงการย่อย จำไว้ว่าคุณสามารถใช้ lipo เพื่อสร้างไลบรารีสากล เมื่อสร้างผลิตภัณฑ์สุดท้ายรหัสจำลองจะถูกปล้นโดยอัตโนมัติ


0

อีกสาเหตุที่เป็นไปได้คือมีการอ้างอิงใน "การอ้างอิงเป้าหมาย" กับโครงการสำหรับแพลตฟอร์มอื่น ในกรณีเฉพาะของฉันฉันกำลังทำงานในโครงการที่ใช้รหัสสำหรับ OSX และ iOS ในหนึ่งในเป้าหมาย iOS ของฉันฉันได้เพิ่มเป้าหมาย OSX เป็นการบังเอิญ


0

เพื่อให้ทั่วถึงฉันกำลังโพสต์โซลูชันของฉัน

ฉันประสบปัญหาเดียวกันกับที่พยายามสร้างที่เก็บถาวรของโครงการ iOS ใน Xcode 5.1.1 (5B1008) ไม่มีคำแนะนำข้างต้นที่แก้ไขปัญหาได้และส่วนใหญ่ไม่เกี่ยวข้อง (ฉันไม่ได้เพิ่มกรอบงานใด ๆ และไม่มีรายการสาธารณะใด ๆ ในส่วนหัวคัดลอกของเฟสสร้างของฉัน)

ในกรณีของฉันการแก้ไขปัญหาประกอบด้วยเพียงแค่ปิดโปรเจ็กต์ของฉันการลบไฟล์เก็บถาวรใด ๆ ที่ฉันทำไว้ก่อนหน้านี้ไปที่การตั้งค่า> บัญชีการลบบัญชีนักพัฒนาของฉันออกจาก Xcode การเปิดใช้งานอีกครั้ง อีกครั้ง นี่เป็นการแก้ไขปัญหาของฉันทันที


0

อีกวิธีหนึ่งเนื่องจากทั้งหมดข้างต้นไม่ได้ผลสำหรับฉัน ...

การเปลี่ยนแปลงUser Header Search Paths(ฉันคิดว่าHeader Search Pathsจะทำงานเพียงอย่างหรูหรา) "$(BUILT_PRODUCTS_DIR)/BlocksKit"เพื่อ

พื้นหลัง :

ใน BlockKit ผู้พัฒนาได้จัดโครงสร้างส่วนหัวในโครงการหลักแตกต่างจากโครงสร้างการปรับใช้ ดังนั้นคุณไม่สามารถอ้างอิงส่วนหัวในโครงการและต้องอ้างอิงส่วนหัวที่คัดลอกลงในไดเรกทอรีสร้าง


0

วิธีการทำงานสำหรับฉันใน (Xcode 5) ฉันมี 2 เป้าหมายและเมื่อฉันแก้ไขรูปแบบที่บานหน้าต่างด้านซ้ายของตัวแก้ไขโครงการคุณจะเห็น [BUILD, RUN, TEST, PROFILE XXX.APP, ANALYZE, ARCHIVE ] จากบานหน้าต่าง BUILD คุณจะเห็นเป้าหมายโครงการของคุณอยู่ในรายการ ที่ปลายสุดด้านขวาคุณจะเห็นการเลือก ARCHIVE ตรวจสอบให้แน่ใจว่ามีการเลือกเป้าหมายเดียวเท่านั้นสำหรับการเก็บถาวร

ฉันได้เลือกเป้าหมาย 2 อย่างในโครงการของฉันฉันตรวจสอบเฉพาะเป้าหมายที่ฉันต้องการในผลิตภัณฑ์และใช้งานได้!


0

ฉันแก้ไขข้อผิดพลาดนี้โดยการเปิดเพียงแอพโครงการใน XCode เช่น ไม่เปิดพื้นที่ทำงานซึ่งประกอบด้วยแอปพลิเคชันและโครงการ / ไลบรารี / กรอบงานอื่น ๆ

มี 2 ​​โปรเจคเฟรมเวิร์กหรือไลบรารี่ที่แชร์และแอปพลิเคชั่น iOS ฉันต้องเปิดหน้าต่าง XCode ที่แตกต่างกัน 2 อันโดยเปิดไฟล์. xcodeprojโดยตรงแทนที่จะเป็น. xcworkspaceทั่วไปเพื่อสร้างแต่ละครั้งก่อน

ในฐานะที่เป็นผลข้างเคียงที่ดี XCode จะไม่สร้างเป้าหมายของทุกโครงการอีกต่อไปหลังจากที่ฉันทำความสะอาดทำให้เวลาการสร้างสั้นลง

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


0

เพราะเป็นเพราะฉันทำงานในพื้นที่ทำงาน โครงการได้เก็บถาวร แต่จะแสดงในหน้าต่างผู้จัด ฉันปิดพื้นที่ทำงานและเปิดโครงการด้วยตัวเอง ที่เก็บถาวรถูกเปิดในผู้จัด ... หวังว่ามันจะช่วยได้


0

ในกรณีของฉันฉันมีสคริปต์ที่กำหนดเองซึ่งกำลังคัดลอกไฟล์ชั่วคราวบางไฟล์ลงใน:

${TARGET_BUILD_DIR}/myTempDir

นั่นหมายความว่าหลังจากตรวจสอบไฟล์เก็บถาวรเพื่อตรวจสอบเนื้อหาแล้วฉันพบถัดจากไฟล์. app ไปยังโฟลเดอร์ myTempDir เมื่อฉันแก้ไขสคริปต์เพื่อบันทึกสิ่งอื่นถูกจัดเรียง


0

ลองตั้งค่า $ (PROJECT_NAME) ส่วนหัวในเส้นทางโฟลเดอร์ส่วนหัวสาธารณะของ projet คุณต้องไปสร้างการตั้งค่าเป้าหมายห้องสมุดแล้วแก้ไขเส้นทางโฟลเดอร์ส่วนหัวสาธารณะเป็น $ (PROJECT_NAME) ส่วนหัว


0

ถ้าใช้Xcode 7กับcocoapods v.0.38.2 ลองลบcopy pod resourcesจากเป้าหมายส่วนขยายของคุณในวันนี้

ป้อนคำอธิบายรูปภาพที่นี่


0

ฉันพบปัญหานี้หลังจากเพิ่มเครื่องมือบรรทัดคำสั่ง OS X ลงในโครงการของแอป iOS ของฉันและข้ามการติดตั้งถูกตั้งค่าเป็น NO ตามค่าเริ่มต้นสำหรับเป้าหมายของเครื่องมือบรรทัดคำสั่ง เนื่องจากคุณไม่สามารถติดตั้งไบนารี OS X ลงบนอุปกรณ์ iOS ได้อย่างชัดเจนการเก็บถาวรที่เป็นค่าเริ่มต้นเป็นไฟล์เก็บถาวร Xcode ทั่วไป การตั้งค่าข้ามการติดตั้งเป็น YES สำหรับเป้าหมายนี้แก้ไขปัญหา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.