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


9

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

ฉันมี iPod Touch รุ่นที่ 5, jailbroken โดยใช้ evasi0n, ใช้ iOS 6.1

ฉันใช้ Xcode 4.6 กับ OS X (10.8.2) Lion

คำตอบ:


6

ขั้นตอนการสอนเพื่อให้บรรลุวัตถุประสงค์นี้มาจาก: http://iphonedevwiki.net/index.php/Xcode

การค้นพบและการกระทำของฉันมีให้ในแต่ละขั้นตอน

1. สร้างใบรับรองการเซ็นชื่อด้วยตนเองที่มีชื่อ“ iPhone Developer” บนพวงกุญแจ“ เข้าสู่ระบบ” (ค่าเริ่มต้น) โดยใช้ Keychain Access

  • ฉันจับภาพหน้าจอขณะที่ทำตามคำแนะนำด้านบน
  • ฉันเว้นฟิลด์ส่วนใหญ่ว่างไว้หรือใช้ค่าเริ่มต้น

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

2. เปิด/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist(4.2 หรือต่ำกว่า: /Developer/Platforms/iPhoneOS.platform/Info.plist) คุณอาจต้องได้รับอนุญาตจากรูท

  • ฉันใช้ Xcode 4.6 ดังนั้นฉันจึงเปิด.plistไฟล์เก่า

3. เปลี่ยนเกิดขึ้นทั้งหมดโดยXCiPhoneOSCodeSignContext XCCodeSignContextมีสามคน (XCode เวอร์ชัน 3.2.4+)

  • ฉันได้ทำการดัดแปลงสามครั้งตามภาพหน้าจอที่ระบุ

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

4. บันทึกไฟล์และรีสตาร์ท Xcode

  • บันทึกไฟล์

5. ตรวจสอบให้แน่ใจว่าคุณมี ldid บน Mac ของคุณ /usr/local/binสถานที่ที่มีการคัดลอกบางแห่งเช่นใน

6. สร้างสคริปต์ Python ldid3.py ติดกับโปรแกรม ldid ทำให้ปฏิบัติการได้ เติมด้วย:

#!/usr/bin/env python

from sys import argv
from subprocess import check_call
from os.path import basename, dirname, splitext, join
from tempfile import NamedTemporaryFile

app = argv[-1]
ldid_path = join(dirname(__file__), 'ldid')
obj_path = join(app, splitext(basename(app))[0])

if '-gta' not in argv:
    check_call([ldid_path, '-S', obj_path])
else:
    with NamedTemporaryFile('w+b', 0) as f:
        f.write("""
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>get-task-allow</key>
    <true/>
  </dict>
</plist>
        """)
        check_call([ldid_path, '-S' + f.name, obj_path])
  • ฉันสร้างไฟล์ข้อความธรรมดาใหม่และคัดลอกโค้ดด้านบนลงไป
  • ฉันบันทึกไฟล์นี้เป็นldid3.pyและเก็บไว้ใน/usr/local/binไดเรกทอรี
  • ใน terminal, chmod 777 /usr/local/bin/ldid3.pyวิ่ง

7. iPhoneCodeSign.xcspecเปิด ไฟล์นี้สามารถพบได้ใน [สำหรับ Xcode 4.6: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec]:

8. เปลี่ยนรายการในแฟ้มจากการเรียกไปcodesignldid3.py

  • ตามคำสั่งอย่างเป็นทางการคำสั่งแปลงไฟล์ข้อมูลจำเพาะเป็นข้อความธรรมดาโดยพิมพ์ในคอนโซล: sudo plutil -convert xml1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
  • ฉันเปิดไฟล์ด้วย TextEdit
  • แทนที่ด้วย<key>CommandLine</key><string>/usr/bin/codesign</string><key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>

9. บันทึกไฟล์และรีสตาร์ท Xcode

  • ฉันบันทึกไฟล์และออกจาก TextEdit

10. สร้างไฟล์/var/mobile/tdmtanfบนอุปกรณ์เพื่อเปิดใช้งาน "บายพาส TDMTANF" ของ Apple ในการติดตั้ง (คำเตือน: การทำเช่นนี้จะนำคุณเข้าสู่ศูนย์เกมแบบแซนด์บ็อกซ์)

  • ฉันสร้างไฟล์ข้อความเปล่าใน Windows ตั้งชื่อมันtdmtanfSSH ลงใน iPod อัปโหลดไปยัง/var/mobile/และรีบูต iPod ของฉัน

ตอนนี้ทุกอย่างจบลงด้วย ...

ฉันเปิดโครงการ Xcode ที่มีอยู่และกด Run มันทำงานได้ใน iOS Simulator โดยไม่มีปัญหาใด ๆ

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

ฉันแน่ใจว่าการเซ็นชื่อรหัสถูกตั้งค่าให้ใช้การตั้งค่าใบรับรองในขั้นตอนที่ 1

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

ฉันสร้างแอพ (โครงการ> สร้าง) ข้อความความสำเร็จดังต่อไปนี้

ฉันคว้าโฟลเดอร์ app ของฉันTicTacToe.appจาก/Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/และโอนไปยังเครื่อง Windows ของฉันที่จะติดตั้งลง iPod ของฉัน

ในความพยายามที่จะติดตั้งแอพลงใน iPod ของฉันฉันจะลากTicTacToe.appไปที่ส่วนแอพพลิเคชั่นของ iPhone Configuration Utility แต่ฉันได้รับข้อความแสดงข้อผิดพลาดนี้ว่าแอปของฉัน "ไม่ใช่แอปพลิเคชันมือถือที่ใช้ได้"

ฉันได้ลองติดตั้งแอพด้วยตนเองโดยใช้iFunboxและแอพAppCake ที่พบใน Cydia ทั้งสองล้มเหลว

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

ในฐานะที่เป็นจุดสนใจเพราะในขณะที่ฉัน Googled ฉันได้สังเกตเห็นหลายคนพูดถึงความสำคัญของสิ่งนี้: ฉันติดตั้ง AppSync แล้ว (ขออภัยสำหรับภาพหน้าจอขนาดใหญ่ถ้าฉันควรจะลงโปรดแจ้งให้เราทราบ!)

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

ข้อสรุป

ดังนั้นแม้จะทำตามคำแนะนำอย่างใกล้ชิดหลายครั้งแอพของฉันไม่รู้จักโดย iPhone Configuration Utility เป็นแอพที่ถูกต้อง ฉันไม่สามารถติดตั้งแอพด้วยตนเองโดยใช้โปรแกรมเช่น iFunbox หรือแอพ Cydia เช่น AppCake

ฉันสงสัยว่าแอพนี้ไม่ถูกต้อง แต่เมื่อทำตามคำแนะนำอย่างระมัดระวังฉันไม่แน่ใจว่าทำไม

ใครสามารถบอกฉันได้ว่าทำไมแอปของฉันไม่ถูกต้องและสิ่งที่ฉันสามารถทำได้เพื่อแก้ไขปัญหานี้นอกเหนือจากการไอเงินนั่นคืออะไร?


มันเป็นการอ่านที่น่าสนใจ
Thecafremo

Nope - ดีใจที่ได้อ่านและอาจจะกลับมาในอนาคต ขอขอบคุณที่แบ่งปัน
Robert

สิ่งนี้มีประโยชน์มากสำหรับฉันเมื่อทำงานกับ Xcode 4.2 และ iOS 4 ฉันหวังว่าบางคนสามารถอัปเดตโพรซีเดอร์เป็น Xcode 4.6
rraallvv

หลังจากดาวน์โหลด ldid คุณจะต้องเปลี่ยนการอนุญาตเป็น 755 ด้วย chmod 755 ldid นี่ทำให้ฉันเกิดข้อผิดพลาด exit 1

0

คุณสามารถเชื่อมต่ออุปกรณ์และเลือกอุปกรณ์ iOS ของคุณเป็นเรียกใช้เป้าหมาย เมื่อเรียกใช้แอปพลิเคชันจะติดตั้งบนอุปกรณ์ของคุณโดยอัตโนมัติ หรือคุณสามารถเลือกอุปกรณ์ iOS ของคุณจากนั้นไม่จำเป็นต้องเรียกใช้เพียงแค่สร้างและเก็บถาวร หลังจากนั้นแจกจ่าย ... เลือกบันทึกสำหรับองค์กรหรือการปรับใช้ Ad-Hoc คุณจะได้รับไฟล์. ipa ของคุณ หวังว่ามันจะช่วยคุณได้ ..


0

คำตอบต่อไปของ @joncom .. คุณสามารถเพิ่มไฟล์. app ลงใน iPhone ของคุณโดยตรงเพียงแค่เพิ่มขั้นตอนเล็กน้อย

  • คัดลอก.appไฟล์ไปยังเดสก์ท็อปของคุณแล้วซิป
  • เปลี่ยนชื่อ[yourappname].zipไป[yourappname].ipa
  • จากนั้นไปข้างหน้าและดาวน์โหลด AppSync จาก cydia
  • ดาวน์โหลดและติดตั้งไฟล์. ipa ลงในอุปกรณ์ของคุณ

บันทึก:

คุณสามารถทำสิ่งนี้ได้โดยตรงโดยไม่ต้องผ่านการแก้ไขรหัสหลามทั้งหมดที่ @joncom พูดถึง .. อ่านเพิ่มเติมได้ที่นี่

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