2012-05-08 43 views
17

Tôi đang cố gắng cài đặt ứng dụng iOS của mình trên thiết bị chạy iOS 5.1. Nó hiện không bị bẻ khóa nhưng nếu đó là những gì tôi cần, tôi sẽ làm điều đó.Cài đặt ứng dụng iOS trên thiết bị không có chương trình nhà phát triển, iOS 5.1

Khi tôi đang chạy iOS 5.0.1, tôi theo chủ đề này: How can I deploy an iPhone application from Xcode to a real iPhone device? và tạo chứng chỉ tự ký, hoạt động như một nét duyên dáng.

Tôi không thể làm cho nó làm việc sau khi cập nhật để Xcode 4.3.2 và iOS 5.1

I'v cũng đã cố gắng sau chủ đề này nhưng không thành công: Test iOS app on device without apple developer program or jailbreak

Vì vậy, làm thế nào để tôi cài đặt ứng dụng của tôi từ Xcode 4.3.2 lên iPhone 4 của tôi chạy iOS 5.1, mà không phải là thành viên trong chương trình nhà phát triển?

EDIT: Tôi hiện có thể tải các ứng dụng trên iPhone. Nhưng khi tôi cố gắng để bắt đầu họ họ sụp đổ, thậm chí không phải là hình ảnh khởi động đi lên. Tôi đã Jailbroken thiết bị, cài đặt Appsync, chỉnh sửa SDKSettings.plist và thay đổi các thuộc tính xây dựng thành "Don't code Sign".

Đây là những gì giao diện điều khiển mang lại cho tôi khi tôi cố gắng để bắt đầu ứng dụng, tôi không nhận được bất kỳ nhật ký sự cố trong Xcode:

May 8 18:25:35 unknown SpringBoard[54] <Warning>: Unable to obtain a task name port right for pid 1017: (os/kern) failure 
May 8 18:25:35 unknown com.apple.launchd[1] <Notice>: (UIKitApplication:com.KerschApps.Test[0x2fa8]) Exited: Killed: 9 
May 8 18:25:35 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.KerschApps.Test[0x2fa8]) Throttling respawn: Will start in 2147483647 seconds 
May 8 18:25:35 unknown SpringBoard[54] <Warning>: Application 'Test' exited abnormally with signal 9: Killed: 9 
May 8 18:25:36 unknown kernel[0] <Debug>: AMFI: hook..execve() killing pid 1017: no code signature 

Tại sao tất cả các ứng dụng của tôi đâm trong iPhone khi họ chạy tốt trong giả lập?

Thanks/Tim

+0

đã bạn thấy chủ đề này http://stackoverflow.com/questions/9898039/xcode-4-3-2-bypass-code-signing – Vin

+0

Thiếu chủ đề đó, tôi sẽ thử nó. Cảm ơn! – Kersch

+0

Hoàn thành tất cả các bước ngay bây giờ, chỉnh sửa plist, jailbreak iPhone của tôi và tôi có thể cài đặt ứng dụng vào iPhone của tôi mà không cần ký mã. Nhưng khi tôi cố gắng khởi động ứng dụng Nó bị treo khi khởi động. Tôi thậm chí không thể chụp được hình ảnh khởi động. Nó chạy tốt trong mô phỏng và tôi đã thử với các ứng dụng khác. Bạn có biết vấn đề có thể là gì không? – Kersch

Trả lời

11

Tôi đã có chính xác cùng một vấn đề như bạn, nhận được các ứng dụng chạy trên iOS 5.1 với Xcode 4.3.2 và tôi đã chỉ cố gắng làm cho nó làm việc gần như hoàn hảo sử dụng phương pháp này ở đây:

Building Apps for iOS 5.1 with Xcode 4.3.2

Nó dựa trên this one from iPhone Dev wiki, nhưng tôi phải bao gồm một số thay đổi - kết quả chuyển đổi -gta trong lỗi xây dựng và hướng dẫn không chính xác rõ ràng.Hướng dẫn hoàn chỉnh là ở chỗ bài đăng blog, nhưng các bước cơ bản là:

  1. Tạo chứng chỉ tự ký với tên 'iPhone Developer'
  2. Bật 'Mã Ký sắc' trong dự án Xcode Build Cài đặt lại - để sử dụng của bạn tự ký giấy chứng nhận 'iPhone Developer'
  3. thay đổi lần xuất hiện info.plist như đã nêu
  4. Tải ldid, hãy thực thi
  5. Tạo script python, dính vào nó trong/usr/bin, tài liệu tham khảo kịch bản thay đổi cho phù hợp python
  6. Thay đổi iPhoneCodeSign.xcspec sử dụng ldid3.py
  7. Tạo tdmtanf tập tin trên thiết bị với liên lạc qua ssh
  8. Đừng đặt cờ -gta trong 'Khác Flags Mã Ký'

tôi xảy ra để sử dụng Unity để gỡ lỗi vì vậy việc thiếu Xcode gỡ lỗi với -gta không làm phiền tôi - rõ ràng các nhà phát triển Objective C sẽ cần chức năng này, vì vậy hy vọng ai đó có thể mở rộng nếu họ làm việc. Tôi hiện đang chơi với một bản dựng ứng dụng của tôi trên iPhone của tôi trên phiên bản 5.1 và các ngón tay chéo bạn có thể nhận được kết quả tương tự.

+0

Cảm ơn. Tôi cũng sẽ thử giải pháp này. – Kersch

+0

Tôi đã cố gắng làm cho nó hoạt động theo cách của bạn. Bước 5 của bạn là khó hiểu. Tôi đã phải đặt ldid vào '/ usr/bin/ldid' và thay đổi ldid3.py tương ứng (dòng 12 và 24). – TCB13

+0

Vâng tôi gặp một chút rắc rối với ldid3.py mất cờ cho phép thực thi của nó, vì vậy người ta có thể có nhiều may mắn hơn sau các bước của liên kết wiki và đặt nó và ldid trong/usr/local/bin. Ngoài ra, có vẻ như iDevices sẽ từ chối chạy các ứng dụng được xây dựng với SDK gần đây ngay cả khi các bước trên được thực hiện - nếu tôi chọn bên trong Unity (công cụ trò chơi/trình chỉnh sửa) để xây dựng với iOS 5.1 SDK, ứng dụng sẽ bị lỗi ngay lập tức khi khai thác và Xcode sẽ báo cáo thông báo lỗi của bài đăng gốc trong bảng điều khiển (đã thoát bất thường ... không có chữ ký mã).Cuối cùng tôi đã làm việc đó một khi tôi xây dựng với iOS SDK 4.2. – fundead

0

Tôi không biết nếu bạn giải quyết vấn đề của bạn, nhưng tôi đã có tương tự mà bạn đã có. Tôi sẽ giải thích cách giải quyết.

Yêu cầu:

Xcode 4.3.2, iPhone với iOS 5.1.x, Mac.

Tất cả những gì bạn cần là tự động ký vào đơn đăng ký của bạn. Tất cả các bước mà bạn đã làm là sửa chữa, vì vậy khi bạn có ứng dụng của bạn được xây dựng từ Xcode, bạn cần phải ký nó. Tạo một chứng chỉ tự trong keychain và sau đó đi trong thư mục (bởi thiết bị đầu cuối), nơi xcode biên dịch ứng dụng, sau đó viết này:

mac$ platform=/Developer/Platforms/iPhoneOS.platform 
mac$ allocate=${platform}/Developer/usr/bin/codesign_allocate 
mac$ export CODESIGN_ALLOCATE=${allocate} 
mac$ codesign -fs "Name" Program 

nơi "Tên" là tên của chứng chỉ và chương trình là tên Program.app (bạn phải chỉ định .app). Sao chép ứng dụng của bạn trong/Applications bằng ssh hoặc cyberduck hoặc iTunes ... Sau đó respring và tận hưởng!

+0

Không, tôi không giải quyết được sự cố. Tôi sẽ thử giải pháp của bạn. Cảm ơn! – Kersch

1

Tôi đã cố gắng làm như vậy và đã thất bại ở một vài điểm, sau đó tôi tìm thấy Moustafa Hassan's blog, trong đó có các bước tôi đã sử dụng thành công.

Nó hoạt động thử nghiệm tốt với Xcode 4.6.3 trên OS X 10.8.4 (trên Hackintosh của tôi) và iOS 6.1.2 trên iPad của tôi

Đó trang chứa từng ví dụ bước và hình ảnh để thực hiện công việc. Nó chỉ mất khoảng 15 phút.

Điều duy nhất tôi có thể nghĩ về điều đó không được liệt kê trên trang là cách truy cập/usr/local/bin trên thiết bị OS X của bạn. Điều đó có thể dễ dàng thực hiện bằng cách hiển thị các tệp ẩn trong thiết bị đầu cuối [1].

[1]: defaults write com.apple.Finder AppleShowAllFiles YES

Các vấn đề liên quan