Slide 1

Slide 1 text

swift build ͱ Xcode Ͱͷ Build ͷҧ͍ 2016/06/27 Tokyo Server-Side Swift Meetup #4 @dealforest Toshihro Morimoto

Slide 2

Slide 2 text

ࣗݾ঺հ

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

ࠓ೔͓࿩͢͠Δ͜ͱ 1. Slimane Λ Build Ͱ͖ΔΑ͏ʹͳΔ·Ͱ 2. swift build ͱ Xcode Ͱͷ Build ͷҧ͍

Slide 5

Slide 5 text

1. Slimane Λ Build Ͱ͖ΔΑ͏ʹͳΔ·Ͱ

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Slimane ͸ express ϥΠΫͳ server side swift framework Ͱ͢

Slide 8

Slide 8 text

׆ൃʹ։ൃ͞Ε͍ͯ·͢

Slide 9

Slide 9 text

ͱΓ͋͑ͣ Terminal ͔Βͱ Xcode ͔Β Build Ͱ͖ΔΑ͏ʹ͠·ͨ͠

Slide 10

Slide 10 text

ͦͷաఔΛͲ͏ͧ

Slide 11

Slide 11 text

ઌʹݴ͓ͬͯ͘ͱ slimane-cli ͔Β࡞ͬͨϓϩδΣΫτ ͩͱ Build Ͱ͖·ͤΜͰͨ͠

Slide 12

Slide 12 text

ࠓ͸ͳ͓ͬͨΈ͍ͨͰ͢ 2016/06/27 18:00

Slide 13

Slide 13 text

https://github.com/noppoMan/Slimane/wiki/Install-Guide

Slide 14

Slide 14 text

ࣄલ४උ • DEVELOPMENT-SNAPSHOT-2016-05-31-a ΛΠϯετʔϧ (commit ʹΑͬͯมΘΓ·͢) $ brew install libuv openssl hiredis $ brew link libuv --force $ brew link openssl --force $ brew link -f hiredis

Slide 15

Slide 15 text

αʔόʔΛىಈ $ git clone https://github.com/noppoMan/Slimane-Fullstack $ cd Slimane-Fullstack $ make debug $ ./.build/debug/Example Slimane server is listening at 0.0.0.0:3000

Slide 16

Slide 16 text

֬ೝ $ curl http://localhost:3000 Welcome to Slimane!

Slide 17

Slide 17 text

Terminal ͔Β͸؆୯Ͱ͢Ͷ

Slide 18

Slide 18 text

࣍͸ Xcode ͰϏϧυͯ͠Έ·͠ΐ͏

Slide 19

Slide 19 text

swift package generate-xcodeproj

Slide 20

Slide 20 text

͜ΕΛ࣮ߦ͢Δͱ Xcode ͷϓϩδΣΫτ͕࡞ΒΕ·͢

Slide 21

Slide 21 text

Xcode Ͱ SlimaneFullstack Λ։͘ $ swift package generate-xcodeproj $ open SlimaneFullstack.xcodeproj

Slide 22

Slide 22 text

஫ҙࣄ߲ͱͯ͠͸ Xcode 7.3.1 Ͱ͋Δඞཁ͕͋Γ·͢

Slide 23

Slide 23 text

஫ҙࣄ߲ͱͯ͠͸ Xcode 7.3.1 Ͱ͋Δඞཁ͕͋Γ·͢

Slide 24

Slide 24 text

ʂʂʂʂʂʂʂʂʂ

Slide 25

Slide 25 text

ͳΜͱͦͷ··Ͱ͸ Build Ͱ͖·ͤΜ

Slide 26

Slide 26 text

൵͍͠Ͱ͢Ͷ

Slide 27

Slide 27 text

ͱ͍͏Θ͚Ͱ ยͬ୺͔ΒΤϥʔΛ௵͍͖ͯ͠·͢

Slide 28

Slide 28 text

Xcode Ͱ Build Ͱ͖ΔΑ͏ʹͳΔ·Ͱ 1. 'uv.h' file not found 2. ld: library not found for -luv for architecture x86_64 3. ld: library not found for -lCURIParser for architecture x86_64

Slide 29

Slide 29 text

1. 'uv.h' file not found ͜Ε͸ઌ΄Ͳ Homebrew ͰೖΕͨϥΠϒϥϦͷ ϔομʔ͕ݟ͔ͭΒͳ͍ͷ͕ݪҼͰ͢

Slide 30

Slide 30 text

Header Search Paths ʹ /usr/local/include Λ௥Ճ

Slide 31

Slide 31 text

2. ld: library not found for -luv for architecture x86_64 ͜Ε͸ઌ΄Ͳ Homebrew ͰೖΕͨϥΠϒϥϦͷ dynamic library ͕ݟ͔ͭΒͳ͍ͷ͕ݪҼͰ͢

Slide 32

Slide 32 text

Library Search Paths ʹ /usr/local/lib Λ௥Ճ

Slide 33

Slide 33 text

3. ld: library not found for -lCURIParser for architecture x86_64 ͜Ε͸ SPM Ͱґଘ͍ͯ͠ΔϥΠϒϥϦʹؚ·ΕΔ dylib ͕Ϗϧυ࣌ʹղܾͰ͖ͳ͍ͷ͕ݪҼͰ͢

Slide 34

Slide 34 text

3. ld: library not found for -lCURIParser for architecture x86_64 ͪΌΜͱղܾ͕࣌ؒͳ͔ͬͨͷͰɹɹɹɹɹɹɹ ࢑ఆରԠͱͳΓ·͢ Ұ౓ swift build Λ࣮ߦ͓ͯ͘͠ඞཁ͕͋Γ·͢ (slimane Ͱ͍͏ make debug ͷ͜ͱͰ͢)

Slide 35

Slide 35 text

Library Search Paths ʹ $(SRCROOT)/.build/debug Λ௥Ճ

Slide 36

Slide 36 text

͜ΕͰΊͰͨ͘ Build Ͱ͖ΔΑ͏ʹͳΓ·ͨ͠

Slide 37

Slide 37 text

ΊΜͲ͍͘͞Ͱ͢Ͷ

Slide 38

Slide 38 text

Ͳ͏ͯ͜͠ͷΑ͏ͳ͕ࠩ ͰΔͷ͔ݟ͍͖ͯ·͠ΐ͏

Slide 39

Slide 39 text

2. swift build ͱ Xcode Ͱͷ Build ͷҧ͍

Slide 40

Slide 40 text

swift build • ࣮ߦόΠφϦΛࣗ෼Ͱ࣮ߦ (./.build/debug/Example) • $(SRC_ROOT)/.build ௚ԼʹதؒϑΝΠϧ͕Ͱ͖Δ • ґଘϥΠϒϥϦ͸ swiftc ͰίϯύΠϧ͠ -emit-executable Ͱ link ͍ͯ͠Δ

Slide 41

Slide 41 text

Xcode • Xcode Ͱ target Λબ୒͍ͯ Run Ͱ࣮ߦ • DerivedData ௚ԼʹதؒϑΝΠϧ͕Ͱ͖Δ • ґଘϥΠϒϥϦ͸ dynamic framework Ͱ link ͍ͯ͠Δ • xcodebuild Ͱ΍ͬͯ΋ಉ͡ (CONFIGURATION_BUILD_DIR΋ಈ͘) xcodebuild build -project "SlimaneFullstack.xcodeproj" ɹɹ-scheme "Example" -configuration Debug ɹ ɹɹ-sdk macosx10.11 CONFIGURATION_BUILD_DIR=build

Slide 42

Slide 42 text

so ͱ dylib ͱ framework ͸޿ٛͰಉ͡ (ͨͿΜ…)

Slide 43

Slide 43 text

/Applications/Xcode-7.3.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -dynamiclib -isysroot /Applications/Xcode-7.3.1.app/Contents/Developer/Platforms/MacOSX.platform/ Developer/SDKs/MacOSX10.11.sdk -L/Users/dealforest/Library/Developer/Xcode/DerivedData/ SlimaneFullstack-bahaftgmcprmzfgeqgmkpxlvnuog/Build/Products/Debug -F/Users/dealforest/Library/Developer/ Xcode/DerivedData/SlimaneFullstack-bahaftgmcprmzfgeqgmkpxlvnuog/Build/Products/Debug -filelist /Users/ dealforest/Library/Developer/Xcode/DerivedData/SlimaneFullstack-bahaftgmcprmzfgeqgmkpxlvnuog/Build/ Intermediates/SlimaneFullstack.build/Debug/URI.build/Objects-normal/x86_64/URI.LinkFileList -install_name @rpath/URI.framework/Versions/A/URI -Xlinker -rpath -Xlinker /Library/Developer/Toolchains/swift- DEVELOPMENT-SNAPSHOT-2016-05-31-a.xctoolchain/usr/lib/swift/macosx -mmacosx-version-min=10.10 - fobjc-link-runtime -L/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2016-05-31- a.xctoolchain/usr/lib/swift/macosx -Xlinker -add_ast_path -Xlinker /Users/dealforest/Library/Developer/Xcode/ DerivedData/SlimaneFullstack-bahaftgmcprmzfgeqgmkpxlvnuog/Build/Intermediates/SlimaneFullstack.build/ Debug/URI.build/Objects-normal/x86_64/URI.swiftmodule -framework C7 -framework CURIParser -framework String -single_module -Xlinker -dependency_info -Xlinker /Users/ dealforest/Library/Developer/Xcode/DerivedData/SlimaneFullstack-bahaftgmcprmzfgeqgmkpxlvnuog/Build/ Intermediates/SlimaneFullstack.build/Debug/URI.build/Objects-normal/x86_64/URI_dependency_info.dat -o / Users/dealforest/Library/Developer/Xcode/DerivedData/SlimaneFullstack-bahaftgmcprmzfgeqgmkpxlvnuog/ Build/Products/Debug/URI.framework/Versions/A/URI

Slide 44

Slide 44 text

ld: library not found for -lCURIParser for architecture x86_64

Slide 45

Slide 45 text

Ͳ͏ͯ͠ -framework Ͱ link ͠Α͏ͱ ͍ͯ͠Δͷʹ -l Λ͢Δͷ͔

Slide 46

Slide 46 text

dylib ͱ framework ͕བྷΉͱ Ͳ͏΋͏·͍͜ͱ͍͔ͳ͍Έ͍ͨ

Slide 47

Slide 47 text

෼͔Δਓ͕͍Ε͹ڭ͍͑ͯͩ͘͞

Slide 48

Slide 48 text

Ұॹʹߟ͑·͠ΐ͏

Slide 49

Slide 49 text

·ͱΊ ෳࡶͳґଘΛղܾ͢Δ৔߹͸ swift build Λૉ ௚ʹ࢖ͬͯ Build ͨ͠΄͏͕޾ͤʹͳΕ·͢ Xcode Ͱ΍ͬͯ΋͍͍Ͱ͕͢஍ཕ͸ଟ͍Ͱ͢

Slide 50

Slide 50 text

·ͱΊ swift package generate-xcodeproj ͕ ݡ͘ͳΔͷΛ଴͔ͭ PR ૹΓ·͠ΐ͏

Slide 51

Slide 51 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠