web-dev-qa-db-ja.com

コードサインなしでxcodebuildを使用してiOSアプリケーションを構築する

私たちは別の会社のためにアプリを構築しています。彼らは署名キーを保持しており、それを私たちと共有したくない。

ビルドと署名を分離することは可能ですが、xcodebuildのコマンドラインでどのように指定しますか?

49
noamtm

コード署名をスキップするには、次のようにコンソールから手動ビルドを実行できます。

xcodebuild clean build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO

さらに、-configuration-targetおよび-sdkパラメータを使用して、ビルド設定を定義します。

Xcode内でコード署名を無効にする方法の詳細な説明を取得するには、 このStack Overflowの回答 を参照してください。

113
Joern

Xcode 7でのコード署名を完全に防ぐために、次のオプションをすべて使用しました。

CODE_SIGN_IDENTITY=""
CODE_SIGNING_REQUIRED="NO"
CODE_SIGN_ENTITLEMENTS=""
CODE_SIGNING_ALLOWED="NO"

最後のオプション、CODE_SIGNING_ALLOWED="NO"はトリックをしているようでした。

16
Ben Flynn

残念ながら、コード署名なしでリリースモードでアプリをビルドするのは難しい場合があります。次のようなビルドシステムからエラーが発生します。

CodeSign error: code signing is required for product type 'Application' in SDK
                'iOS 5.1'

この場合、開発者/チームのワイルドカード(*)署名IDをリリースモードで使用するようにターゲットを構成する必要があります。アプリはビルド時に署名され、顧客に出荷して顧客が再署名できるようにします。これは、ほとんどの外部委託開発者が行うことです。

その後、アプリ内のさまざまなファイルを削除して、コード署名情報を削除できる場合があります_CodeSignatureおよびcodesignツールを使用して、アプリケーションバイナリから情報を削除します。しかし、それがどれほど簡単かはわかりません。それは本当に不可欠ではありません。プロビジョニングプロファイルまたは署名情報に機密情報はありません。

8
Mike Weller

Project Navigatorでプロジェクトを選択し、プロジェクトの[ビルド設定]セクションを開きます(特定のターゲットではありません)。

[コード署名]の下で[コード署名ID]を見つけ、デバッグモードとリリースモードの両方で[Any iOS SDK]を[コード署名しない]に設定します。

3
user3672430