IOS 8デバイス用のアプリのコンパイルを開始するために、xcodeインストールをxcode 6.0.1を使用するように更新しました。何らかの理由で、以下を使用して生成されたアプリファイルに正しく署名できません。
xcodebuild -project GrantM/GrantM.xcodeproj -configuration Release
コードをコンパイルし、問題ないように見えますが、実行中です。
/usr/bin/codesign --verify -vvvv GrantM/GrantM.app
ください:
Program /usr/bin/codesign returned 1 : [GrantM/GrantM.app: resource envelope is obsolete]
Codesign check fails : GrantM/GrantM.app: resource envelope is obsolete
/ usr/bin/codesign -dv GrantM/GrantM.appを使用して、コードがまったく署名されていることを確認します
戻り値:
Executable=Documents/GrantM/GrantM/GrantM.app/GrantM
Identifier=com.grantapps.GrantM
Format=bundle with Mach-O universal (armv7 (16777228:0))
CodeDirectory v=20200 size=647 flags=0x0(none) hashes=23+5 location=embedded
Signature size=4336
Signed Time=24 Sep 2014 12:54:53 pm
Info.plist entries=34
TeamIdentifier=N3KKU46JLY
Sealed Resources version=2 rules=5 files=55
Internal requirements count=1 size=180
他の誰かがOSX 10.9.5とxcode 6.0.1で同様の問題に遭遇しましたか?それとも私は少し愚かで、明らかな間違いをしているだけですか?
さらに、xcodeで生成されたアプリのデバッグバージョンを見つけることができ、署名に成功しましたが、それは配布用に機能しないデバッグバージョンです。 xcodebuildで生成されたアプリファイルに手動で署名することもできません。
事前に助けやアドバイスをありがとう。
Mac OSX 10.9.5以降を使用している場合、V2署名を使用したOSコード署名に問題があります。
したがって、このエラーを回避するには、--no-strict
フラグをcodesign --verify
とともに使用します。
PackageApplicationを使用して.ipaファイルを作成している場合は、
vi PackageApplication
コマンドを使用してPackageApplication Perlスクリプトツールを編集し、--no-strict
パラメーターを渡すようにコードサイン関数のオカレンスを更新します。
例:
$ result = runCmd( "/ usr/bin/codesign"、 "--verify"、"-no-strict"、 "-vvvv"、、$ plugin);
私は同じように直面していて、Apple Dev Teamから次の応答を得ました。問題は私のために解決されました。
コマンドラインツール「codesign」は10.9.5および10.10で変更されました。「-no-strict」オプションをコマンドに渡す必要があります(問題は報告されており、修正される予定です)。この問題を回避するには、コピーを保存してPackageApplicationを変更し、「— no-strict」をcodesignに渡します。次のコマンドを実行すると、PackageApplicationを見つけることができます。xcrun -sdk iphoneos -f PackageApplication
GitリポジトリからiOSアプリの自動ビルドを提供するJenkins CIシステムセットアップがあります。さらに、クラッシュログを監視するために、ビルドをCrashlyticsにアップロード/送信します。
Xcode 6.0 GMではすべてが正常に機能しましたが、Xcode 6.0.1のインストール以降、Crashlyticsへのアップロードは同じエラーで失敗します。私はこれについて彼らの援助を求めています。
私のビルドジョブの一部は、xcodebuildを使用してアプリのアーカイブを生成します。また、そこからPackageApplicationを使用して.ipaファイルを取得します。PackageApplicationはcodesignコマンドを発行し、失敗しません。私もデバッグではなく、配布ビルドを使用しています。
これが、ジョブでアプリをクリーンアップ/アーカイブするために使用するコマンドです。
xcodebuild clean archive -scheme MyScheme -target MyTarget -sdk iphoneos -configuration AdHoc CODE_SIGN_IDENTITY="iPhone Distribution: MyCompany" PROVISIONING_PROFILE="UDID_Of_Provisioning_Profile"
これが、生成されたアーカイブ内からアプリの.ipaファイルをパッケージ化/取得するために使用するコマンドです。
xcrun -sdk iphoneos PackageApplication "Path/to/MyApp.app" -o "/Path/To/MyApp.ipa" --sign "iPhone Distribution: MyCompany" --embed "Path/To/UDID_Of_Provisioning_Profile.mobileprovision"
それらを設定に合わせて変更し、同じエラーが発生するかどうかを確認してください。
このエラーを回避するには、次の手順に従ってください。
私の場合、私はeveryフレームワークとdylibを確認しましたが、どちらが拒否されたかを調べ、この非常にフレームワークまたはdylibを辞任すると、アプリ全体が私のお尻を節約しました。
OS 10.10では、codesign
行の--resource-rules
を削除する必要があります
my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve
metadata=identifier,entitlements","--sign", $opt{sign});