Как правильно разработать iPhone для PowerPC Mac? - PullRequest
4 голосов
/ 19 февраля 2009

Я занимаюсь разработкой iPhone для PowerPC Mac. Как заставить подпись кода работать должным образом, чтобы я мог выполнить сборку на свой iPhone?

iPhone SDK официально не поддерживает PowerPC, но с некоторым беспокойством его можно установить. Смотрите здесь . У меня установлен и работает SDK в Xcode, и симулятор iPhone работает нормально.

Однако я не могу собрать свой iPhone в Xcode - подпись кода - fubar. Некоторые умные люди создали обходные пути здесь . А именно, я использовал сценарий кода, который Тику выложил вместе с некоторыми исправлениями. Это помогло мне добиться определенного прогресса. Код компилируется сейчас, но я все еще получаю ошибку 0xE800003A при попытке развертывания.

Я думаю, что все мои ключи и профили обеспечения настроены правильно. Мой iPhone зарегистрирован для разработки, у меня создан профиль инициализации. В AppID, указанном на портале разработчика, указано MagicNumber.com.website. *, А в моем проекте идентификатор комплекта установлен как com.website. $ {PRODUCT_NAME: identifier}. В настройках проекта имя продукта - HelloWord, а удостоверение подписи кода - мой сертификат разработчика.

Журнал консоли iPhone гласит: Ср. 18 февраля 14:57:55 неизвестный afcd [180]: пользовательский мобильный имеет uid 501

Ср. 18 февраля 14:57:55 неизвестный afcd [180]: режим 0x41e8 Ср 18 фев 14:57:55 unknown mobile_installation_proxy [182]: install_embedded_profile: Пропуск установки встроенного профиля Ср. 18 февраля 14:57:55 неизвестно mobile_installation_proxy [182]: verify_executable: не удалось проверить подпись: e800800e Ср. 18 февраля 14:57:55 неизвестно mobile_installation_proxy [182]: preflight_application_install: не удалось проверить /var/tmp/install_staging.QNk2sD/HelloWorld.app/HelloWorld Ср. 18 февраля 14:57:55 неизвестно mobile_installation_proxy [182]: install_application: Не удалось выполнить предварительную проверку установки приложения Ср 18 фев 14:57:55 неизвестно mobile_installation_proxy [182]: handle_install: установка не удалась

Любая помощь приветствуется!

Ответы [ 4 ]

2 голосов
/ 19 февраля 2009

Как выглядит ваш скрипт для CodeSign? Я использовал его, когда работал над G4: (Оригинальный «/ usr / bin / codesign» должен быть переименован в «/usr/bin/codesign.orig», а затем сохранить этот скрипт как «/ usr / bin /»). codeign ". Вы должны сделать это с помощью" sudo ". Также этот скрипт не работает, если в ваших путевых именах есть пробелы.)

#!/usr/bin/perl 
#
$appDir=$ARGV[$#ARGV];
@tmpAry=split(/\//,$appDir);
$baseAppName=$tmpAry[$#tmpAry];
$baseAppName=~s/\.app$//;
$realAppName="$appDir"."/$baseAppName";

$sign=0;
for($b=0;$b<$#ARGV;$b++) {
if($ARGV[$b] eq "-s") {
$sign=1;
}
}

$mums=`file $realAppName`;
if($sign==1 && $mums=~/executable arm/) {
#print "Signing armv6..\n"; 
$dev="/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/";
$tmp="$appDir"."/tmpbin";
`$dev/lipo -create $realAppName -output $tmp`;
`mv $tmp $realAppName`;
system("/usr/bin/codesign.orig",@ARGV);
`$dev/lipo -thin armv6 $realAppName -output $tmp`;
`mv $tmp $realAppName`;
system("rm $appDir"."/CodeResources");
system("cp $appDir"."/_CodeSignature/CodeResources $appDir"."/CodeResources");
exit 0;
} else {
exec '/usr/bin/codesign.orig',@ARGV;
}
1 голос
/ 06 мая 2009

Также стоит иметь в виду, что XCode может быть немного ненадежным, когда дело доходит до сертификатов, подписи и установки на устройствах (возможно, только на PPC, еще не пробовал на Intel Mac).

Я считаю, что следующие шаги обычно разбираются, когда ранее работающая конфигурация внезапно перестает работать:

  1. Очистить все цели в XCode
  2. Удалить любую установленную версию приложения с вашего устройства (обычная процедура удаления приложения, нажмите маленькую «х»)
  3. Полностью выйдите из XCode и запустите его снова

Если вы никогда не подписывали свое приложение успешно, возможно, существует проблема с реальной конфигурацией, но как только оно заработает, обязательно попробуйте описанное выше, прежде чем беспокоиться о том, что что-то сломалось:)

Надеюсь, это поможет.

1 голос
/ 12 апреля 2009

По состоянию на 12 апреля 2009 года, iPhone Os 2.2.1 исправление скрипта отлично работает на моем iBook G4.

В любом случае, потратив лучшую часть дня на поиск исправлений в Google, я вижу, что есть немало людей, у которых все еще есть проблемы.

Убедитесь, что вы правильно копируете / вставляете, потому что если вы получите ошибку в скрипте и потерпите неудачу, кодовый знак Xcode не заметит и попытается установить приложение в его неподписанном состоянии, сообщив об ошибке при развертывании при строительстве). В моем случае я вставил текст в небольшое окно терминала, разбив несколько строк кода, и мне потребовался один день, чтобы найти ошибку. По крайней мере, теперь у меня есть впечатляющие знания о сертификатах, подписи кода и Xcode ...

Если у вас все еще есть проблемы, это, вероятно, связано с несовпадением идентификатора пакета / appId, в котором находятся тонны сообщений.

1 голос
/ 20 февраля 2009

У меня были те же проблемы, что и у вас - я мог кросс-компилировать и устанавливать приложение на iphone, но оно всегда приводило к сбою с нарушением безопасности.

Чтобы обойти это, мне пришлось сделать джейлбрейк моего телефона и установить пропатченный MobileInstaller (я считаю, что в приложении Cydia теперь есть пакет Installous, который исправляет ваш MobileInstaller. К сожалению, я думаю, что Installous также используется для пиратских приложений). Затем в Info.plist вашего проекта вам нужно добавить следующее:

<key>SignerIdentity</key>
<string>Apple iPhone OS Application Signing</string>

Это позволит вашему телефону работать с неподписанными двоичными файлами, и это единственный способ, который мне удалось разработать на моем компьютере ppc mac.

Я все еще могу покупать приложения в магазине приложений и запускать их без проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...