Xcode 6-アドホック配布用の署名証明書/プロビジョニングプロファイルを選択する方法


143

アプリをテスターに​​配布するには、Xcodeを使用します。これは、次のプロセスを使用して行います。

  • アーカイブアプリケーション
  • アドホックに配布
  • プロビジョニングプロファイルを選択
  • .ipaをフォルダーに保存する

しかし、Xcode 6では、このワークフローが少し変更されました。それでもアドホック配布オプションを選択できますが、必要なプロビジョニングプロファイルを選択できません。これにより、使用される署名証明書とプロビジョニングプロファイル構成(プッシュ通知を使用)を制御できなくなります。

デフォルトでは、iPhone distribution署名IDが使用され、次の画像にあるようなある種のXC Ad Hocプロビジョニングプロファイルが生成されIPAのエクスポート ます。プロビジョニングプロファイルの近くの矢印をクリックすると、プロビジョニングプロファイルのあるフォルダーが開きます。

だから私の質問は:

Xcode 6で、アドホック配布で使用されるプロビジョニングプロファイルを選択する方法はありますか?

ありがとう!


これが修正されたかどうか誰かが知っていますか?ビルドをiOS 7ユーザーに配布してプッシュ通知をテストする方法はありますか?
haupman 2014

Xcode 6 GMバージョンを使用、同じ問題...
Chris Chen

したがって、これに対する適切な解決策はまだありませんか?以下の答えは私にとってはうまくいきません。XCプロビジョニングプロファイルを使用できますか?アップルのレビューを待っている1週間を失いたくない。ありがとう
Miles M.

2
今日この問題があり、Xcodeはオンラインで登録したすべてのデバイスを使用する配布プロファイルのみを使用しているようです。
HackingOtter 2014年

1
マジ?プロビジョニングファイルを選択できませんか?私はヨサリアンの生活を信じています。
ajbraus 14年

回答:


52

私は同じ問題に直面していましたが、Xcode 6でプレインストールされたコマンドライン「xcodebuild」ツールスクリプトを使用して解決しました(Xcode 5を再インストールする必要はありませんでした)。

http://www.thecave.com/2014/09/16/using-xcodebuild-to-export-a-ipa-from-an-archive/

端末のスクリプト:

xcodebuild -exportArchive -archivePath $projectname.xcarchive -exportPath $projectname -exportFormat ipa -exportProvisioningProfile 'Provisioning Profile Name'

1
これは私のために働きます!を使用する他の回答にxcodebuild-exportProvisioningProfile切り替えがありませんでした。
バニーヒーロー2014年

6
アプリが拡張機能、埋め込みフレームワーク、またはライブラリを使用している場合、これは正しく機能しないことに注意してください。
clarkcox3 2014年

4
これは私を助けました。ありがとう!したがって、AppleはXCodeを更新して、くだらないXC Provプロファイルを生成しますが、XCodeBuildを忘れます。今回はラッキーです。ああ!アップルが私たちを苦しめる方法!
kamyFC 2014

1
これを受け入れられた回答として設定します。答えはすべてのケースでうまくいくとは限りませんが、特定の変更を加えると、xcodebuildを使用してこの問題を解決できます(これは、CIサーバーで行っていることです)。
Legoless 2014

1
3時間前にxcodebuildがipa形式にエクスポートできることを学んだといいのですが。xcrunに特定のプロビジョニングプロファイルを埋め込もうとするのに多くの時間を費やしましたが、Xcode 6では機能しません。xcodebuildは機能します。ありがとうございました。
Oscar Hierro、

31

App Storeに提出するときに同様の問題が発生しました。アーカイブを作成し、[送信]をクリックすると、Xcodeは、すでに持っていた明示的なプロファイルではなく、デフォルトの "XC com。*"ワイルドカードプロビジョニングプロファイルで自動的に署名したいと考えました。

これを修正するために、Apple開発者ポータルでプロファイルを再生成しました。

1)developer.apple.comにアクセスして、使用するディストリビューションプロビジョニングプロファイルを見つけます。
2)それを選択し、「編集」をクリックして、プロファイルの名前を変更し、「生成」をクリックします。
3)プロビジョニングプロファイルをデスクトップにダウンロードし、Xcode 6アイコンにドラッグします。
4)Xcode 6を再起動します
。5)オーガナイザーウィンドウを開き、作成したアーカイブで[送信]をクリックします。Xcodeは、一般的なプロファイルではなく、明示的なプロファイルを自動的に選択します。


こんにちは、この変更に関する公式声明はありますか?
率直な

私が知っていることではありません。テキストエディタで古いプロファイルと新しいプロファイルを比較して、フォーマットの変更を見つけられるかどうかを確認しましたが、重要なものは何もありませんでした
GingerBreadMane '19

2
私は懐疑的でしたが、これでうまくいきました。Xcode 6に切り替えて、最初のアドホックビルドを出力しようとしたところです
Newtz

これまでは、開発プロビジョニングプロファイルを使用していました。これはまだ使用可能ですか、それとも配布プロファイルを作成する必要がありますか?
Legoless 2014

はい、レゴレス。ビルドをエクスポートするには、ディストリビューションプロファイルを作成する必要があります。デバイスがMacに接続されている場合でも、開発プロファイルを使用してデバッグできます。
codeburn、2014年

27

オーガナイザーに入ったら

  • アドホックビルドを選択し、[エクスポート...]をクリックします。
  • 「アドホック展開用に保存」を選択->次へ
  • ドロップダウンから組織を選択する代わりに、「ローカル署名アセットを使用」を選択->選択
  • 以前と同様に.ipaをエクスポートして保存します。

もちろん、アドホックプロビジョニングプロファイルを生成、ダウンロード、インストールしておく必要があります。


5
この答えとこの答えのおかげで問題を解決しました。プロビジョニングプロファイルは、アプリと同じバンドル識別子を使用する明示的なアプリIDにリンクする必要があります。ワイルドカードアプリIDは機能しません。次に、アプリをエクスポートするときに「ローカル署名アセットを使用する」を選択する必要があります。
Sarah Elan、

@SarahElanは2つの答えを組み合わせて新しい答えを書きます...感謝
YaBoiSandeep

私の意見では、私の経験では、これが最良の答えだと思います。ありがとう。
Basem Saadawy 2016年

17

最後に生成されたプロビジョニングプロファイルが今のところ勝つようです。したがって、必要なプロファイルを再生成してダウンロードするだけで、Xcodeがそれを使用します。

少し優れたアプローチ:ターゲットに目的のprovプロファイルを設定し、コマンドラインを使用してipaをビルドします。これも機能します。

これがスクリプトです、私は使用しています:

#!/bin/sh

# Current as working as of 2014/09/22
# Xcode 6

OUTPUTDIR="$HOME/build"
APPNAME="your-app"
SCHEME="your-app"
APP_WORKSPACE="$HOME/Path/To/your-app.xcworkspace"

rm "$OUTPUTDIR/$APPNAME.ipa" #deletes previous ipa
xcodebuild -workspace "$APP_WORKSPACE" -scheme "$SCHEME" archive -archivePath "$OUTPUTDIR/$APPNAME.xcarchive"
xcodebuild -exportArchive -exportFormat ipa -archivePath "$OUTPUTDIR/$APPNAME.xcarchive" -exportPath "$OUTPUTDIR/$APPNAME.ipa" 

と私の設定:

Xcode設定


もっと簡単な方法はありますか?
ティムールベルニコビッチ2014

MacOS 10.0が原因だと思います。まだベータ版です。
ティムールベルニコビッチ2014

1
XCアドホックプロファイルを使用する場合の問題は、プロファイルに常にすべてのデバイスが含まれることです。手動プロファイルで実行できる一部のデバイスを無効にするオプションがなくなります。
ジョニー2014年

XCアドホックプロファイルは単なる例です。好きなプロファイルを使用できます。
Thorsten

'.ipa'拡張子は-exportPathの引数から削除する必要があります。これは、xcodebuildによって自動的に追加されているためです。
Oscar Hierro、

8

私もこれを理解できませんでした。デフォルトでワイルドカードプロファイルが設定されているAppStoreに送信するときに少しわかりました。

結局、Xcode 6でビルドしてから、Xcode 5のオーガナイザーウィンドウに戻って提出しました。これにより、署名するプロファイルを選択するように求められます。


これが私の回避策です。しかし、私は本当にXcode 5を取り除きたいと思っています。現在、xcrunとコマンドラインを使用することを考えています。
Legoless 2014

私は見つけたすべての提案された解決策を試しましたが、これは実際に機能する唯一のものです。
HunTer DRF 2014

8

Xcode 6(少なくとも6.1私が現在使用している)では、アドホックのエクスポートを実行しているときに、開発者アカウントに登録されているすべてのデバイスを含むプロビジョニングプロファイルがあり、同時にバンドルIDと一致する場合、xcode 6が自動的にスキャンします。いいえの場合、XCプロビジョニングプロファイルを使用します。したがって、たとえばプッシュ通知の目的で独自のプロファイルを使用する場合は、Apple開発者ポータルのプロファイルですべてのデバイスを選択する必要があります。これが、プロファイルを再作成する人がいる人もいればいない人もいる理由だと思います。

ところで、スクリプトを使用してtestflightにエクスポートおよびアップロードできますが、デバイスはそれをダウンロードできません。おそらくどこかで間違った。誰かがその理由を知っている場合は、私に知らせてください。tks


ありがとう!これは私にとってはトリックでした。すべてのデバイスが含まれるようにプロファイルを編集し、アプリを再アーカイブしましたが、ビオラは正しいプロファイルを使用しました。
Erik Villegas、

これはまさにそれであり、それは私にとってバグのように聞こえるか、ベータ版を配布するためにAppleがTestFlightを導入したので、AdHoc配布は適切な注意を得ませんでした。私に起こったのは、@ AlexHsiehが説明したことだけでした。以前と同じようにプロビジョニングプロファイルを作成し、すべての登録済みデバイスのサブセットのみを選択しました。IPAを生成しようとしたときに、Xcodeは有効なプロビジョニングプロファイルを見つけられず、この自動生成されたXCを使用しようとしました(これは私の場合も失敗しました)。修正は、登録したすべてのデバイスをプロビジョニングプロファイルに追加することでした。
jjramos 2014

7

これは私のために働きました:

  1. 「..select a Development Team ..」ダイアログ内の「View Accounts ..」をクリックします。
  2. 「詳細の表示...」をクリックして、XCアドホックプロビジョニングプロファイルを見つけます。
  3. そのプロファイルを右クリックし、[Finderに表示]を選択します。
  4. 選択したプロファイルを削除します。
  5. 手順1のダイアログに戻ります。
  6. 「選択」をクリックします。
  7. プロビジョニングプロファイルの近くの矢印をクリックして、プロビジョニングプロファイルディレクトリを開きます。
  8. ステップ4と同様に、総称プロファイルを再度削除します。
  9. 「[アプリケーション名]をAppleに送信:」ダイアログの「前へ」ボタンをクリックします。
  10. 「アドホック展開用に保存」を再度選択します
  11. 「選択」ボタンをもう一度クリックします。

これで、正しいプロビジョニングプロファイル名が表示されます。


最初のものは試しませんでした。しかし、これは私のために働いた。ありがとう。=]
Glauco Neves

5
私のために働いていませんでした。偶数ステップ4,8でのプロファイルを削除した後、プロファイルを再作成取得し、自動的にステップ11に再び選択
チョン

1
アカウントを選択する必要があるたびに(クライアントにアプリを配信するための複数のアカウントがあるため)、XCで生成されたプロファイルが再作成されるため、機能しません。AppleのPITA。
wuf810 2014年

XCode 6でこれらの手順を実行する前に、Apple開発者アカウントからXC:*プロビジョニングプロファイルを削除する必要があることを追加します。手順4の後、[詳細の表示]ダイアログに戻り、更新ボタンをクリックして、XC:*プロファイルが存在しないことを確認します。また、Thorstenのビルド設定を使用して、正しいプロファイルを選択していることを確認してください。私のために二度働きました。
Android Noob

@Chunおよび(@)wuf810と同じ問題がありました。それらのいまいましい.mobileprovisionsは再作成され続けています。私が行ったのは、「プロビジョニングプロファイル」ディレクトリウィンドウを開いたままにし、(@)user3382891-からの手順を繰り返し、.mobileprovisionレコードを再作成されたのと同じ速さで削除することでした。最終的に、Xcodeは私の正しいプロビジョニングプロファイルを選択しました。今、私は次の問題に
取り掛かってい

6

私はこれのために私のために働く回避策を持っています。

Xcode 6とXcode 5.1.1の両方をインストールしています。Xcode6はアプリケーションにあり、Xcode 5.1.1は別のディレクトリにあります。ビルドを行いたいときは、Xcode 6を使用してアーカイブを作成します。ただし、作成したアーカイブをXcode 5.1.1で表示することもできるため、Xcode 5.1.1を使用して、使用したいプロビジョニングプロファイルを使用してAd Hoc .ipaを配布しています。したがって、Xcode 6を使用してビルドしますが、Xcode 5.1.1を使用して配布します。


この方法でビルドをテストフライトにアップロードできません。
hardik hadwani 14年

ビルドと配布に同じプロビジョニングプロファイルを使用している場合は、ビルドをアップロードして、この方法でフライトをテストできます。ビルドに使用しているプロビジョニングプロファイルが、配布に使用しているものと同じであることを再確認します。
Adam Freeman、


3

@MrPatolからの回答がうまくいきませんでした。Xcode 6.3.2の私の作業シナリオ

メンバーセンター-> iOSプロビジョニングプロファイル

  • アプリをビルドしようとしたときにデフォルトで設定されたプロビジョニングプロファイルを削除します(「XC ...」など)。短い名前でアドホックプロビジョニングプロファイル(本番環境ではない)を作成します。

iPhone構成ユーティリティ->プロビジョニングプロファイル

  • 同じプロビジョニングプロファイル(たとえば、「XC ...」)を削除します

Xcode-> Organizer

  • アドホックビルドを選択し、[エクスポート...]をクリックします。[アドホックデプロイメント用に保存]を選択します->次へ
  • ドロップダウンから組織を選択します
  • 新しいアドホックプロビジョニングプロファイルが自動的に選択されていることを確認する
  • 以前と同様に.ipaをエクスポートして保存します。

2

これが私にとって問題を解決した2つの重要なポイントです。

  • プロビジョニングプロファイルを生成するときは、明示的なアプリIDにリンクする必要がありますは、アプリと同じバンドル識別子を使用ます。ワイルドカードアプリIDは機能しません。
  • アドホック展開用にアプリをエクスポートする場合は、ドロップダウンで[ ローカル署名アセット使用 ]を選択し、[選択]をクリックします。

Xcodeは、アプリIDをアプリのバンドルIDと照合することにより、正しいプロビジョニングプロファイルを見つけます。


1

実際、Ad Hoc Deploymentに固有の新しい配布プロファイルを作成する必要があります。これはクラシックメンバーセンターにありますが、新しいタイプの証明書です。

次に、開発者プロファイルの場合と同じように、アプリのテストに使用できるデバイスを選択できます。

新しく作成された証明書は、通常の方法でオーガナイザーからパッケージをエクスポートするときに使用できます。

あるいは、AppleがiOS 8と共に提供するTestFlightソリューションを使用して、ユーザーがプレリリースにアクセスできるようにすることもできます。

ここに画像の説明を入力してください


はい、でも指摘したとおり、これはiOS8のみを意味します。Appleは、TestflightユーザーにiOS8のみを強制することは特に愚かでした。しばらくの間、最大のインストールベースはまだiOS7なので、Appleはそれを許可しているはずです。
wuf810 2014

1

私は同じ問題を抱えていましたが、最後に解決しました.iOS Devアカウントに登録したすべてのデバイスを含むXcode 6で使用したいプロファイルを再生成し、そのようにしました。エクスポートを選択すると、正しいプロファイルが表示され、スクリプトを使用せずにXcode 6でアドホックエクスポートを実行できます。それが役に立てば幸い。


1
これは機能しますが、iOS開発アカウントに登録されているすべてのデバイスを含むプロビジョニングプロファイルに問題がない場合のみです。:プロビジョニングプロファイル内のデバイスのサブセットのみを使用するには、私はこのテクニックを使用する必要がありましたstackoverflow.com/a/26296138/71262
オラン・デニソン

0

私はこれでしばらく立ち往生していますが、Crashlyticsを使用して解決しました。Xcodeプロジェクトのビルド設定で選択したプロファイルを使用してビルドを配布しました。

それが誰かに役立つことを願っています。


0

ほぼ同じ問題。配布用のアーカイブを作成した後([製品]> [アーカイブ])、アーカイブをエクスポートし([エクスポート...]をクリック)、[エンタープライズデプロイメント用に保存]を選択します。次に「次へ」。次に、「開発チーム」のデフォルト(例:組織名)を選択し、「選択」をクリックします。最後に、Xcodeが自動的に検出した(おそらくオンザフライで作成された)プロビジョニングプロファイルを一覧表示する概要ビューが表示されます。これは間違ったプロビジョニングプロファイル(通常は「XC:*」のようなワイルドカードプロビジョニングプロファイル)である可能性があり、開発者ポータルにすでにワイルドカードプロビジョニングプロファイルがあるために発生する可能性があります。

私はこれにサポートチケットを使用し、このリンクのみを取得しました。 -CH32-SW1。それほど大きな助けではありません。

私を発見したMrPatolのソリューションはまたのために働くエンタープライズ展開だけでなく、私たちのために問題を解決します。最初に開発者ポータルにログインし、自分のアプリに適したプロビジョニングプロファイルを手動で作成しました。次に、手動で作成した新しいプロビジョニングプロファイルをダウンロードしてインストールします。


0

xcode 7では、アドホックプロビジョニングを選択することができませんでした

オーガナイザー-> App Storeとオーガナイザーへのアップロード->検証

しかし、私はオーガナイザを介して選択することができます->エクスポート

編集:

アドホック用にエクスポートした後にアプリをtestFlightのアプリストアにアップロードすると、ここで説明する別の問題が発生しました。したがって、これらの問題の両方に対する解決策は1つです。オーガナイザーを介してそれを選択し、appstoreにアップロードしてtestFlightを利用できるようにするAppStoreプロビジョニングを作成します。


0
  1. Xcode 7の後に-exportOptionsPlistオプションを指定するのは正しい方法だと思います。プロジェクト設定で何を指定しても、GUIエクスポートのように適切なプロビジョニングファイルが選択されます。

xcodebuild -exportArchive -archivePath $ Archive_Path -exportPath $ LOCAL_PACKAGE_DIR -exportOptionsPlist $ Export_Plist_Path

optionPlistファイルは次のようになります。

<dict>
  <key>teamID</key>
        <string>MYTEAMID123</string>
        <key> teamID </key>
        <string>app-store</string>
        <key>uploadSymbols</key>
        <true/>
</dict>


<plist>

アプリストア、エンタープライズ、アドホック、開発が代替

  1. ただし、上記の後に別のエラーが発生する場合があります。

エラードメイン= IDEDistributionErrorDomainコード= 14「該当するデバイスが見つかりません。」UserInfo = {NSLocalizedDescription =該当するデバイスが見つかりません。}

ルビーの問題です。このシェルスクリプトを試してください、xcbuild-safe.sh

xcbuild-safe.sh xxxxNormalOptionsInXcodebuild bla...
  1. ちょっと待って、別の奇妙なエラーが来る。

xcbuild-safe.sh:行62:shell_session_update:コマンドが見つかりません

地獄はshell_session_update何ですか?それを回避しましょう。実際のxcodebuildコマンドの前、つまり60行目または61行目で関数を定義するだけです。

function shell_session_update() { :; }

-4

特定の質問への回答として、使用するプロビジョニングプロファイルを選択する方法はありません。何をしようとしていますか?(つまり、選択したいプロファイルで、自動生成されたプロファイルが許可しないことは何ですか?)


1
たとえば、そのアプリケーションで使用可能なUDIDの特定のリストがあるとします。複数のクライアント用のアプリを開発していますが、それらを混同することはできません。これを回避する方法は確かにありますが、それらはすべて、使用するプロビジョニングプロファイルを単に選択するよりもはるかに複雑です
Lope

使用するプロビジョニングプロファイルを選択する方法は確かにあります。stackoverflow.com/a/26296138/71262
Oran Dennison 14年

1
@Lopeクライアントにアプリの1つと関連付けられたプロファイルがインストールされている場合、クライアントは任意のアプリをインストールできます(他のアプリのプロファイルにデバイスが含まれていない場合でも)。この混乱は、開発者が手動でプロファイルとデバイスリストを指定する必要をなくしたい主な理由の1つです。(つまり、多くの人が手動でプロファイルを指定したい主な理由として、誤った安心感に依存しているようです)
clarkcox3

@ clarkcox3さらに悪いことに、クライアントが他のアプリを見ることができないようにしたい
Lope

@Lope:すべてのアプリをテスターが利用できるようにするアドホックIPAファイルを配布する方法を知りません。つまり、テストするアプリをテスターに​​明示的に提供する必要があります。その物理的な分離により、彼らは他のアプリを使用できなくなります。(彼らが店に行ってすべてを入手できるわけではありませんよね?)テスターがあなたの許可なしにすべてのアプリにアクセスできる別の方法はありますか???
2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.