Xcode 4で私のiPhoneアプリのリリースバージョンをビルドしようとしています。それが終了してOrganizerを起動すると、バージョン番号が表示されず、「未指定」とだけ表示されます。これにより、Xcode 4の検証および送信機能を使用できません。
これを修正する方法に関するアイデアはありますか?バージョン番号はプロジェクト設定で設定されているため、問題の原因がわからない。
Info.plistファイルに移動して、「bundle versions string、short」という新しいプロパティを作成し、同じバージョン番号を指定すると、オーガナイザーに表示されます。
詳細については この質問 を参照してください。
受け入れられた答えは、すべてのプロジェクトの問題を完全に解決するわけではありません。すべてが相互に関連するいくつかの問題があり、それらすべてを取り上げます。
関連質問: Xcode 4は静的ライブラリの依存関係からパブリックヘッダーファイルを見つけることができません
関連する質問: Xcode 4の「字句またはプリプロセッサの問題ファイルが見つかりません」
エラーに含まれる可能性があります;ヘッダーファイルの欠落、「字句またはプリプロセッサの問題」
ソリューション:
エラーには以下が含まれる可能性があります;
識別子とバージョンがありません。 「このタイプのアーカイブにはパッケージャが存在しません」
ソリューション:
おかげで、プロジェクトフレームワークの問題を段階的に解決するには、3つのステップが必要でした。
すべての依存関係プロジェクトについて、ターゲットビルド設定/ "インストールをスキップ"プロパティを "[〜#〜] yes [〜#〜]"に設定します
clearすべてのプロジェクトのターゲットビルド設定 "Installation Directory"プロパティ
すべてのプロジェクトについて、すべてのヘッダーを移動セクション「ビルドフェーズ/ビルド設定/ヘッダーのコピー」からPublic/Private to Project
これは、プロジェクトが共有ライブラリの誤って構成されたサブプロジェクトを参照している場合にも発生する可能性があります。プロジェクトで使用する共有ライブラリのXcodeプロジェクトを調べ、ターゲットの「インストールのスキップ」ビルド設定が「はい」に設定されていることを確認します。次に、アーカイブを再構築します。
アドホックディストリビューションビルドでは、これらすべての問題とそれ以上の問題がありました。
また、有効なアイコンを設定して検証警告を削除しましたが、これが作業パッケージに必要かどうかはわかりません。
アーカイブにバージョンや識別子がないという私の問題は、結局単純なものでした。 2つのターゲットを持つ1つのプロジェクトがあります。 2つのスキームがあり、それぞれが1つのターゲットを構築しているので、そう思いました。私のiPadスキームでは、スキームセットアップのビルドターゲットにリストされているiPadおよびiPhoneターゲットがありました。それはそれと同じくらい簡単で、両方のターゲットを構築していて、有効なアーカイブを作成していませんでした。
Xcodeを4.0から4.1に更新した後、バージョン情報が欠落しており、特定の「ターゲット」で空白であることがわかりました。そしてどうやら今バージョン番号がビルドフィールドに表示されていました。
アプリケーションのバージョン番号を「ターゲット」のバージョンフィールドに追加するだけで、info.plistファイルが暗黙的に更新されます。
プロジェクトをアーカイブすると、アーカイブでバージョン番号を確認できるようになります。
そして、あなたは行ってもいいはずです。
HTH。
私は同様の問題を抱えていました。最初はユニバーサルアプリを作成していましたが、最終的にクライアントはiPhone用とiPadアプリ用に別々の価格を求めていました。そこで、xcodeprojectに新しいターゲットを作成しました。
IPadターゲットをアーカイブしたいとき、バージョンが特定されていない問題がありました。これが解決策です。
プロジェクトセットSkip Install to [〜#〜] no [〜#〜]。
アーカイブする場合iPhoneプロジェクトセットSkip Install to [〜#〜] no [〜#〜] in iPhone target、そしてSkip Install to [〜#〜] yes [〜#〜] in iPad target。
アーカイブする場合iPadプロジェクトセットスキップインストール to [〜#〜] yes [〜#〜] in iPhoneターゲット、およびSkip Install to [〜#〜] no [〜#〜] in iPad targetおよびそれは動作するはずです。