既存のアプリをApple公証のためにアップロードしようとしています。
文書によると https://help.Apple.com/xcode/mac/current/#/dev88332a81e アプリをxcodeアーカイブオーガナイザーで開かなければなりません。
Jenkinsビルドサーバーから生成されたdmgファイルがあります。 xcodeでdmgファイルを開いてアップロードするにはどうすればよいですか?
また、公証に使用できるコマンドラインツールはありますか?
コマンドラインから実行できます。
最初に、.dmgから.appを抽出して再署名し、プロセスのcom.Apple.security.get-task-allow
資格を削除する必要があります(これはデバッグをサポートするためにビルドによって自動的に追加され、通常アーカイブによって削除されます-公証サービスが勝ちましたただし、その資格を持つパッケージは受け入れないため、削除する必要があります)。
使用する.entitlementsファイルは、空のファイルでもかまいません。
また、--options runtime
の使用にも注意してください。これは、アプリが強化されたランタイムでビルドされたことを示し、必須です。
codesign -f -s "Developer ID Application: Name (ID)" --entitlements my-entitlments.entitlements --options runtime MyApp.app
次に、.appを.dmg内に再パッケージ化し、それを再署名する必要があります。
(ここでも--options runtime
フラグを使用していますが、必要かどうかはわかりません)
codesign -s "Developer ID Application: Name (ID)" MyApp.dmg --options runtime
次に、altool
を使用して.dmgを送信します。
(ユーザー名とパスワードは、開発者ポータルのmacOSチームの誰かである必要があります)
xcrun altool --notarize-app -f MyApp.dmg --primary-bundle-id my-app.myapp -u username -p password
アップロードが成功すると、トークンが返されます。
RequestUUID = 28fad4c5-68b3-4dbf-a0d4-fbde8e6a078f
次に、そのトークンを使用して、altool
でステータスを確認できます。
xcrun altool --notarization-info 28fad4c5-68b3-4dbf-a0d4-fbde8e6a078f -u username -p password
最終的に、成功または失敗します。確認し続けてください。応答の「ステータス」フィールドを確認します。これは「成功」です。応答には、エラーのトラブルシューティングに使用できるログファイルも含まれます。
成功すると仮定して、アプリに公証をホチキス止めする必要があります。
xcrun stapler staple MyApp.dmg
そして、spctl
で検証します:
spctl -a -v MyApp.app
MyApp.app:受け入れられました
source =公証された開発者ID
また、検疫フラグを.appに適用して起動しようとすると、新しいGatekeeperダイアログが表示されます。
xattr -w com.Apple.quarantine MyApp.app