ด้วยXcode 6Cocoa Frameworks
เราได้รับความสามารถในการสร้างแบบไดนามิกของตัวเอง
เพราะว่า:
โปรแกรมจำลองยังคงใช้
32-bit
ไลบรารี-
ตั้งแต่วันที่ 1 มิถุนายน 2015 การอัปเดตแอปที่ส่งไปยัง App Store จะต้องมีการรองรับ 64 บิตและสร้างด้วย iOS 8 SDK ( developer.apple.com )
เราต้องสร้างห้องสมุดไขมันเพื่อเรียกใช้โครงการบนอุปกรณ์และเครื่องจำลอง เช่นรองรับทั้ง 32 และ 64 บิตใน Frameworks
แต่ฉันไม่พบคู่มือใด ๆ วิธีการส่งออก universal fat Framework สำหรับการรวมกับโครงการอื่น ๆ ในอนาคต (และแชร์ไลบรารีนี้กับใครบางคน)
นี่คือขั้นตอนของฉันในการทำซ้ำ:
ตั้งค่า
ONLY_ACTIVE_ARCH=NO
ในไฟล์Build Settings
เพิ่มการสนับสนุน
armv7 armv7s arm64 i386 x86_64
ให้Architectures
(แน่นอน)
- สร้าง Framework และเปิดใน Finder:
- เพิ่มกรอบงานนี้ในโครงการอื่น
ผลลัพธ์จริง:
แต่ในที่สุดฉันก็ยังมีปัญหากับการรันโปรเจ็กต์ด้วยเฟรมเวิร์กนี้บนอุปกรณ์และโปรแกรมจำลอง
ถ้าฉันใช้กรอบจาก
Debug-iphoneos
โฟลเดอร์ - มันทำงานบนอุปกรณ์และได้รับข้อผิดพลาดในเครื่องจำลอง:ld: symbol(s) not found for architecture i386
xcrun lipo -info CoreActionSheetPicker
สถาปัตยกรรมในไฟล์ fat: CoreActionSheetPicker คือ armv7 armv7s arm64
ถ้าฉันใช้กรอบจาก
Debug-iphonesimulator
โฟลเดอร์ - มันใช้งานได้กับเครื่องจำลอง และฉันมีข้อผิดพลาดบนอุปกรณ์:ld: symbol(s) not found for architecture arm64
xcrun lipo -info CoreActionSheetPicker
สถาปัตยกรรมในไฟล์ fat: CoreActionSheetPicker คือ: i386 x86_64
ดังนั้นจะสร้างเฟรมเวิร์กแบบไดนามิกที่ทำงานบนอุปกรณ์และเครื่องจำลองได้อย่างไร?
คำตอบนี้เกี่ยวข้องกับXcode 6 iOS การสร้าง Cocoa Touch Framework - ปัญหาด้านสถาปัตยกรรมแต่ไม่ซ้ำกัน
อัปเดต:
ฉันพบ "แฮ็กสกปรก" สำหรับกรณีนี้ ดูของฉันคำตอบด้านล่าง หากมีใครทราบวิธีที่สะดวกกว่านี้โปรดแจ้งให้เราทราบ!