Xcode Run script Build Phase“ run script only when install” option


90

มีตัวเลือก "รันสคริปต์เมื่อติดตั้งเท่านั้น" ใน Xcode Run script Build Phase ฉันไม่พบเอกสารเกี่ยวกับเรื่องนี้ มันทำอะไร?

คำตอบ:


139

เมื่อใช้สคริปต์เรียกใช้เมื่อติดตั้งการตรวจสอบแล้วสคริปต์จะทำงานเมื่อมีการเก็บถาวรผลิตภัณฑ์เท่านั้น


12
ไม่ใช่เมื่อสร้าง / ติดตั้งบนอุปกรณ์? (นั่นคือ: CMD-Bสร้างและเรียกใช้ไปยังอุปกรณ์จริง (ไม่ใช่ซิม) โดยเสียบอุปกรณ์อยู่จะไม่นับเป็น "เมื่อติดตั้ง" สำหรับสวิตช์นี้หรือไม่)
Olie

6
การติดตั้งดีบักบนอุปกรณ์จริง (สร้างและเรียกใช้จาก Xcode) ไม่นับเป็นการ "ติดตั้ง" สคริปต์การรันจะทำงานเมื่อเก็บถาวรเท่านั้น (ทดสอบด้วย Xcode 9)
seeppp

อันที่จริงเป็นเพียงบางส่วนที่ถูกต้อง ขึ้นอยู่กับการตั้งค่า DEPLOYMENT_PROCESSING ฉันใช้สิ่งนี้จากการเรียกใช้สิ่งนี้บน Xcode 10 ดูเหมือนว่าเมื่อคุณเก็บถาวร DEPLOYMENT_PROCESSING จะถูกตั้งค่าเป็น YES และแทนที่การตั้งค่าสำหรับการกำหนดค่า ฉันได้ยืนยันสิ่งนี้ผ่านการสร้างและเห็นการตั้งค่าในผลลัพธ์เนื่องจากฉันได้ตั้งค่า "แสดงตัวแปรสภาพแวดล้อมในบันทึกการสร้าง" ไว้
Mobile Ben

17

ใน Xcode Build System Guide (Xcode 3.2.x) ระบุว่า:

เรียกใช้สคริปต์เมื่อติดตั้งเท่านั้น รันสคริปต์เฉพาะในระหว่างการติดตั้งบิลด์นั่นคือเมื่อใช้อ็อพชันการติดตั้งของ xcodebuild หรือเมื่อการตั้งค่าบิลด์ Deployment Location (DEPLOYMENT_LOCATION) และ Deployment Postprocessing (DEPLOYMENT_POSTPROCESSING) เปิดอยู่


เมื่อคุณต้องการ / ต้องการ ... ? ฉันขอแนะนำให้อ่านเอกสารเกี่ยวกับ DEPLOYMENT_LOCATION, DEPLOYMENT_POSTPROCESSING และ TARGET_BUILD_DIR
ericg

1
อ่านแต่ว่าผู้คนใช้มันในสถานการณ์ใด?
บุญ

15
Re: คุณต้องการใช้สิ่งนี้เมื่อใด: ฉันใช้แฟล็กนี้กับสคริปต์ที่เพิ่มหมายเลขบิลด์ดังนั้นจึงเกิดขึ้นเฉพาะในบิลด์ที่ฉันเก็บถาวรเพื่อส่งไปยังผู้ทดสอบเบต้า (ไม่ใช่ทุกครั้งที่เรียกใช้แอป)
เวย์น

1
หรือเมื่ออัปโหลดไฟล์สัญลักษณ์ไปยัง firebase หรือ crashlytics ไม่จำเป็นต้องอัปโหลดสิ่งนั้นในทุกบิวด์การแก้ปัญหา
seeppp

จริงๆแล้ว Fabric บอกว่าควรอัปโหลดไฟล์สัญลักษณ์ทุกบิลด์ มีวิธีที่ดีกว่าในการกำหนดค่าการอัปโหลด dSYM support.crashlytics.com/knowledgebase/articles/…
Nik Kov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.