前置き
iOSアプリのビルドとAppStore審査向けバイナリ作成にJenkinsを使ってビルドしています。
前任者からの引き継ぎで、証明書ファイルの差し替えやら、provisionalファイルの差し替えなど
したときに、Code Sign errorのビルドエラーが連発してそれらを解消したときの覚え書き
エラーその1
[src] $ /usr/bin/security unlock-keychain -p ******** /Users/********/Library/Keychains/login.keychain security: SecKeychainUnlock /Users/*********/Library/Keychains/login.keychain: The user name or passphrase you entered is not correct. FATAL: Unable to unlock the keychain.
macのログインパスワードを変更してらこのエラーがでていた。keychain Accessでlogin.chainを開くとエラーになっていたので、login.chainを工場出荷状態にもどして、もう一度ビルド用に証明書をインンストールすることで解決した。
工場出荷状態に戻すには
keychain access -> preference -> generalタブ -> Reset My Default Keychain
でできる。現在のファイルは削除されずに、リネームされる
Jobの設定の「keychain password」も新しいパスワードに書き換えておく
エラーその2
Code Sign error: No matching codesigning identity found: No codesigning identities (i.e. certificate and private key pairs) matching “iPhone Distribution: ACCESS CO., LTD.” were found. CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 7.0'
証明書の名前とCode Sign Identifierに設定した名前があってない場合におきるようだ。
Jobの設定の Code Sign Identifierを編集して解決
エラーその3
/Users/Shared/Jenkins/Home/workspace/hoge/build/hoge.app: User interaction is not allowed. Command /usr/bin/codesign failed with exit code 1
コマンドラインからkeychain accessへアクセスすると、アクセス許可を求められて
許可がないので失敗、となっていたよう。
KeyChain accessを起動して、
コンソールから以下のようなコマンドでビルドすると、アクセスを許可するか
ポップアップでででるので、常に許可を選択して解決
/usr/bin/xcodebuild -target XXXXX -sdk iphoneos -configuration Release clean build CONFIGURATION_BUILD_DIR=/Users/Shared/Jenkins/Home/workspace/job-name/build "CODE_SIGN_IDENTITY=Hogehoge"