5

ようやく最初の iPhone アプリをアプリ ストアに送信する (または送信しようとする) ところまで来ましたが、iTunes Connect がアップロードを受け入れるようには見えません。

Web サイト (「アップロードしたバイナリが無効でした。署名が無効であったか、Apple 送信証明書で署名されていませんでした。」) とアプリケーション ローダー (「Info.plist に CFBundleResourceSpecification が含まれていません。 」)。

たくさん読んで(これらのような質問を含む)、再読して、グーグルで調べた後、私は次のように言えます:

  • バンドル ID が AppID と一致していることは確かです。
  • Icon.png があり、これは 57x57 ピクセルの PNG ファイルであり、Info.plist の正確な名前です。
  • シミュレーターではなく、デバイスをビルドしています。
  • 署名プロセスは成功します。ビルド結果はこれをcodesign -vvvv MyApp.app示し、実行は問題がないことを示します。
  • ZIP ファイルへのパスに変な文字はありません。
  • ビルド フォルダーを削除し、バイナリを何度も再ビルドしました。

さて、ビルドされたアプリでは Info.plist にCFBundleResourceSpecificationキーが含まれていないことは事実ですが、その値がどこから来るのか、またはこれを機能させるために他に何を追加する必要があるのか​​ はまったくわかりません。(Apple の検索を使用して見つけることができる唯一のリファレンスは、コード署名のリリース ノートです。しかし、前述のように、コード署名のステップは、私が知る限り成功しています。)

この問題について、まだ言及していない説明に出くわした人はいますか?

編集:ビルドのコード署名ステップからの (少し編集された) 出力、FWIW は次のとおりです。

コード署名のスクリーンショット http://img70.yfrog.com/img70/8988/codesign.png

4

7 に答える 7

10

問題は、アプリでjson-frameworkを使用していて、それをwiki の指示に従って追加の SDK として含めていたことにあるようです。私の推測では、XCode が 1 つ以上の SDK の存在によって混乱したため、本来あるべきデフォルトの ResourceRules.plist を見つけることができなかったのです。

私は2つの解決策を見つけました(とにかく、回避策です):

  1. 「Code Signing Resource Rules Path」ビルド設定 (デフォルトでは空白) を使用して、XCode が使用するファイルへのパスを指定します: $(SDKROOT)/ResourceRules.plist. これは機能し、かなり無害に見えますが、XCode が独自にこれを理解できるはずであるという意味でイライラします。(この解決策は、json-framework に提出された非常に古い問題で見つかりました。)
  2. SDK アプローチを使用しないでください。代わりに、ファイルをプロジェクトに直接インクルードし、#importステートメントをローカル パスで更新します。外部の依存関係をすべてプロジェクト自体に組み込むという一般的な決定を下したため、これが最終的に採用したアプローチです (他の開発者が自分のマシンで起動して実行するための構成を少なくすることができるようにするため)。

これが XCode のバグなのか、json-framework の問題なのかはわかりませんが、念のため後者の問題を報告しました。

更新、2010 年 6 月 30 日:私が提出した問題はクローズされました。Brautaset 氏は、プロジェクトの次のリリース (2.3) で SDK オプションのサポートを削除する予定です。また、コードは現在 GitHubにありますが、Google Code ページは今のところまだ存在しています。

于 2010-02-03T17:25:47.887 に答える
1

私にとっては、すべてのもの(コードデザイン、アイコンファイル...)を確認した後、アプリをアップロードできない場合は、ビルドファイルを削除してみてください。file.app をコピーしてアプリを圧縮することを忘れないでください。

于 2010-12-17T03:27:25.387 に答える
0

このメッセージは別の理由で発生する可能性があります(今朝発見したばかりです)。プロジェクトに複数のInfo.plistsが含まれている場合、アプリケーションアップローダーが「間違った」Info.plistを発見して混乱する可能性があります。

ビルドの自動化された部分がプロジェクトに持ち込まれたバンドルでInfo.plistを作成していたため、これは私に起こっていました。

解決策については、ここまでのヒント:http: //infinite-sushi.com/2010/08/the-case-of-the-missing-cfbundleresourcespecification/

于 2010-08-27T11:39:29.953 に答える
0

私にとっての解決策は、 Apple DeveloperProvisioningPortalで配布証明書を作成することでした。

于 2011-02-10T14:21:34.163 に答える
0

開発、証明書、およびモバイルプロビジョニングとは対照的に、ディストリビューションを使用して構築していますか?

于 2010-02-01T21:33:46.990 に答える
0

コマンドラインからビルド/コピー/圧縮を行っていますか? もしそうなら、シンボリックリンクには細心の注意を払う必要があります。には.app、別のサブディレクトリへのシンボリック リンクとしてサブディレクトリが付属しており、適切なフラグを付けずにコピーまたは圧縮すると、コンテンツがハードコピーされ、コード署名が台無しになります。

これは私に起こりました-そして最悪の部分は、シンボリックリンクなしでアドホックビルドが正常に機能するため、アプリストアのビルドまで問題に気付かないことです.

于 2010-02-03T05:17:31.890 に答える
0

.zip ファイルをアップロードしているとします。

アップロードしたアプリを確認したところ、CFBundleResourceSpecification は署名付きバージョン (つまり、デバイス ビルド) にしかありません。

于 2010-02-03T04:59:03.427 に答える