2011-07-04 20 views
9

Tôi có một số ứng dụng tôi muốn từ chức với một giấy phép nhà phát triển táo khác nhau,miễn nhiệm một ứng dụng bên ngoài xcode

Vấn đề là, tôi không có mã nguồn, chỉ file ipa, ứng dụng và archiveinfo.plist là nó có thể cho tôi từ chức các ứng dụng nếu tôi không có mã nguồn?

Cảm ơn! Ompah

+0

Bạn có thể thử [www.aironapp.com] (http://www.aironapp.com). Nó có thể tự động tái phát của IPA. Trước tiên, bạn cần định cấu hình tài khoản Apple của mình (tải lên chứng chỉ và khóa cá nhân). – shader

+0

Câu trả lời kịch bản lệnh shell đơn giản: http://stackoverflow.com/a/10905855/190599 – CodeReaper

Trả lời

23

Khả năng thay thế chữ ký trên nhị phân đã ký được tích hợp vào tiện ích mã vạch. Bằng cách đó, nếu chứng chỉ nhà phát triển của bạn hết hạn (vì chúng thường xuyên gây khó chịu), bạn không phải xây dựng lại ứng dụng của mình.

Điều này có thể quan trọng, đặc biệt nếu bạn cần hỗ trợ phiên bản ứng dụng cũ và bạn đã thực hiện thay đổi mã kể từ khi bạn lưu trữ IPA của mình.

Tôi thường sử dụng tập lệnh này. Nó có ích khi giao dịch gỡ lỗi xây dựng IPA với những người có tài khoản nhà phát triển của riêng họ và những người tôi không muốn ghi một khe UDID, và những người không muốn phải tải hồ sơ cấp phép của tôi trên thiết bị của họ.

#!/bin/sh 

TEMPDIR=/tmp/$RANDOM-$RANDOM-$RANDOM 
RESOURCERULES=/tmp/ResourceRules-$RANDOM$RANDOM.plist 
CURRENTDIR=`pwd` 

mkdir -p "$TEMPDIR" 

cat - > "$RESOURCERULES" <<ResourceRulesPlistDelimiter 
<?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>rules</key> 
    <dict> 
     <key>.*</key> 
     <true/> 
     <key>Info.plist</key> 
     <dict> 
      <key>omit</key> 
      <true/> 
      <key>weight</key> 
      <real>10</real> 
     </dict> 
     <key>ResourceRules.plist</key> 
     <dict> 
      <key>omit</key> 
      <true/> 
      <key>weight</key> 
      <real>100</real> 
     </dict> 
    </dict> 
</dict> 
</plist> 
ResourceRulesPlistDelimiter 

unzip -q "$1" -d "$TEMPDIR" || exit 1 
xattr -d -r com.apple.quarantine "$TEMPDIR" 

for APPBUNDLE in "`find "$TEMPDIR" -name "*.app"`"; do 
    codesign --resource-rules="$RESOURCERULES" -f -s "iPhone Developer" "$APPBUNDLE" 
    codesign -dvvvv -r- "$APPBUNDLE" 
done 

cd "$TEMPDIR" 
zip -qr "$TEMPDIR.zip" "Payload" && cd "$CURRENTDIR" && mv "$1" "$1.bak" && mv "$TEMPDIR.zip" "$1" 
cd "$CURRENTDIR" 
rm -rf "$TEMPDIR.zip" 
rm -rf "$TEMPDIR" 
rm -rf "$RESOURCERULES" 
+0

Tuyệt vời, cảm ơn người đàn ông! Nhưng làm cách nào để tôi sử dụng tập lệnh :) Tôi có một ipa với com.something.something và tôi muốn thay đổi thành com.mycompany.something điều đó có thể thực hiện được không? – Ompah

+0

Có. Chỉ cần thay đổi nó trong Info.plist. Tôi đã ký một ứng dụng thử nghiệm với ID com.apple.iBooks ngày hôm qua chỉ để xem điều gì sẽ xảy ra và nó hoạt động tốt. –

+0

Lưu tập lệnh dưới dạng tệp văn bản, đi vào terminal, cd vào thư mục của tập lệnh, chmod + x NameOfFile.sh và sau đó chạy ./NameOfScript.sh IPAName.ipa –

2

Đây là giải pháp hiệu quả và hiệu quả nhất mà tôi đã đưa ra cho đến nay.

  1. Đảm bảo bạn đang sử dụng máy Mac. Quá trình này yêu cầu một ứng dụng cho Mac OSX.

  2. Lấy tệp .ipa, đổi tên tệp thành tệp .zip.

  3. Giải nén tệp zip, bạn sẽ thấy một thư mục có tên là "Tải trọng" chứa tệp .app.

  4. Tải ứng dụng Mac OSX AppResigner đây: http://www.gorbster.net/misc/AppResigner.app.zip

  5. Giải nén ứng dụng. Bên trong thư mục đã giải nén, bạn sẽ thấy Ứng dụng Mac “AppResigner”

  6. Mở ứng dụng này. Nó sẽ yêu cầu bạn chọn một tập tin. Chọn tệp .app mà chúng tôi đã giải nén từ tệp .ipa.

  7. Nó sẽ yêu cầu bạn nhận dạng chữ ký. Mở ứng dụng Mac “Truy cập bằng Keychain”. Các bước mà bạn sẽ thực hiện ở đây có thể thay đổi đôi chút. Mở "đăng nhập" bằng keychain và chọn danh mục "Chứng chỉ"

  8. Tại đây bạn cần tìm chứng chỉ mà bạn muốn từ chức ứng dụng. Ví dụ: có thể là: “Phân phối iPhone: Tên công ty của bạn”, bạn sẽ cần phải có quyền truy cập vào hồ sơ Phân phối của công ty bạn để sử dụng chứng chỉ phân phối. Tôi đã không thử làm điều này với một chứng chỉ phát triển, tôi không biết nếu điều đó sẽ làm việc.

  9. Nhập tên chứng chỉ này chính xác như được hiển thị ở đây vào lời nhắc AppResigner; sao chép/dán không hoạt động chính xác cho tôi.

  10. AppResigner sẽ cho bạn biết rằng ứng dụng đã bị từ chức.

  11. Tìm tệp .app mà bạn đã từ chức (nó giống với tệp trước đó) và nén nó lên. Tôi sử dụng chương trình Mac OSX Keka, nhưng nhiều chương trình có sẵn.

  12. Đổi tên tệp zip thành tệp .ipa.

  13. Xong!

+0

Ngoài ra đối với người dùng sư tử núi, hãy thêm dòng dưới đây: xuất CODESIGN_ALLOCATE = "/ Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate" – Meet

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