IBM Worklight / MobileFirst 6.x / 7.0 - " объект кода вообще не подписан."ошибка с buildtime.sh сценарий
У меня возникла ошибка при загрузке приложения Worklight в iTunes.
Проверка приложения завершается со следующей ошибкой:
Моя проблема заключается в том, что я подал ту же заявку 2 недели назад, и она работала нормально. В сегодняшней версии было изменено только содержимое www/ папки, и она не работает с этой ошибкой.Недействительная Подпись. Объект кода вообще не подписан. Двоичный в путь [MyApp.app/buildtime.sh] содержит недопустимую подпись. Убедиться вы подписали свое заявление сертификатом распространения, а не специальный сертификат или сертификат разработки. Убедитесь, что настройки подписи кода в Xcode являются правильными на целевом уровне (который переопределение любых значений на уровне проекта). Кроме того, убедитесь, что пакет, который вы загружаете, был построен с использованием цели выпуска в Xcode, не имитатор цели. Если вы уверены в настройках подписи кода правильно, выберите "Очистить все" в Xcode, удалите каталог " build в Искателе, и перестроить вашу цель выпуска. За дополнительной информацией, пожалуйста, проконсультируйтесь https://developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html
Я погуглил проблему и нашел кодовый дизайн API Dropbox не работает в Xcode 4.6.3: "объект кода вообще не подписан" , но я попытался добавить --deep вариант и это не сработали для меня.
Может ли это относиться к чему-то с buildtime.sh сценарий? Когда я читаю его, кажется, что он просто обновляет значение buildtime в рабочем свете.файл plist:
#!/bin/bash
# Licensed Materials - Property of IBM
# 5725-I43 (C) Copyright IBM Corp. 2006, 2013. All Rights Reserved.
# US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
# Update buildtime in project
echo -n ${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app/worklight.plist | xargs -0
/usr/libexec/PlistBuddy -c "Set :buildtime `date +"%s"`"
Кроме того, когда я гуглил проблему, я нашел похожую проблему на: https://github.com/AppGyver/steroids/issues/918 и они, кажется, используют гибридные приложения с SH-скриптами, которые заставляют меня думать, что проблема связана с buildtime.sh сценарий.
Я удалил buildtime скрипт, и удален запуск скрипта фазы на моем проекте Xcode, и на этот раз он не дает ошибку.
Безопасно ли это делать?
Кто-нибудь сталкивался с такой же ошибкой в проекте Worklight? Связано ли это с buildtime.sh сценарий или новая политика Apple?
1 ответ:
Сообщение в блоге об этой проблеме в Центре разработчиков МФП: https://developer.ibm.com/mobilefirstplatform/2015/05/01/recent-changes-in-apples-app-submission-process/
Проблема в том, что Apple теперь также проверяет, включены ли файлы .sh в пакет приложений (.ipa файл) подписаны или нет.
В приложении на платформе Worklight/MobileFirst есть один такой файл .sh,
buildtime.sh
, который добавляется в пакет. Нет никаких причин для этого. этот файл должен быть в результирующем пакете. Файл необходим только во время сборки, а не во время выполнения.Существует простой обходной путь: удалить (не удаляйте файл
buildtime.sh
из целевой конфигурации в Xcode (на этапах сборки > копировать ресурсы пакета).Также доступны iFixes (IBM APAR PI39826, Worklight / MFP Studio / CLI только; не требуется изменение сервера) от IBM Fix Центральный :
- 6.0.0.2-IF201504301500
[22]}6.1.0.2-IF201504301501- 6.2.0.1-IF201504301522
- 6.3.0.0-IF201504301455
- 7.0.0.0-IF201504301556
Этот iFix предназначен только для:
- вновь созданные приложения
- приложения, которые удаляют и повторно генерируют свою родную папку
При использовании iFix эти приложения не будут иметь файл
buildtime.sh
в целевом файле конфигурация.Существующие приложения должны просто удалить файл .sh из целевой конфигурации, как указано выше, а затем выполнить повторную сборку в Xcode.