親愛なるstackoverflowers!
現在、App Store に提出する iPhone アプリを準備しています。これはより大きなクロスプラットフォーム C++ プロジェクトであり、そのためには Xcode を IDE として捨て、より「クロスプラットフォーム タイプ」のビルド システムに移行する必要がありました。今のところ、これは単純な Makefile です。XCode ビルド チェーンを使用するだけで、XCode 自体は使用せずに、開発プロセス中にすべてが正常に機能しました。しかし、ここで、どうすればいいのかよくわからない最後のハードルがあります。
Apple の Application Loader が私の .ipa ファイルについて吐き出した、他の多くのパッケージング関連のエラーの後、この最後のエラーがあります。
"The bundle is invalid. Apple is not currently accepting applications built with this version of the SDK or Xcode."
このエラーが発生したのは明らかに私だけではありませんが、この問題を解決する方法を説明している他のほとんどの記事は、Xcode 設定を介して解決するか、明らかに時代遅れです (2011 以前)。
アプリに関する事実:
2 日前、アプリはまだ iOS 5.0 SDK に対してリンクされていました。エラーが発生したため、アプリを最新の新しい SDK 6.1 にリンクするのに時間を費やしました。それで、それは道を外れていますが、まだエラーです(ただし、アプリローダーの背後にあるサーバーが実行可能ファイルを「解析」して、SDKのどのバージョンにリンクしているかを確認しようとするとは思いませんでした...またはそれを行います、そしてそこにiOS 5.0 へのいくつかの残存リンクはありますか?)
次は、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>Drone game</string>
<key>CFBundleExecutable</key>
<string>game</string>
<key>CFBundleIconFiles</key>
<array>
<string>icon.png</string>
<string>icon@2x.png</string>
<string>icon-iPad.png</string>
</array>
<key>CFBundleIdentifier</key>
<string>[The bundle identifier]</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleIconFile</key>
<string>icon.png</string>
<key>CFBundleName</key>
<string>Drone game</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSMainNibFile</key>
<string>MainView</string>
<key>CFBundleResourceSpecification</key>
<string>ResourceRules.plist</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIApplicationExitsOnSuspend</key>
<true/>
<key>UIStatusBarHidden</key>
<true/>
<key>LSApplicationCategoryType</key>
<string></string>
<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string>
<key>MinimumOSVersion</key>
<string>6.1</string>
<key>LSRequiredIPhoneOS</key>
<true/>
<key>UILaunchImageFile</key>
<string>Default.png</string>
<key>CFBundleGetInfoString</key>
<string></string>
<key>UIDeviceFamily</key>
<array>
<integer>1</integer>
<integer>2</integer>
</array>
</dict>
</plist>
アプリケーション ローダーによって検出されたアプリのプロパティ リストにまだいくつかのオプションが欠落しているか、いくつかの値が間違った方法で入力されていると思います。問題の一部は、Xcode を使用していない場合、Apple の開発者ガイドがあまり役に立たないことです。「使用しない、Xcode で入力」とマークされているキーがたくさんありますが、説明はほとんどありません (例: MinimumOSVersion)。
本質的な質問は次のとおりです。アプリケーション ローダーが使用済みの SDK バージョンをどこから取得するか知っている人はいますか? または、Application Loader は「Xcode バージョン」を気にし、どこかに指定する必要がありますか? どんなアドバイスも素晴らしいでしょう!