Xcode 5.1 + каталог активов + архив = AppIcon неверный путь к изображению
Я много читал о сообщении о неудачной проверке "Недопустимый путь к изображениям" при попытке проверить мое архивированное приложение. Моя проблема в том, что я уже использовал каталог ресурсов и по какой-то причине теперь он просто не распознает набор изображений AppIcon.
Вот скриншот моего каталога активов в Xcode 5:
Вот мои текущие настройки Target, и если я щелкну маленькую стрелку вправо для AppIcon, я получу правильные изображения:
Это ошибка, которую я получаю после проверки моего недавно созданного архива:
И нет значка для архива:
Вот мое содержимое файла info.plist:
<?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>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIcons</key>
<dict>
<key>UINewsstandIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>newsstand-app-icon</string>
</array>
<key>UINewsstandBindingEdge</key>
<string>UINewsstandBindingEdgeLeft</string>
<key>UINewsstandBindingType</key>
<string>UINewsstandBindingTypeMagazine</string>
</dict>
</dict>
<key>CFBundleIcons~ipad</key>
<dict>
<key>UINewsstandIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>newsstand-app-icon</string>
</array>
<key>UINewsstandBindingEdge</key>
<string>UINewsstandBindingEdgeLeft</string>
<key>UINewsstandBindingType</key>
<string>UINewsstandBindingTypeMagazine</string>
</dict>
</dict>
<key>CFBundleIdentifier</key>
<string>com.magloft.magazine</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIBackgroundModes</key>
<array>
<string>newsstand-content</string>
<string>remote-notification</string>
</array>
<key>UINewsstandApp</key>
<true/>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UIStatusBarHidden</key>
<false/>
<key>UIStatusBarHidden~ipad</key>
<false/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
А вот содержимое файла Contents.json для набора значков AppIcon:
{
"images" : [
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "iphone-29x29.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "iphone-29x29@2x.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "iphone-40x40@2x.png",
"scale" : "2x"
},
{
"size" : "57x57",
"idiom" : "iphone",
"filename" : "iphone-57x57.png",
"scale" : "1x"
},
{
"size" : "57x57",
"idiom" : "iphone",
"filename" : "iphone-57x57@2x.png",
"scale" : "2x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "iphone-60x60@2x.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "ipad-29x29.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "ipad-29x29@2x.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "ipad-40x40.png",
"scale" : "1x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "ipad-40x40@2x.png",
"scale" : "2x"
},
{
"size" : "50x50",
"idiom" : "ipad",
"filename" : "ipad-50x50.png",
"scale" : "1x"
},
{
"size" : "50x50",
"idiom" : "ipad",
"filename" : "ipad-50x50@2x.png",
"scale" : "2x"
},
{
"size" : "72x72",
"idiom" : "ipad",
"filename" : "ipad-72x72.png",
"scale" : "1x"
},
{
"size" : "72x72",
"idiom" : "ipad",
"filename" : "ipad-72x72@2x.png",
"scale" : "2x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "ipad-76x76.png",
"scale" : "1x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "ipad-76x76@2x.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
},
"properties" : {
"pre-rendered" : true
}
}
Я попробовал следующее без какого-либо успеха:
1) Удалите набор изображений AppIcon и создайте новый с нуля, добавив его в Xcode и перетащив изображения во все заполнители. 2) Удалил CFBundleIcons из info.plist 3) Удалил CFBundleIcons~ipad из info.plist (я добавил этот, потому что мое приложение не показывало иконку газетного киоска по умолчанию в iOS 7+ на полке, и это исправило это. 4) Удалил оба ключа сверху и все еще получил ошибки, в том числе отсутствующий ключ / значение в форме привязки значка киоска. 5) Пробовал ориентироваться на iOS 7.0 вместо iOS 6.0.
Я понятия не имею, почему это произошло внезапно. Я думаю, может быть, потому что я обновил Xcode до версии 5.1 (5B130a)? Я использую OSX 10.9.2, которая является последней верой.
Я нашел этот неверный путь к изображению - на пути не найдено ни одного изображения. CFBundleIcons Xcode 5 и это звучит очень похоже на мой случай. Я удостоверился, что фактический каталог активов является частью цели (см. Первый скриншот), но OP говорит о том, чтобы убедиться, что каждое изображение является частью цели?
ОБНОВЛЕНИЕ: Добавление скомпилированного содержимого Info.plist. Я не мог открыть его, так как он сжат, поэтому я взял скриншот. Я вижу некоторые ссылки на изображения, но не знаю, где их найти в проекте Xcode? Я пытался найти некоторые имена, но это не дает результата.
Мой журнал сборки, кажется, в порядке, но это предупреждение выделяется:
Warning: The Copy Bundle Resources build phase contains this target's Info.plist file 'Baker/Magloft-Info.plist'.
Не уверен, что это значит, но я удалил файл app-info.plist, создал новый и скопировал в XML из исходного файла app-info.plist (это основано на работающем проекте с открытым исходным кодом).
Любые предложения, что я могу попробовать? Спасибо!
1 ответ
Я наконец понял, о чем это все. Судя по всему, XCode не понравилась моя графическая иконка. В последней отчаянной попытке я попытался создать новую графическую иконку, которая была бы очень простой и без теневых эффектов. До сих пор не знаю, было ли это действительной причиной, но все они были приняты без проблем.
Спасибо всем, кто способствовал этой тайне!