iOSͷূ໌ॻΘ͔ΓͮΒ͍༻ޠ, ΈΛ͓͞Β͍͢ΔDMM Meetup iOS #1
View Slide
About me• Name: ͔Ή͍• App: MENUS(ϝχϡʔζ)• Favorite: VTuber()• Community: ϖϯΪϯଜ
iOSςετશॻ
I will tell you …
iOSͷূ໌ॻ
ূ໌ॻରԠͷྺ࢙• खಈͰ࡞, ߋ৽(ʙXcode7)• ࣗಈͰ࡞, ߋ৽(Xcode8ʙ)• Automatically manage signing etc.• fastlane(match)ͷొͰূ໌ॻؔ࿈ͷઃఆΛڞ༗Խ(2015ࠒ͔Βීٴ)
ূ໌ॻͷ࡞ɾߋ৽Λҙࣝ͠ͳ͍Ͱ։ൃ͢Δ࣌…
։ൃάϧʔϓ"։ൃάϧʔϓ#։ൃάϧʔϓ$
։ൃάϧʔϓ"։ൃάϧʔϓ#։ൃάϧʔϓ$ূ໌ॻͰτϥϒϧ͕ൃੜͨ͠ࡍʹํͰίϛϡχέʔγϣϯ͕ൃੜ༻ޠ Έͷཧղ͕ඞཁ
ʮԿΛݴ͍ͬͯΔ͔Θ͔Βͳ͍ɻԶͨͪงғؾͰiOSͷূ໌ॻΛ͍ͬͯΔʯ
ΞδΣϯμ1. Θ͔ΓͮΒ͍༻ޠ, ΈΛ͓͞Β͍͢Δ2. (͕࣌ؒ͋Ε) ূ໌ॻؔ࿈ͷTips
ׂѪͤͯ͘͞ͷ1. ެ։伴҉߸ํࣜ, ൿີ伴ͳͲͷ҉߸ॲཧ༻ޠ2. iOSؔ࿈Ҏ֎ͷAppleͷূ໌ॻ• macOS, watchOS, tvOSͳͲͷূ໌ॻ• Apple Pay, VoIP PushͳͲͷServicesূ໌ॻ
1. Θ͔ΓͮΒ͍༻ޠ, Έ1.ిࢠॺ໊, ূ໌ॻؔ࿈༻ޠ2. Xcodeʹొ͢Δূ໌ॻؔ࿈ػೳ3. Certificates, Identifiers & Profilesʹొ͢Δ༻ޠ
1. ిࢠॺ໊, ূ໌ॻؔ࿈༻ޠίʔυॺ໊ূ໌ॻ.certSigningRequestϑΝΠϧ.p12ϑΝΠϧ
iOSͷίʔυॺ໊ূ໌ॻ
ίʔυॺ໊ূ໌ॻ is Կʁ
ιϑτΣΞΛɾൢച͢Δࡍʹར༻ऀ͕ݩͷ֬ೝվ͟ΜݕͰ͖ΔΑ͏ʹ༩͞ΕΔσδλϧॺ໊ͷূ໌ॻ
ର: ιϑτΣΞిࢠূ໌ॻͷछྨͷ1ͭͦͷଞαʔόʔূ໌ॻΫϥΠΞϯτূ໌ॻϝʔϧূ໌ॻ ͳͲͳͲίʔυॺ໊ূ໌ॻ
༻్: σδλϧॺ໊ͷਖ਼ੑΛূ໌Λ͢ΔͨΊσδλϧॺ໊:ར༻ऀ͕ݩͷ֬ೝར༻ऀ͕վ͟ΜΛݕͰ͖ΔΑ͏ʹ͢Δίϯϐϡʔλੈքͷϋϯίίʔυॺ໊ূ໌ॻ
σδλϧॺ໊͚ͩͰྑ͍ͷͰ…ʁ
σʔλ͕ਖ਼͍͠ͷͱূ໌-> ެ։伴(ϋϯί)
σδλϧॺ໊ʮ͜ͷެ։伴(ϋϯί)ਖ਼͍͠ͷ͔…ʯ
ղܾࡦ: ূ໌ॻ
ূ໌ॻཁٻϑΝΠϧ༻్: ূ໌ॻ࡞ͷͨΊʹࣗ: CSRΛAppleʹఏग़Apple: ॺ໊ + ίʔυॺ໊ূ໌ॻΛൃߦCSR.certSigningRequest
ݸਓใަϑΝΠϧPublic-Key Cryptography Standards(PKCS)ͷ12൪ͷن֨ͱͯ͠ఆٛੜʹඞཁͳͷൿີ伴CSRϑΝΠϧ࡞࣌ʹ伴ϖΞ(ެ։伴+ൿີ伴)Λ࡞ͨ͠ਓ͕࡞Δඞཁೝূہ(Apple)͔Βॺ໊͞Εͨূ໌ॻhoge.p12
hoge.p12
༻్:ূ໌ॻͷόοΫΞοϓ: ։ൃ༻ϚγϯͷҾ͖ܧ͗, ަূ໌ॻͷΤΫεϙʔτ: ֎෦ͷCIπʔϧ, Push௨αʔϏεπʔϧνʔϜ։ൃ࣌ʹ֤Ϛγϯ্Ͱൿີ伴͖ূ໌ॻ͕ඞཁhoge.p12
1. Θ͔ΓͮΒ͍༻ޠ, Έ1.ిࢠॺ໊, ূ໌ॻؔ࿈༻ޠ2. Xcodeʹొ͢Δূ໌ॻؔ࿈༻ޠ3. Certificates, Identifiers & Profilesʹొ͢Δ༻ޠ
2. Xcodeʹొ͢Δূ໌ॻؔ࿈༻ޠProvisioning ProfileAutomatically manage signing
Provisioning Profile(ൿີ伴͖)ূ໌ॻ, App ID, ͷUDID※Λؔ࿈͚ͨBundleϑΝΠϧ※ Development, Adhoc༻ͷΈ͜ͷϓϩϑΝΠϧͰॺ໊͠Πϯετʔϧͨ͠ΞϓϦɺϓϩϑΝΠϧʹઃఆ͞Ε͍ͯΔใΛجʹϏϧυͨ͜͠ͱΛอূূ໌ॻ͚ͩͰ࣮ػʹϏϧυor͕Ͱ͖ͳ͍୭ͷͲͷϚγϯ(ূ໌ॻ)Ͱ, Ͳͷʹ͚ͯ࡞ΒΕ͔ͨ(UDID)ͷใ͕ٻΊΒΕΔ
Provisioning ProfileApp ID2छྨExplicit App ID…ಛఆͷBundle IDΛࢦఆͨ͠ɻಛผͳཧ༝͕ͳ͍ݶΓͪ͜ΒΛਪWildcard App ID…ʮ*ʯΛ༻ɻ։ൃ༻Ͱ͍͍ͪͪҰҙͷ͕ෆཁͷ࣌ͳͲূ໌ॻಉ༷ɺ։ൃ༻ͱ༻ͷ2छྨ༻Adhoc / App Storeʹ͔ΕΔ
ίʔυॺ໊ূ໌ॻ
ίʔυॺ໊ূ໌ॻProvisioning Profile"OEPJSEͷυϥΠό͑͋͞Ε0,
༗ঈϥΠηϯεෆཁͰ࣮ػʹΠϯετʔϧ• Xcode7(2015)ΑΓ• Apple ID, ূ໌ॻ, Provisioning Profileඞཁ• ࡞શͯXcode্Ͱ݁• Provisioning Profileͷ༗ޮظݶ7• ҎԼͷಈ࡞ݕূෆՄ• Push Notifications• In-App Purchasing• Apple Pay ͳͲ• App Store ConnectʹΞΫηεͰ͖ͳ͍ͨΊTest Flightར༻ෆՄ
Provisioning ProfileखಈରԠʹΑΔ࣋ͭใ͕มΘΔͱProvisioning ProfileมΘΔ = ߋ৽͕ඞཁݕূͷՃXcodeCIπʔϧ༗ޮظݶ͋Γ(1) ※༗ঈϥΠηϯε
Automatically manage signing
Automatically manage signing• Xcode8(2016)ΑΓ• ূ໌ॻʹؔ͢Δ࡞ۀΛࣗಈͰͬͯ͘ΕΔ• ॺ໊͖ূ໌ॻ࡞/ߋ৽• Provisioning Profile࡞/ߋ৽• AppID࡞/ߋ৽• Apple͜ͷػೳΛਪ
Automatically manage signingϝϦοτ1: p12ϑΝΠϧͷॻ͖ग़͠ग़དྷΔ
Automatically manage signingϝϦοτ2: ͷUDIDొ
Automatically manage signinghttps://devcenter.bitrise.io/code-signing/ios-code-signing/ios-auto-provisioning/
Certificates, Identifiers & Profiles4UBOEBSE &OUFSQSJTF"QQ4UPSF ˓ ❌"QQ4UPSF$POOFDUར༻˓ ❌ධՁ"EIPD˓ ˓৫JOIPVTF❌ ˓ূ໌ॻ༗ޮظݶ අ༻ ԁ ԁϝϯόʔγοϓͷൺֱ
Certificates, Identifiers & Profiles• Adhoc(ධՁ)• StoreͤͣʹΛࢦఆͨ͠ํ๏•100•Adhocొͯ͠ͳ͍ͰΞϓϦ࣮ߦෆՄ
• in-house(৫)• Store͠ͳ͍ํ๏•੍ݶࢦఆ͕ແ͍•୭ͰΞϓϦ࣮ߦՄೳͷͨΊҙඞཁCertificates, Identifiers & Profiles
Certificates, Identifiers & ProfilesCertificates• Software• Development / Distribution• Services• APNs / Pass Type ID / Apple Pay etc…
Certificates, Identifiers & ProfilesCertificates• Software• Development / Distribution• Services• APNs / Pass Type ID / Apple Pay etc…ΞϓϦ͕ଞͷ04ඪ४ͷαʔϏεͱ࿈ܞ͢Δ߹ͦΕূ໌͢Δඞཁ͕͋Δ։ൃͱผʹূ໌ॻ͕ඞཁ
ΞδΣϯμ1. Θ͔ΓͮΒ͍༻ޠ, ΈΛ͓͞Β͍͢Δ2.(͕࣌ؒ͋Ε) ূ໌ॻؔ࿈ͷTips
4UBOEBSEΩʔνΣʔϯΞΫηε-JCSBSZ.PCJMF%FWJDFT1SPWJTJPOJOH1SPpMFT9DPEF"QQMF*%*EFOUJpFST$FSUJpDBUFT%FWJDFT1SPpMFT,FZT.PSF$43࡞ɾఏग़ূ໌ॻ%-11%-#VOEMF*%ొ6%*%6%*%ొ
ݹ͍Provisioning Profileࢀরͯ͠ΔͬΆ͍͔Βআ͍ͨ͠…
ipaϑΝΠϧ͔ΒProvisioning ProfileΛ֬ೝ͢ΔipaϑΝΠϧzipѹॖ͞ΕͨϑΝΠϧunzipίϚϯυͰղౚՄೳ֦ுࢠΛ.zipʹ͢ΔͱFinderͰల։͕Մೳ
ipaϑΝΠϧ͔ΒProvisioning ProfileΛ֬ೝ͢ΔApp/Payload/Hoge.appύοέʔδͷ༰ΛදࣔEmbedded.mobileprovision <- ίϨূ໌ॻؔ࿈ใΛXMLܗࣜͰ֬ೝͰ͖ΔAdHocΞϓϦΛ͕ͨͣͩ͠ΠϯετʔϧͰ͖ͳ͍ͱݴΘΕͨ-> ໊લ͔ΒappΛਪଌͰ͖ͳ͍࣌ʹཱ͔ͭ…ʁ
Conclusion• iOSͷূ໌ॻΛ͓͞Β͍ͯ͠Έ·ͨ͠• ʮͦ͏͍͑ͦ͏ͩͬͨΑͳʯʮͦ͏ͩͬͨΜͩʯͱৼΓฦΔػձʹͳΕ͍Ͱ͢• ͕࣌ؒ͋Εࠓळ͔Βొͨ͠ূ໌ॻͳͲΛհ͔ͨͬͨ͠ͷͰ͕͢…
Thank you!