質問

を使用するスクリプトを書きました xcodebuild iPhone アプリケーションのアドホック ビルドを生成します。

このスクリプトを編集して、 プロビジョニングプロファイル ビルドに署名するために使用されます。
これにより、自動的に生成される zip にプロビジョニング プロファイルを含めることができます。こうすることで、アドホック テスターに​​アーカイブを自動的に送信し、アプリをインストールするための適切なプロビジョニング プロファイルを持っていることを確認できます。

何か方法はありますか アプリケーションの署名に使用されるプロビジョニング プロファイル名またはファイルを抽出します。:

  • 構築され署名されたアプリケーションから
  • Xcode プロジェクトから (このソリューションは次の Xcode 更新で機能しなくなる可能性があるため、project.pbxproj ファイルを手動で解析したくありません)
  • スクリプト可能なその他の方法

許されざる者 提案された コマンドを使用するには security アプリの署名に使用される証明書の名前を取得します。この情報を取得したら、プロビジョニング プロファイルの名前を見つける方法はありますか?


私が試したことは次のとおりです。

残念ながら、ビルド中の xcodebuild の出力にはこの情報は含まれません。CodeSign ステップ中に、次の行があります。

/usr/bin/codesign -f -s "iPhone Distribution: My name" ...

しかし、これを証明書と照合することはできません。

コードデザインとコマンドの使用を検討しました

/usr/bin/codesign -d -vvv --entitlements - -r - /Users/lv/Desktop/TicTacBoo.app/TicTacBoo
有望そうに見えましたが、必要な情報は得られません。
xcodebuild にも有用なオプションが見つかりませんでした。

役に立ちましたか?

解決

プロビジョニングプロファイルは、アプリケーションの中にのすでにあります。 (あなたのテスターはアプリケーションのコピー内部の使用方法を理解していない場合を除きます。)あなたは、あなたのzipファイルに別のコピーを必要としません。

これは、名前のだYourApplication.app/embedded.mobileprovision

このは、あなたの質問に答えていない元のファイル名が失われているので、しかし、それはあなたの大きな問題を解決するように見えるん。

他のヒント

ターミナルから「security」コマンドを使用できます。残念ながら、少なくとも Snow Leopard を使用した私の MBP では、発行する必要があるコマンドの 1 つでセグメンテーション違反が発生するようです。詳細については、端末から発行してください

man security

とにかく、開発/運用証明書がログイン キーチェーンに保存されていると仮定して、次のことを試すことができます。

security unlock-keychain login.keychain;
security find-certificate -a -c "iPhone Distribution: Your name"  -p > cert.pem;

2 番目のコマンドはセグメンテーション違反 (-c 引数が原因) を引き起こしますが、まさに必要なものであるはずです。あるいは、次のようにすることもできます

security find-identity -p codesigning -v;

アプリケーションのコード署名に使用できるすべての有効な証明書のリストを取得します。各証明書の出力には SHA1 メッセージ ダイジェストも含まれているため、「iPhone Distribution:」に関連付けられた SHA1 ダイジェストと一致するキーチェーン内の証明書を簡単に検索できます。あなたの名前"。ただし、これには、キーチェーン API を使用して独自のアプリケーションを作成する必要があります。

これがお使いの Mac で機能するかどうか、または同じセグメンテーション違反の問題が発生した場合はお知らせください。

編集/更新:他のマシンでもバグを確認し、Apple にバグを報告しました。

どのタイプのファイルのために(構築されたアプリケーションの)_CodeSignature / CodeResourcesのplistファイルで探しについて "mobileprovisionの"?

ここで使用してデフォルト(1)はplistファイルを読むためにそれを行うための方法です。あなたが幸せなデフォルトを維持するために「の.plist」接尾辞を持つ何かにCodeResourcesファイルをコピーする必要が...

cp /build/Distribution-iphoneos/MyApp.app/_CodeSignature/CodeResources /tmp/defaults.plist
defaults read /tmp/defaults files |grep .mobileprovision |grep -v embedded.mobileprovision

(私のテストケースには、そこに2件の.mobileprovisionエントリーがありました。「embedded.mobileprovision」という名前の1を無視する)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top