今年の8月に証明書とプロビジョニングプロファイルを生成しました。これらは両方ともAppleデベロッパポータルで有効(有効期限が切れていない)です。
8.3を対象とするプロジェクトを開くと、次のエラーが発生します。
No certificate matching 'iPhone Developer: My Name (###ABC123)' for team 'Company.'
Select a different signing certificate for CODE_SIGN_IDENTITY, a team that matches your selected certificate, or switch to automatic provisioning.
最初は、「このプロビジョニングプロファイルにはワイヤレスアクセサリの構成がありません」というエラーが表示されましたが、これは必要ありません。プロビジョニングプロファイルを選択解除して再度選択すると、このエラーは解消されました。
開発者ポータルに有効な証明書/プロファイルが表示され、Xcodeが署名を拒否するという、同様の問題が数多く発生しました。
最後に、私がそれに遭遇するたびにトリックを行うように見える何かを見つけました:
•オンラインデベロッパーポータルのCertificates, Identifiers & Profiles
ページを開きます
•Provisioning Profiles -> All
タブに移動します
•作成しようとしているプロファイルを選択し、Edit
をクリックします
•マシンにある証明書を選択し、[生成]をクリックします
•プロファイルをダウンロードして、ドックのXcodeアイコンにドラッグします
•プロジェクトをクリーンアップして再構築します
これがゴールデンフィックスなのか、それとも私の状況でうまくいくのかはわかりませんが、確かにこれを試してみる価値はあります。
アップグレード後に別のコンパイルの問題が発生しました。私を大いに助けたのは、macOS El Capitan10.11.1とSierra10.12.1がルートに制限を課していることを誰かが指摘したことです。コンピューターをリカバリモード(command + R)で再起動し、ユーティリティ->ターミナルから入力しました
csrutil disable
その後、コンピュータを通常どおり再起動し、Apple開発者のWebサイトからダウンロードして、Xcodeが正しくインストールされていることを確認し、関連するプログラムを再インストールしました。これは役立つかもしれません。
Cordovaを使用している場合は、最新バージョンのツールを使用していることを確認するか、この投稿の手順に従ってください: https://dpogue.ca/articles/cordova-xcode8.html 。フック(JSファイル)を追加し、build.jsonファイルを更新する必要があります(または、フックがない場合はルートに追加します)。プロジェクトをクリーンアップして再構築することを忘れないでください。
VisualStudioでApacheCordovaのツールも使用している場合は、ストアにアップロードするときにエラーITMS-90161が発生する可能性があります。私が知っている唯一の回避策は、ステップ4で ここ と説明されています。
次に、「... remote-builds/builds/"xxx-buildnmb"/cordovaApp/plattforms/iOS /」でXcodeプロジェクトを発見し、Xcodeを使用して「ビルド設定」でコード署名IDを定義し、「一般」、「製品」->「アーカイブ」を介してアーカイブを作成し、オーガナイザー-アーカイブに送信しました
Appleの Xcode 8.1リリースノート によると、多くの署名の問題が指摘されています。それらは以下に含まれており、(それほど詳細ではありませんが)推奨される回避策があります:
また、 Xcode署名構成ガイド も含まれています。これには、Xcode8のコード署名プロセスと以前のバージョンとの違いに関する既知の問題と詳細な説明が含まれています。目次を使用して、Signing in Xcode 8セクションにアクセスします。ここで、発生しているCODE_SIGN_IDENTITYエラーを解決する手順を見つける必要があります。
*更新*
2016 WWDCビデオ 署名について。かなり遅いですが、最新のiOSアップデートとXcode8で行われた基本事項とともに変更を確認します。
これをどのように処理したかは、証明書とプロファイルを再生成することでした。
簡単に動作しました。手順2と3の既存の証明書とプロファイルを再インポートするだけで、1のように再作成する必要はなかったと思います。