วิธีสร้างเฟรมเวิร์กหรือไลบรารีสำหรับนักพัฒนารายอื่นวิธีที่ปลอดภัย? [ปิด]


106

เรามีแนวคิดสำหรับกรอบงานหรือไลบรารีที่จะเป็นประโยชน์อย่างมากสำหรับนักพัฒนา iOS ทุกคน ดังนั้นเราจึงคิดอย่างจริงจังเกี่ยวกับการเปลี่ยนจากการพัฒนาแอปเป็นการพัฒนาเฟรมเวิร์ก / ไลบรารี

แต่เมื่อเราต้องการเรียกเก็บเงินสำหรับไลบรารี / เฟรมเวิร์กเราต้องป้องกันโค้ดอย่างใด เราจะสร้างเฟรมเวิร์กในลักษณะที่ผู้ใช้เฟรมเวิร์กของเรามองไม่เห็นซอร์สโค้ดได้อย่างไรคล้ายกับการที่เรามองไม่เห็นซอร์สโค้ดของเฟรมเวิร์กแอปเปิ้ล พวกเขาจัดส่งเฉพาะไฟล์ส่วนหัวและไฟล์ exe Unix แปลก ๆ พร้อมกรอบงานที่คอมไพล์แล้ว

หรือหากไม่สามารถสร้างเฟรมเวิร์ก / ไลบรารีที่คอมไพล์แล้วซึ่งนักพัฒนา iOS คนอื่น ๆ สามารถใช้ได้โดยไม่สามารถคัดลอกและวางซอร์สโค้ดของเราได้มีวิธีใดที่จะทำให้โค้ดวัตถุประสงค์ -C สับสน


22
ไฟล์ Unix exe :-)
Besi

6
หากคุณต้องการเป็นประโยชน์กับนักพัฒนา iOS จริงๆก็โอเพ่นซอร์สได้เลย!
Kaan Dedeoglu

4
@KaanDedeoglu - มีข้อดีข้อเสียสำหรับผู้ใช้ในทั้งสองสถานการณ์ โดยส่วนตัวแล้วฉันชอบโอเพ่นซอร์สที่มีราคาสมเหตุสมผลทุกอย่างได้รับการจัดทำเป็นเอกสารรองรับและใช้งานได้กับเฟรมเวิร์กโอเพนซอร์สที่ไม่สนับสนุนและไม่มีเอกสาร หายากคือเฟรมเวิร์กโอเพนซอร์สที่อยู่ใกล้กับเอกสารที่ดีและได้รับการดูแลอย่างดี
ArtOfWarfare

คำตอบ:


113

ใช่เป็นไปได้ที่จะสร้างเฟรมเวิร์กเพื่อให้ผู้ใช้เฟรมเวิร์กมองไม่เห็นซอร์สโค้ด

ลองดูบทความเหล่านี้ (ฉันเคยใช้บทความแรกในการสร้างเฟรมเวิร์กสำเร็จในอดีต - บทความต่อมาเป็นการอัปเดตของต้นฉบับ):

http://www.drobnik.com/touch/2010/04/making-your-own-iphone-frameworks/

http://www.drobnik.com/touch/2010/05/making-your-own-iphone-frameworks-in-xcode/

http://www.drobnik.com/touch/2010/10/embedding-binary-resources/

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

นอกจากนี้ยังสามารถเป็นวิธีที่ยอดเยี่ยมในการแจกจ่ายรหัสที่ใช้สำหรับหลายโครงการภายใน บริษัท ของคุณ


อัปเดต:

ตรวจสอบเฉียบขาดลิงค์ด้านล่างเพิ่ม - มันเป็นมากขึ้นที่ผ่านมาและทั้งหมดในหนึ่งหน้า: http://github.com/jverkoey/iOS-Framework นอกจากนี้ยังวางประเด็นเกี่ยวกับแนวทางอื่น ๆ อีกมากมาย นี่คือคำแนะนำที่ฉันทำตามตอนนี้เมื่อพยายามจำสิ่งที่ต้องทำเมื่อตั้งค่ากรอบงานใหม่ :)

Update2 (พร้อม Xcode 6 release)

มีตัวเลือกที่คุณกำลังมองหา: Universal Framework for iOS!

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

ทำไมฉันถึงต้องการสิ่งนี้? ตอบ: สำหรับนักพัฒนา / ทีมที่ต้องการแชร์รหัสโดยไม่ต้องแสดงโค้ดทั้งหมด (ไฟล์. m / .c / .cpp) นอกจากนี้สำหรับผู้ที่ต้องการจัดระเบียบโค้ด + ทรัพยากรที่คอมไพล์แล้ว (รูปภาพวิดีโอเสียง XIBs plist ฯลฯ ) ไว้ในที่เดียว และนี่ก็สำหรับทีมที่ต้องการทำงานร่วมกันเหนือฐานเดียวกัน (กรอบ)

(c) http://blog.db-in.com/universal-framework-for-ios/


1
ขอบคุณเพื่อน! Apple จะไม่ปฏิเสธแอปเพราะเคล็ดลับนี้? คุณได้รับการอนุมัติแอปบน App Store ที่ใช้กรอบงานดังกล่าวจริงหรือไม่?
Proud Member

3
เพื่อกลับมาที่สิ่งนี้เช่นเดียวกับค่าสถานะ Xcode 4 -all_load linker ในการตั้งค่าการสร้าง "Other Linker Flags" ไม่จำเป็นต้องใช้ -ObjC เป็นธงเดียวที่คุณต้องการ
Daniel

คุณพูดถูก Daniel หนึ่งใน LLVM / Clang เวอร์ชันล่าสุดได้แก้ไขสิ่งนี้แล้ว ขอบคุณ!
Jay Peyer

ชอบลิงก์ github ไปยัง iOS Framework, +1
sbonami

หมายเหตุ: หากคุณมี Xcode 4.5 คุณจะต้องปรับเปลี่ยนบทช่วยสอนเล็กน้อยตามที่ระบุไว้ที่นี่: stackoverflow.com/questions/13571080/…
Lolo


9

นอกจากนี้ยังมีเทมเพลตสำหรับ XCode 4ที่จะช่วยให้คุณสร้างโครงการกรอบงานคงที่ของ iOS


คุณรู้จักโครงการที่เปิดตัวด้วยวิธีนี้หรือไม่?
Tomen

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