Ứng dụng iPhone trừ cửa hàng ứng dụng?


199

Nếu tôi tạo một ứng dụng trên máy Mac của mình, có cách nào để tôi có thể chạy ứng dụng đó trên iPhone mà không cần qua cửa hàng ứng dụng không?

Sẽ không có vấn đề gì nếu iPhone phải được bẻ khóa, miễn là tôi vẫn có thể chạy một ứng dụng được tạo bằng SDK chính thức. Vì những lý do tôi sẽ không tham gia, tôi không thể để chương trình này đi qua cửa hàng ứng dụng.


1
Kể từ Xcode 7, giờ đây có thể chạy ứng dụng trên thiết bị được kết nối mà không cần đăng ký tài khoản nhà phát triển hoặc bẻ khóa thiết bị. Xem hướng dẫn này để biết chi tiết.
Suragch

Bạn có thể sử dụng AppBox , Một ứng dụng mac sử dụng tài khoản dropbox của bạn để phân phối cho bạn các ứng dụng đặc biệt và doanh nghiệp. Hãy thử ở đây github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/...
Vineet Choudhary

Câu trả lời:


187

Chương trình phát triển chính thức

Đối với iPhone tiêu chuẩn, bạn cần trả 99 đô la Mỹ / năm để trở thành thành viên của chương trình dành cho nhà phát triển. Sau đó, bạn có thể sử dụng hệ thống adhoc để cài đặt ứng dụng của mình lên tới 100 thiết bị. Chương trình dành cho nhà phát triển có các chi tiết nhưng nó liên quan đến việc thêm UUID cho từng thiết bị vào gói ứng dụng của bạn. UUID có thể được truy xuất dễ dàng nhất bằng Trình trợ giúp quảng cáo có sẵn từ App Store. Để biết thêm chi tiết về phương pháp này, thấy Craig Hockenberry của thử nghiệm Beta trên iPhone 2.0 bài viết

Bẻ khóa iPhone

Đối với iPhone đã bẻ khóa, bạn có thể sử dụng phương pháp sau đây mà tôi đã thử nghiệm cá nhân bằng ứng dụng mẫu AccelerometerGraph trên iPhone OS 3.0.

Tạo chứng chỉ tự ký

Trước tiên, bạn sẽ cần tạo chứng chỉ tự ký và vá SDK iPhone của mình để cho phép sử dụng chứng chỉ này:

  1. Khởi chạy Keychain Access.app. Không có mục nào được chọn, từ menu Keychain chọn Trợ lý chứng chỉ, sau đó Tạo chứng chỉ.

    Tên: iPhone Nhà phát triển
    Loại chứng chỉ: Ký mã
    Cho phép tôi ghi đè mặc định: Có

  2. Nhấp vào Tiếp tục

    Hiệu lực: 3650 ngày

  3. Nhấp vào Tiếp tục

  4. Để trống trường địa chỉ Email.

  5. Nhấp vào Tiếp tục cho đến khi hoàn thành.

    Bạn sẽ thấy "Chứng chỉ gốc này không đáng tin cậy". Điều này được mong đợi.

  6. Đặt SDK iPhone để cho phép chứng chỉ tự ký được sử dụng:

    sudo / usr / bin / sed -i .bak 's / XCiPhoneOSCodeSignContext / XCCodeSignContext /' /Developer/Plevelops/iPhoneOS.pl platform / Info.plist

    Nếu bạn đã mở Xcode, hãy khởi động lại để thay đổi này có hiệu lực.

Triển khai thủ công qua WiFi

Các bước sau đây yêu cầu openssh, và uikittoolsphải được cài đặt trước. Thay thế jasoniphone.localbằng tên máy chủ của thiết bị đích. Đảm bảo đặt mật khẩu của riêng bạn cho cả người dùng mobilerootngười dùng sau khi cài đặt SSH.

Để tự biên dịch và cài đặt ứng dụng của bạn trên điện thoại dưới dạng ứng dụng hệ thống (bỏ qua hệ thống cài đặt của Apple):

  1. Project, Set SDK hoạt động, thiết bị và đặt cấu hình xây dựng hoạt động, phát hành.

  2. Biên dịch dự án của bạn bình thường (sử dụng Build, không phải Build & Go).

  3. Trong build/Release-iphoneosthư mục bạn sẽ có một gói ứng dụng. Sử dụng phương pháp ưa thích của bạn để chuyển ứng dụng này sang / Ứng dụng trên thiết bị.

    scp -r AccelerometerGraph.app root@jasoniphone:/Applications/

  4. Hãy cho SpringBoard biết ứng dụng mới đã được cài đặt:

    ssh mobile@jasoniphone.local uicache

    Điều này chỉ phải được thực hiện khi bạn thêm hoặc xóa ứng dụng. Các ứng dụng cập nhật chỉ cần được khởi chạy lại.

Để giúp cuộc sống của bạn dễ dàng hơn trong quá trình phát triển, bạn có thể thiết lập xác thực khóa SSH và thêm các bước bổ sung này làm bước xây dựng tùy chỉnh trong dự án của bạn.

Lưu ý rằng nếu bạn muốn xóa ứng dụng sau này, bạn không thể thực hiện thông qua giao diện SpringBoard tiêu chuẩn và bạn sẽ cần sử dụng SSH và cập nhật SpringBoard:

ssh root@jasoniphone.local rm -r /Applications/AccelerometerGraph.app &&
ssh mobile@jasoniphone.local uicache

2
Của tôi sẽ không xây dựng - Xcode ngay lập tức gây ra lỗi ký mã ngay khi tôi cố gắng xây dựng ...
Dành hết

1
@ Rev316 uicachesẽ ở đó nếu bạn đã uikittoolscài đặt gói.
Jason phong

Tôi đang theo dõi bạn nhưng đã gặp lỗi này: stackoverflow.com/questions/2161877/ từ
hungbm06

Ngoài ra, bạn muốn thiết lập một cặp khóa riêng / công khai trên ssh để làm cho mọi thứ không có mật khẩu
conradev

2
Còn hồ sơ dự phòng thì sao? Có cách nào để có được một cái mà không cần đăng ký chương trình dành cho nhà phát triển không?
Teodor Kostov

18

Có, một khi bạn đã tham gia Chương trình dành cho nhà phát triển iPhone và đã trả cho Apple 99 đô la, bạn có thể cung cấp các ứng dụng của mình trên tối đa 100 thiết bị iOS.


2
Tại sao có giới hạn cài đặt 100?
Marcus Leon

25
Vì vậy, mọi người không thể sử dụng điều này như một cách để hoàn toàn bỏ qua cửa hàng Ứng dụng.
willc2

2
Và giới hạn 100 được tính là số thiết bị bạn đã đăng ký năm đó trên Cổng cung cấp iOS, không phải số hiện tại bạn có. Vì vậy, nếu bạn thêm 5 thiết bị và sau đó xóa tất cả 5 thiết bị, bạn có thêm 95 (không phải 100) thiết bị bạn có thể thêm.
Scott C Wilson

1
Nhưng số lượng thiết bị được sử dụng đặt lại sau khi bạn gia hạn chương trình dành cho nhà phát triển của mình.
dgund

1
Và hồ sơ cung cấp đặc biệt sẽ hết hạn sau 3 tháng, do đó bạn không thể phân phối ứng dụng vĩnh viễn ngay cả với bộ (100) thiết bị giới hạn mà bạn đã đăng ký.
Bogatyr

14
  • Xây dựng ứng dụng của bạn
  • Tải lên một trang web crack
  • (Nếu ứng dụng của bạn đủ tốt) phiên bản crack sẽ được đăng sau đó vài phút và sẵn sàng cho mọi người tải xuống ;-)

8

Với sự giúp đỡ của bài đăng này , tôi đã tạo một tập lệnh sẽ cài đặt qua ứng dụng Installous để triển khai nhanh chóng:

# compress application.
/bin/mkdir -p $CONFIGURATION_BUILD_DIR/Payload
/bin/cp -R $CONFIGURATION_BUILD_DIR/MyApp.app $CONFIGURATION_BUILD_DIR/Payload
/bin/cp iTunesCrap/logo_itunes.png $CONFIGURATION_BUILD_DIR/iTunesArtwork
/bin/cp iTunesCrap/iTunesMetadata.plist $CONFIGURATION_BUILD_DIR/iTunesMetadata.plist

cd $CONFIGURATION_BUILD_DIR

# zip up the HelloWorld directory

/usr/bin/zip -r MyApp.ipa Payload iTunesArtwork iTunesMetadata.plist

Cái còn thiếu trong bài viết được tham chiếu ở trên, là iTunesMetadata. Nếu không có điều này, Installous sẽ không cài đặt ứng dụng một cách chính xác. Đây là một ví dụ về iTunesMetadata:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>appleId</key>
    <string></string>
    <key>artistId</key>
    <integer>0</integer>
    <key>artistName</key>
    <string>MYCOMPANY</string>
    <key>buy-only</key>
    <true/>
    <key>buyParams</key>
    <string></string>
    <key>copyright</key>
    <string></string>
    <key>drmVersionNumber</key>
    <integer>0</integer>
    <key>fileExtension</key>
    <string>.app</string>
    <key>genre</key>
    <string></string>
    <key>genreId</key>
    <integer>0</integer>
    <key>itemId</key>
    <integer>0</integer>
    <key>itemName</key>
    <string>MYAPP</string>
    <key>kind</key>
    <string>software</string>
    <key>playlistArtistName</key>
    <string>MYCOMPANY</string>
    <key>playlistName</key>
    <string>MYAPP</string>
    <key>price</key>
    <integer>0</integer>
    <key>priceDisplay</key>
    <string>nil</string>
    <key>rating</key>
    <dict>
        <key>content</key>
        <string></string>
        <key>label</key>
        <string>4+</string>
        <key>rank</key>
        <integer>100</integer>
        <key>system</key>
        <string>itunes-games</string>
    </dict>
    <key>releaseDate</key>
    <string>Sunday, December 12, 2010</string>
    <key>s</key>
    <integer>143441</integer>
    <key>softwareIcon57x57URL</key>
    <string></string>
    <key>softwareIconNeedsShine</key>
    <false/>
    <key>softwareSupportedDeviceIds</key>
    <array>
        <integer>1</integer>
    </array>
    <key>softwareVersionBundleId</key>
    <string>com.mycompany.myapp</string>
    <key>softwareVersionExternalIdentifier</key>
    <integer>0</integer>
    <key>softwareVersionExternalIdentifiers</key>
    <array>
        <integer>1466803</integer>
        <integer>1529132</integer>
        <integer>1602608</integer>
        <integer>1651681</integer>
        <integer>1750461</integer>
        <integer>1930253</integer>
        <integer>1961532</integer>
        <integer>1973932</integer>
        <integer>2026202</integer>
        <integer>2526384</integer>
        <integer>2641622</integer>
        <integer>2703653</integer>
    </array>
    <key>vendorId</key>
    <integer>0</integer>
    <key>versionRestrictions</key>
    <integer>0</integer>
</dict>
</plist>

Rõ ràng, thay thế tất cả các phiên bản của MyApp bằng tên của ứng dụng của bạn và MyCompany bằng tên của công ty bạn.

Về cơ bản, điều này sẽ cài đặt trên bất kỳ thiết bị bẻ khóa nào có cài đặt Installous. Sau khi được thiết lập, điều này dẫn đến việc triển khai rất nhanh, vì nó có thể được cài đặt từ bất cứ đâu, chỉ cần tải nó lên trang web của công ty và tải tệp trực tiếp vào thiết bị và sao chép / di chuyển nó đến ~/Documents/Installous/Downloads.


@ToolmakerSteve Tôi nghi ngờ điều đó, nhưng vì bây giờ bạn có thể tải Ứng dụng iOS miễn phí với bất kỳ ID apple nào miễn phí, tôi không thấy sự cần thiết của nó.
Richard J. Ross III

7

Với Xcode 7 sắp ra mắt, giờ đây bạn có thể cài đặt ứng dụng trên thiết bị của mình mà không cần giấy phép nhà phát triển apple, vì vậy giờ đây có thể bỏ qua cửa hàng ứng dụng và bạn không phải bẻ khóa thiết bị của mình.

Bây giờ mọi người đều có thể tải ứng dụng của mình trên thiết bị Apple.

Xcode 7 và Swift giờ đây giúp mọi người xây dựng ứng dụng dễ dàng hơn và chạy chúng trực tiếp trên thiết bị Apple của họ. Chỉ cần đăng nhập bằng ID Apple của bạn và biến ý tưởng của bạn thành một ứng dụng mà bạn có thể chạm vào iPad, iPhone hoặc Apple Watch. Tải xuống Xcode 7 beta và tự mình dùng thử ngay hôm nay. Thành viên chương trình là không cần thiết.

Trích dẫn từ: https://developer.apple.com/xcode/

Cập nhật:

XCode 7 hiện đã được phát hành:

Phát triển miễn phí trên thiết bị Bây giờ mọi người đều có thể chạy và kiểm tra ứng dụng của riêng mình trên một thiết bị, miễn phí. Bạn có thể chạy và gỡ lỗi các sáng tạo của riêng mình trên máy Mac, iPhone, iPad, iPod touch hoặc Apple Watch mà không mất bất kỳ khoản phí nào và không có chương trình nào để tham gia. Tất cả những gì bạn cần làm là nhập Apple ID miễn phí vào Xcode. Bạn thậm chí có thể sử dụng cùng một ID Apple mà bạn đã sử dụng cho App Store hoặc iTunes. Khi bạn đã hoàn thiện ứng dụng của mình, Chương trình Nhà phát triển của Apple có thể giúp bạn tải ứng dụng trên App Store.

Xem Khởi chạy ứng dụng của bạn trên thiết bị để biết thông tin chi tiết về cài đặt và chạy trên thiết bị.


4

Điều đáng chú ý là nếu bạn đi theo con đường đã bẻ khóa, có thể (rất có thể?) Rằng một bản cập nhật hệ điều hành iPhone sẽ giết chết khả năng chạy các ứng dụng này của bạn. Tôi sẽ đi theo con đường chính thức và trả 99 đô la để được ủy quyền. Ngoài việc không phải lo lắng về việc ứng dụng của bạn bị ghi đè, bạn còn có cơ hội (bạn nên chọn) để phát hành ứng dụng của mình trên cửa hàng.


2

Sau khi sao chép ứng dụng vào iPhone theo cách được mô tả bởi @Jason Weathered, hãy đảm bảo "chmod + x" của ứng dụng, nếu không nó sẽ không chạy.


1

* Thay đổi / Ghi chú để thực hiện công việc này cho Xcode 3.2.1 iPhone SDK 3.1.2

Triển khai thủ công qua WiFi

2) Đảm bảo khởi động lại Xcode sau khi sửa đổi Info.plist

3) Không tìm thấy lệnh "uicache", sử dụng killall -HUP SpringBoard hoạt động tốt với tôi.

Khác sau đó, tôi có thể xác nhận điều này hoạt động tốt.

Người dùng Mac, sử dụng PwnageTool 3.1.4 hoạt động rất tốt cho Bẻ khóa (DL qua torrent).


Ah. Cảm ơn Jason, đánh giá cao bài viết tài liệu tốt! Có thể muốn đề cập đến việc cài đặt gói UIKit Tools của Cydia cho các bản bẻ khóa như tôi.
Rev316

1

Nếu bạn vá lỗi /Developer/Platforms/iPhoneOS.platform/Info.plistvà sau đó thử gỡ lỗi một ứng dụng đang chạy trên thiết bị bằng cách sử dụng hồ sơ cung cấp phát triển thực sự từ Apple, nó có thể sẽ không hoạt động. Các triệu chứng là các thông báo lỗi kỳ lạ com.apple.debugservervà bạn có thể sử dụng bất kỳ số nhận dạng gói nào mà không gặp lỗi khi xây dựng trong Xcode. Giải pháp là khôi phục Info.plist.


0

Bạn có thể sử dụng AppBox , Một ứng dụng mac sử dụng tài khoản dropbox của bạn để phân phối cho bạn các ứng dụng đặc biệt và doanh nghiệp, nếu bạn muốn cài đặt bất kỳ trình duyệt nào khác.

https://github.com/vineetchoudhary/AppBox-iOSAppsWurdyInstallation/release


Tùy chọn

Lưu trữ và tải lên IPA

  • Chỉ cần chọn Project / Workspace để lưu trữ -> tạo ipa -> tải lên ipa -> gửi thư -> và tắt máy mac

Chỉ tải lên IPA

  • Chỉ cần chọn tệp IPA để tải lên ipa -> gửi thư -> và tắt máy mac

Đặc tính

  • Giữ liên kết giống nhau
    • Tính năng này sẽ giữ cùng một url ngắn cho tất cả các ipa trong tương lai được tải lên với cùng một mã định danh gói.
    • Nếu tùy chọn này được bật, bạn cũng có thể tải xuống bản dựng trước đó với cùng một url.
  • Liên kết phân phối ứng dụng E-Mail tự động
  • Tự động tắt máy Mac sau khi phân phối
  • Kích thước tải lên tối đa => Bằng với dung lượng lưu trữ tài khoản Dropbox của bạn
  • Đã hết hạn ứng dụng đã tải lên => Cho đến khi bạn xóa khỏi Dropbox của mình
  • Cài đặt trên mỗi ứng dụng => Không giới hạn
  • bảng điều khiển*

    * Sẽ có trong phiên bản tương lai


AppBox vs Diawi

Ảnh chụp màn hình

Tải lên IPA

Lưu trữ và tải lên IPA

Đang tải lên IPA

Hãy dùng thử tại đây https://github.com/vineetchoudhary/AppBox-iOSAppsWlessInstallation/release

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.