web-dev-qa-db-ja.com

Xcode 4アーカイブバージョンが指定されていません

Xcode 4で私のiPhoneアプリのリリースバージョンをビルドしようとしています。それが終了してOrganizerを起動すると、バージョン番号が表示されず、「未指定」とだけ表示されます。これにより、Xcode 4の検証および送信機能を使用できません。

これを修正する方法に関するアイデアはありますか?バージョン番号はプロジェクト設定で設定されているため、問題の原因がわからない。

43
Matt DeWitt

Info.plistファイルに移動して、「bundle versions string、short」という新しいプロパティを作成し、同じバージョン番号を指定すると、オーガナイザーに表示されます。

56
Rahul Choudhary

詳細については この質問 を参照してください。

受け入れられた答えは、すべてのプロジェクトの問題を完全に解決するわけではありません。すべてが相互に関連するいくつかの問題があり、それらすべてを取り上げます。

Xcode 4プロジェクトが静的ライブラリのコンパイルに失敗する

関連質問: Xcode 4は静的ライブラリの依存関係からパブリックヘッダーファイルを見つけることができません
関連する質問: Xcode 4の「字句またはプリプロセッサの問題ファイルが見つかりません」

エラーに含まれる可能性があります;ヘッダーファイルの欠落、「字句またはプリプロセッサの問題」

ソリューション:

  1. 「ユーザーヘッダーパス」が正しいことを確認します
  2. [常にユーザーパスを検索する]をYESに設定します
  3. プロジェクトで「インデックス作成ヘッダー」というグループコールを作成し、ヘッダーをこのグループにドラッグします。プロンプトが表示されたら、ターゲットに追加しないでください

静的ライブラリに依存するXcode 4プロジェクトは有効なアーカイブを作成できません

関連質問: https://stackoverflow.com/questions/5271496/xcode4-ios-4-3-no-packager-exists-for-the-type-of-archive

エラーには以下が含まれる可能性があります;

Xcode 4 project with static library dependancy fails to create a valid archive

識別子とバージョンがありません。 「このタイプのアーカイブにはパッケージャが存在しません」

ソリューション:

  1. すべての依存関係について、「スキップインストール」ビルド設定を「はい」に設定します
  2. ビルドフェーズの「パブリック」ヘッダーを「プロジェクト」に移動する
34
rjstelling

おかげで、プロジェクトフレームワークの問題を段階的に解決するには、3つのステップが必要でした。

  1. すべての依存関係プロジェクトについて、ターゲットビルド設定/ "インストールをスキップ"プロパティを "[〜#〜] yes [〜#〜]"に設定します

  2. clearすべてのプロジェクトのターゲットビルド設定 "Installation Directory"プロパティ

  3. すべてのプロジェクトについて、すべてのヘッダーを移動セクション「ビルドフェーズ/ビルド設定/ヘッダーのコピー」からPublic/Private to Project

8
PixelEdn

これは、プロジェクトが共有ライブラリの誤って構成されたサブプロジェクトを参照している場合にも発生する可能性があります。プロジェクトで使用する共有ライブラリのXcodeプロジェクトを調べ、ターゲットの「インストールのスキップ」ビルド設定が「はい」に設定されていることを確認します。次に、アーカイブを再構築します。

2
cduhn

アドホックディストリビューションビルドでは、これらすべての問題とそれ以上の問題がありました。

  • 静的ライブラリの依存関係があり、アドホックディストリビューションの新しいビルド構成を作成する場合は、ライブラリの依存関係にも一致するビルド構成があることを確認してください。それ以外の場合は、デフォルトでデバッグビルド構成(または最初の構成)を使用し、ビルドにリンクされます。
  • 強調のために、他の回答で明確でない場合は、次のように設定します。Skip Installmainプロジェクトに対してNOに設定し、有効なInstallation Directoryセット。それ以外の場合は、それぞれYESと空に設定する必要があります。

また、有効なアイコンを設定して検証警告を削除しましたが、これが作業パッケージに必要かどうかはわかりません。

2
Shane Breatnach

アーカイブにバージョンや識別子がないという私の問題は、結局単純なものでした。 2つのターゲットを持つ1つのプロジェクトがあります。 2つのスキームがあり、それぞれが1つのターゲットを構築しているので、そう思いました。私のiPadスキームでは、スキームセットアップのビルドターゲットにリストされているiPadおよびiPhoneターゲットがありました。それはそれと同じくらい簡単で、両方のターゲットを構築していて、有効なアーカイブを作成していませんでした。

0
MrMaxP

Xcodeを4.0から4.1に更新した後、バージョン情報が欠落しており、特定の「ターゲット」で空白であることがわかりました。そしてどうやら今バージョン番号がビルドフィールドに表示されていました。

アプリケーションのバージョン番号を「ターゲット」のバージョンフィールドに追加するだけで、info.plistファイルが暗黙的に更新されます。

プロジェクトをアーカイブすると、アーカイブでバージョン番号を確認できるようになります。

そして、あなたは行ってもいいはずです。

HTH。

0
Vishal Chaudhry

私は同様の問題を抱えていました。最初はユニバーサルアプリを作成していましたが、最終的にクライアントは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およびそれは動作するはずです。

0
Josip B.