Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Walletはチケットだけじゃない?オリジナルのプロフィールカードをつくってみる

Avatar for am2525nyan am2525nyan
September 12, 2026
440

 Walletはチケットだけじゃない?オリジナルのプロフィールカードをつくってみる

iOSDC2026 ルーキーズLT

Avatar for am2525nyan

am2525nyan

September 12, 2026

Transcript

  1. 􀊵 実は前から作れた //pass.json { "primaryFields" : [ { "_id" :

    "CBD6019F-1681-46A0-BA22-1C4CB8CA6F29", "key" : "NAME_ID", "textAlignment" : "PKTextAlignmentNatural", "value" : "SAKI HOSONUMA" }, ] }, … ✈TestFlight 10
  2. 􀊵 WWDC26から新しい制作の方法が登場 • Pass Designer • 見た目とフィールドを設計 • 見た目のテンプレを作る •

    Pass Builder • Swiftのライブラリおよび コマンドラインツール • データの差し込みや署名 ✈TestFlight 11
  3. 􀊵 Generic Poster Pass • Header Fields • Birthday •

    Primary Fields • Name • University • Footer • Favorite • Background • Barcode 17
  4. 􀊵 Generic Poster Pass • Header Fields • Birthday •

    Primary Fields • Name • University • Footer • Favorite • Background • Barcode 18
  5. 􀊵 Generic Poster Pass • Header Fields • Birthday •

    Primary Fields • Name • University • Footer • Favorite • Background • Barcode 19
  6. var pass = try PassPackage(url: con guration.templateURL) pass.pass. elds.setValue( "SAKI

    HOSONUMA" , forKey: "NAME_ID") pass.pass. elds.setValue( "Digital Hollywood", forKey: "UNIVERCITY_ID") pass.pass. elds.setValue("Swift/iOS Engineer", forKey: "FOOTER_ID") ✈TestFlight fi fi fi 22 fi 􀊵 Swiftからプロフィールを差し込む
  7. //pass用の証明書を読み込む let passCerti cate = try PassCerti cate( url: con

    guration.passCerti cateURL, password: con guration.certi catePassword ) fi fi fi fi fi 25 fi 􀊵 署名して生成する
  8. //pass用の証明書を読み込む let passCerti cate = try PassCerti cate( url: con

    guration.passCerti cateURL, password: con guration.certi catePassword ) //WWDR中間証明書を読み込む let wwdrCerti cate = try PassCerti cate(url: con guration.wwdrCerti cateURL) //証明書をまとめる let signer = PassSigner(passCerti cate: passCerti cate, wwdrCerti cate: wwdrCerti cate) fi fi fi fi fi fi fi fi fi fi fi fi fi 26 fi 􀊵 署名して生成する
  9. //pass用の証明書を読み込む let passCerti cate = try PassCerti cate( url: con

    guration.passCerti cateURL, password: con guration.certi catePassword ) //WWDR中間証明書を読み込む let wwdrCerti cate = try PassCerti cate(url: con guration.wwdrCerti cateURL) fi fi fi fi fi fi fi fi fi fi fi fi fi //証明書をまとめる let signer = PassSigner(passCerti cate: passCerti cate, wwdrCerti cate: wwdrCerti cate) //署名する _ = try await signer.signPass( pass, destination: outputURL, options: [.zipOutput, .overwriteExisting] ) fi 􀊵 署名して生成する 27
  10. 􀊵 作ってみた感想 • プレビューしながら比較できた • PassにもHuman Interface Guidelinesがある • PassDesignerとPass

    Builderを使うことで、デザインとデータを分けて扱い やすくなった https://developer.apple.com/jp/design/human-interface-guidelines/wallet ✈TestFlight 29
  11. 􀊵 自己紹介 細沼咲希 (sakky) • 👩💻デジタルハリウッド大学3年生 • ピクシブ株式会社でアルバイト • CA

    Tech Lounge • ネイル💅/テーマパーク🎡 ✈TestFlight X • The Composable Architecture • X: am2525nyan 30