ОШИБКА ITMS-90171: «Недопустимая структура пакета Бинарный файл MyApp.app/libswiftRemoteMirror.dylib не разрешен - PullRequest
0 голосов
/ 15 января 2019

Я получаю ошибку ниже, когда пытаюсь загрузить свой ipa, который построен на Jenkins.

ОШИБКА ITMS-90171: «Неверная структура пакета - двоичный файл ideaPitch.app/libswiftRemoteMirror.dylib» не разрешен. Ваше приложение не может содержать автономные исполняемые файлы или библиотеки, кроме CFBundleExecutable поддерживаемых пакетов. См. Руководство по программированию пакета на https://developer.apple.com/go/?id=bundle-structure для получения информации о структуре пакета приложения iOS. "

Как я могу получить IPA на Дженкинса

   /usr/bin/xcodebuild -list -workspace My_App.xcworkspace
   /usr/bin/xcodebuild -scheme My_App -workspace My_App.xcworkspace -configuration Release clean build CONFIGURATION_BUILD_DIR=${WORKSPACE}/build -UseModernBuildSystem=0
   /usr/bin/xcrun -sdk iphoneos PackageApplication -v "${WORKSPACE}/build/My_App.app" -o ${WORKSPACE}/build/My_App${PRODUCT_VERSION}-${PRODUCT_VERSION}.ipa

   ditto -c -k --keepParent -rsrc "${WORKSPACE}/build/My_App.app.dSYM" ${WORKSPACE}/build/My_App-${PRODUCT_VERSION}-${PRODUCT_VERSION}-dSYM.zip

Когда я получаю IPA на XCode, все работает нормально. Тем не менее, мне нужно сделать это на Дженкинс. Что может вызвать эту проблему? Спасибо.

РЕДАКТИРОВАТЬ Я искал SO и нашел несколько сообщений (как показано ниже). Однако мне нужно выяснить, какую строку или код этой проблемы, чтобы я не мог просто скопировать и вставить ответ. Поэтому, пожалуйста, не отмечайте его как дубликат.

ОШИБКА ITMS-90171: «Недопустимая структура пакета Бинарный файл APP.app/libswiftRemoteMirror.dylib не разрешен

1 Ответ

0 голосов
/ 01 февраля 2019

Проблема заключалась в получении сборки, а затем в нее iPA. Когда я искал, правильным путем было архивирование проекта, а затем получить iPA из архива с помощью xcodebuild.

Правильные две строки кода:

 /usr/bin/xcodebuild -quiet -workspace ${workspaceName} -scheme ${schemeName} -sdk iphoneos -configuration Release archive -archivePath ${WORKSPACE}/build/${appName}.xcarchive
 /usr/bin/xcodebuild -exportArchive -archivePath ${WORKSPACE}/build/${appName}.xcarchive -exportOptionsPlist My_Project_Main_Folder/Resources/${environment}/${environment}_ExportOptions.plist -exportPath ${WORKSPACE}/build

P.S: Существует разница между PackageApplication и Xcodebuild. Xcodebuild нужен файл списка параметров экспорта, который сообщает Xcodebuild, какие параметры он использует, такие как сертификат, файл обеспечения, поддержка биткода и т. Д.

Пример параметров экспорта Plist File:

    <?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>compileBitcode</key>
    <false/>
    <key>destination</key>
    <string>export</string>
    <key>method</key>
    <string>development</string>
    <key>provisioningProfiles</key>
    <dict>
        <key>com.iamdeveloper.myapp.dev</key>
        <string>My App Development Provision</string>
    </dict>
    <key>signingCertificate</key>
    <string>iPhone Developer</string>
    <key>signingStyle</key>
    <string>manual</string>
    <key>stripSwiftSymbols</key>
    <true/>
    <key>teamID</key>
    <string>XXXXXXXXXX</string>
    <key>thinning</key>
    <string>&lt;none&gt;</string>
</dict>
</plist>
...