Có thể biên dịch và chạy dự án Xcode trên thiết bị đã bẻ khóa mà không cần chứng chỉ nhà phát triển phải trả tiền không?


9

Cả cho các cú đá và vì lý do ngân sách, tôi muốn lấy một gói thường yêu cầu tài khoản nhà phát triển và xây dựng một ứng dụng để chạy trên thiết bị iOS đã bẻ khóa.

Tôi có iPod Touch thế hệ thứ 5, đã bẻ khóa bằng evasi0n, chạy iOS 6.1.

Tôi đang sử dụng Xcode 4.6 với Lion X (10.8.2).

Câu trả lời:


6

Các bước hướng dẫn sau đây để thực hiện mục đích này được lấy từ: http://iphencedevwiki.net/index.php/Xcode

Phát hiện và hành động của tôi được cung cấp theo từng bước.

1. Tạo chứng chỉ ký mã tự ký với tên là Nhà phát triển iPhone iPhone trên móc khóa Đăng nhập (mặc định) bằng cách sử dụng Keychain Access.

  • Tôi chụp ảnh màn hình khi tôi làm theo hướng dẫn ở trên.
  • Tôi để trống hầu hết các trường hoặc ở giá trị mặc định của chúng.

nhập mô tả hình ảnh ở đây

2. Mở /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist(4.2 trở xuống /Developer/Platforms/iPhoneOS.platform/Info.plist:). Bạn có thể cần sự cho phép root.

  • Tôi đang sử dụng Xcode 4.6, vì vậy tôi đã mở .plisttệp cũ .

3. Thay thế tất cả các lần xuất hiện của XCiPhoneOSCodeSignContextbằng XCCodeSignContext. Có ba trong số đó (Phiên bản XCode 3.2.4+).

  • Tôi đã thực hiện ba sửa đổi như các ảnh chụp màn hình chỉ ra.

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

4. Lưu tệp và khởi động lại Xcode.

  • Đã lưu tệp.

5. Hãy chắc chắn rằng bạn có ldid trên máy Mac. Đặt một bản sao ở đâu đó, ví dụ như trong /usr/local/bin.

6. Tạo tập lệnh Python ldid3.py ngay bên cạnh chương trình ldid. Làm cho nó thực thi được. Điền vào nó với:

#!/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])
  • Tôi đã tạo một tệp văn bản đơn giản mới và sao chép đoạn mã trên vào nó.
  • Tôi đã lưu tập tin này ldid3.pyvà lưu nó trong /usr/local/binthư mục.
  • Trong thiết bị đầu cuối, chạy chmod 777 /usr/local/bin/ldid3.py.

7. Mở iPhoneCodeSign.xcspec. Có thể tìm thấy tệp này trong [Đối với Xcode 4.6: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec]:

8. Thay đổi mục trong tệp từ gọi codesignđến ldid3.py.

  • Theo hướng dẫn chính thức, chuyển đổi tệp spec thành văn bản thuần túy bằng cách nhập vào bảng điều khiển: sudo plutil -convert xml1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
  • Tôi đã mở tập tin với TextEdit.
  • Thay thế <key>CommandLine</key><string>/usr/bin/codesign</string>bằng <key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>.

9. Lưu tệp và khởi động lại Xcode.

  • Tôi đã lưu tệp và thoát khỏi TextEdit.

10. Tạo một tệp /var/mobile/tdmtanftrên thiết bị, để bật "bỏ qua TDMTANF" của Apple trong phần cài đặt (cảnh báo: làm như vậy cũng sẽ đưa bạn vào GameCenter được đóng hộp cát).

  • Tôi tạo một tệp văn bản trống trong Windows, đặt tên cho nó tdmtanf, SSH vào iPod của tôi, tải nó lên /var/mobile/và khởi động lại iPod của tôi.

Bây giờ tất cả đã kết thúc với ...

Tôi mở dự án Xcode hiện tại của mình và nhấn Run. Nó hoạt động trong iOS Simulator mà không gặp vấn đề gì.

nhập mô tả hình ảnh ở đây

Tôi chắc chắn rằng Ký mã được thiết lập để sử dụng chứng chỉ được thiết lập ở bước 1.

nhập mô tả hình ảnh ở đây

Tôi xây dựng ứng dụng (Dự án> Xây dựng). Một thông điệp thành công sau đây.

Tôi lấy thư mục ứng dụng của mình TicTacToe.apptừ /Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/và chuyển nó vào máy Windows để cài đặt vào iPod.

Trong nỗ lực cài đặt ứng dụng vào iPod của tôi, tôi kéo TicTacToe.appvào phần ứng dụng của Tiện ích cấu hình iPhone, nhưng tôi nhận được thông báo lỗi này nói rằng ứng dụng của tôi "không phải là một ứng dụng di động hợp lệ."

Tôi cũng đã thử cài đặt ứng dụng theo cách thủ công bằng iFunbox và ứng dụng AppCake có trong Cydia. Cả hai đều thất bại.

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Là một điểm thú vị, vì khi tôi đi vòng quanh, tôi nhận thấy nhiều người đề cập đến tầm quan trọng của việc này: Tôi đã cài đặt AppSync. (Xin lỗi vì ảnh chụp màn hình lớn. Nếu tôi nên gỡ nó xuống, xin vui lòng cho tôi biết!)

nhập mô tả hình ảnh ở đây

Phần kết luận

Vì vậy, mặc dù làm theo các hướng dẫn chặt chẽ, nhiều lần, ứng dụng của tôi không được Công cụ cấu hình iPhone nhận ra là một ứng dụng hợp lệ. Tôi không thể cài đặt ứng dụng theo cách thủ công bằng các chương trình như iFunbox hoặc ứng dụng Cydia như AppCake.

Tôi nghi ngờ ứng dụng này thực sự không hợp lệ, nhưng đã làm theo hướng dẫn cẩn thận, tôi không chắc tại sao.

Bất cứ ai cũng có thể cho tôi biết lý do tại sao ứng dụng của tôi không hợp lệ và tôi có thể làm gì để khắc phục điều này, ngoài việc ho ra tiền?


Đó là một đọc thú vị, mặc dù.
Thecafremo

Không - rất vui vì đã đọc nó và có thể sẽ trở lại với nó trong tương lai. Cảm ơn đã chia sẻ nó.
Robert

Điều này rất hữu ích với tôi khi làm việc trên Xcode 4.2 và iOS 4, tôi hy vọng ai đó có thể cập nhật quy trình lên Xcode 4.6
rraallvv

Sau khi tải xuống ldid, bạn cần thay đổi quyền của nó thành 755 với chmod 755 ldid. Điều này đã gây ra cho tôi một lỗi thoát 1.

0

Bạn có thể kết nối thiết bị của mình và chọn Thiết bị iOS làm mục tiêu Chạy. Khi chạy, ứng dụng sẽ tự động cài đặt trên thiết bị của bạn. Hoặc bạn có thể chọn Thiết bị iOS của mình, sau đó không cần chạy Chỉ cần Xây dựng và Lưu trữ. Sau đó, phân phối ... chọn Lưu cho Doanh nghiệp hoặc Triển khai Ad-Hoc. Bạn sẽ nhận được tệp .ipa của bạn. Hy vọng nó có thể giúp bạn..


0

tiếp tục câu trả lời của @joncom .. bạn có thể thêm trực tiếp các tệp .app vào iPhone của mình, chỉ với một vài bước bổ sung.

  • sao chép .apptập tin vào máy tính để bàn của bạn, và sau đó nén nó
  • đổi tên [yourappname].zipthành[yourappname].ipa
  • sau đó tiếp tục và tải xuống AppSync từ cydia
  • tải xuống và cài đặt tệp .ipa vào thiết bị của bạn

GHI CHÚ:

bạn cũng có thể thực hiện việc này trực tiếp mà không cần thông qua tất cả các sửa đổi mã python mà @joncom đã đề cập .. đọc thêm tại đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.