アーカイブされたアプリを検証しようとしたときに、「無効な画像パス」という検証メッセージが失敗したことについてよく読んでいます。私の問題は、既にアセット カタログを使用していたのに、何らかの理由で AppIcon イメージ セットが認識されないことです。
Xcode 5 でのアセット カタログのスクリーンショットを次に示します。
現在のターゲット設定は次のとおりです。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>
AppIcon アイコンセットの Contents.json ファイルの内容は次のとおりです。
{
"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) info.plist から CFBundleIcons を削除しました 3) info.plist から CFBundleIcons~ipad を削除しました (これを追加したのは、iOS 7 以降のシェルフにデフォルトのニューススタンド アイコンがアプリに表示されず、これで修正されたためです。4)上記の両方のキーを削除しても、欠落しているキー/値フォーム ニューススタンド アイコン バインディング タイプを含むエラーが発生します。5) iOS 6.0 の代わりに iOS 7.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 ファイルを削除し、新しいファイルを作成して、元の app-info.plist ファイルから XML にコピーしました (これは、機能するオープン ソース プロジェクトに基づいています)。
私が試すことができることへの提案はありますか?ありがとう!