5

XCode を使用せずに iOS アプリケーションのコード署名に使用できる単一ウィンドウの Mac アプリケーションを構築したいと考えています。

クライアントの多くは、「エンタープライズ ライセンス」を使用してアプリを配布しています。毎年彼らは辞任する必要があり、その繰り返しの作業です。彼らの要件は次のとおりです

  1. アプリは APNS を利用します
  2. エンタープライズ ライセンスを共有したくない
  3. バンドル識別子は、証明書で署名する際に置き換え可能である必要があります
  4. キーチェーンに同じ名前の証明書があります

ユーザーインターフェースには次のフィールドがあります

  1. *.ipa ファイルへのパス
  2. *.mobileprovision ファイルへのパス
  3. キーチェーン名 (同じ名前の証明書が複数存在する場合はオプション)
  4. 証明書の名前 (iPhone 開発者: .....)

アプリケーションの共同署名はできましたが、辞退してからAPNS が機能しません。または、bundleIdentifier を使用してアプリケーションを辞任することはできませんか?

また、使いやすさを向上させるために、キーチェーンで使用できる証明書のドロップダウン リストの機能を追加したいと考えています。どんなポインタでも大きな助けになるでしょう

4

2 に答える 2

2

プッシュ通知を有効にするには、アプリ ID とプロビジョニング プロファイルが構成され、Apple によって (ポータルを通じて) 許可されている必要があります。サインインするだけでは、任意のプロビジョニング プロファイル/アプリに対して有効にすることはできません。

コード署名中、アプリが使用するものに応じて、権利のapns-environmentキーをsandbox/に設定する必要があります。productionこれは、実行時に iOS によって検証されます。サードパーティの署名ツールを使用している場合は、プロビジョニング プロファイルから値を取得する必要があります。apns-environment

デバッグのために、次のコマンドを使用して .app の資格を確認できます。

codesign -d --requirements - --entitlements - path/to/My.app

値が表示されるはずですapns-environmentが、プロビジョニング プロファイルでそれが有効になっている場合のみです。

于 2013-03-13T15:38:26.240 に答える
1

この同じ問題の調査に数時間を費やしたところ、次のプロセスが発見されました。Mike のコメントをさらに一歩進めて、同じ問題に直面している他のユーザーに次のコマンド ラインを提供します。

プロダクション プッシュ通知用に構成されたバンドル ID を使用して、xcode リリース ビルドから始めています。

ターミナル ウィンドウから次のコマンドを実行します。「CAPITAL SECTIONS」を自分の情報に置き換えます。

codesign -d --entitlements -"NAME OF APP.app" > entitlements.plist

codesign -f -s "SIGNING CERTIFICATE NAME" --resource-rules "NAME OF APP.app/ResourceRules.plist" --entitlements entitlements.plist "NAME OF APP.app"

これが、この同じ問題に苦しんでいる次の人に役立つことを願っています

于 2013-12-12T18:54:15.790 に答える