Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

MacOS10.15への対応について

62 views

Published on

勉強会で発表した資料。
https://sciencepark.connpass.com/event/169001/

Published in: Software
  • Be the first to comment

  • Be the first to like this

MacOS10.15への対応について

  1. 1. MacOS10.15に対応する開発 サイエンスパーク株式会社 大島 光人 1 Copyright@2019 SciencePark Corp.
  2. 2. ID:aohshima 名前:大島 光人(オオシマ アキト) 東京電機大学理工学部電子機械工学科卒業 今年4月にサイエンスパーク株式会社に就職 プラットフォーム開発部:デバイスドライバ課所属 ⇒デバイスドライバ初心者が学んだ内容を発表していきます。 自己紹介 2
  3. 3. 今回の目標 • MacOS10.15環境に開発環境を移す理由 • 実際に環境を構築してみる • 公証について 3
  4. 4. MacOS10.15環境に開発環境を移す理由 4 • 10.14以降のMacOSではセキュリティチェックが厳格化されてきている ➡ユーザーアプリケーションの公証必須化、カーネル排除の動き 既存アプリや新規アプリ開発を行うのであれば、最新の開発環境が必要となる場面が多 くなっている。
  5. 5. 具体例 5 • MacOS 10.14.5からカーネル拡張のアプリケーションには公証が必要に • MacOS10.15からはユーザーアプリケーションも公証が必要 • 2020年2月からは公証の要件を厳格化 • MacOS10.15からシステムとユーザーのライブラリが分割化 • macOS Catalina 10.15.4 betaから「DriverKit」を利用しないシステム拡張を利 用した場合警告を表示 ➡将来的にはカーネルのアプリケーションが動かなくなる可能性が高い 野良アプリへの公証厳格化の流れ カーネル拡張の制限の流れ
  6. 6. 実際に環境を構築してみる。 6
  7. 7. 構築の流れ 7 1. Appleアカウントを作成 2. デベロッパー登録 3. AppstoreからXcodeをダウンロード 4. 過去バージョンのSDKが必要であれば導入
  8. 8. 過去バージョンのSDK導入① 8 1. 導入したいSDKを含むXCodeデベロッパーサイトからダウンロードする。 今回はSDK10.6を導入予定
  9. 9. 過去バージョンのSDK導入② 9 • DLしたdmgファイル内のXcode.appファイルを右クリックして「パッケージの内容 を表示」を選択 • /Contents/Developer/Platforms/MacOSX.platform/Developer/SDKsにSDKが 入っているので、最新のAppの同フォルダに中身をコピーする • /Contents/Developer/Platforms/MacOSX.platform/Info.plist内の 「MinimumSDKVersion」の値を導入した一番古いSDKに設定する。※ ※Xcodeのバージョンによって不要な場合も。
  10. 10. 公証要件 10 • Enable code-signing for all of the executables you distribute. • Enable the Hardened Runtime capability for your app and command line targets, as described in Enable hardened runtime. • Use a “Developer ID” application, kernel extension, or installer certificate for your code-signing signature. (Don't use a Mac Distribution or local development certificate.) For more information, see Create, export, and delete signing certificates. • Include a secure timestamp with your code-signing signature. (The Xcode distribution workflow includes a secure timestamp by default. For custom workflows, include the --timestamp option when running the codesign tool.) • Don’t include the com.apple.security.get-task-allow entitlement with the value set to any variation of true. If your software hosts third-party plug-ins and needs this entitlement to debug the plug-in in the context of a host executable, see Avoid the Get-Task- Allow Entitlement. • Link against the macOS 10.9 or later SDK.
  11. 11. 署名のつけ方 11 既存バイナリに対して以下のコマンドで署名が付与可能 codesign --force --options runtime --sign "Developer ID Application: Shin ISE (XXXXXXXXXX)" adb ※公証対象のパッケージ内に複数の実行ファイルがある場合は、それぞれに署名が必要
  12. 12. 公証付与方法 12 1. dittoコマンドでパッケージをzip化 2. xcrun altoolコマンドで開発者IDを使用してアップロード 3. Xcrun stapler stapleコマンドで公証をバイナリに付与 4. 公証付与の確認
  13. 13. 公証付けたファイル構成 13
  14. 14. 不明点 14 • SDK10.9以下でビルドしたものでも公証が通る場合がある →IOKITといったカーネルに近いところでなければいける可能性も? • タイムスタンプエラーで公証がエラー吐くときもある →ビルドしなおしたり、署名付け直したりで直ったり・・・
  15. 15. まとめ 15 • 既存のアプリはとりあえずはXCode10以上の環境に移る必要があります。 →動作しなくなる前にある程度先に調査したほうがいい • Appleの動きとしてカーネルを抑制する流れがあるので、覚悟はしておいたほうがい い →新しいドライバ開発としてDriverKitがリリースされるので情報を集めておきましょう。 ・既存のバイナリを最新OSで動かすだけならとりあえずはコマンドで署名+公証で試し てみる
  16. 16. ご清聴ありがとうございました。 P2003-E07-1

×