рд╢реБрдн рджреЛрдкрд╣рд░
рдореИрдВ iOS / Android рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ CURL рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рддрдХ, рд╣рдордиреЗ рд░реЗрдбреА-рдореЗрдб рд▓рд┐рдмрдХрд░реНрд▓ рдмрд┐рд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛:
- рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ iOS рдХреЗ рд▓рд┐рдП
- рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реНрдкреЗрд╕ рдХреЗ рд╕рд╛рде Android рдХреЗ рд▓рд┐рдП
рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрд╕реНрдХрд░рдг рдЕрд▓рдЧ рдереЗ, рд▓реЗрдХрд┐рди рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реЗрдВ рд╕рдорд╛рди рдереАрдВред
рдЖрджреЗрд╢ рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ:
- iOS5.0 рдФрд░ рдКрдкрд░
- Android4.0 рдФрд░ рдКрдкрд░
рдЖрдИрдУрдПрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
CURL рдбрд╛рдЙрдирд▓реЛрдб рдкреГрд╖реНрда рдореЗрдВ iOS рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд▓рд┐рдВрдХ рд╣реИред
рдЗрд╕рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЦреБрдж рдХреЛ рдПрдХ рдРрд╕реЗ рдкреГрд╖реНрда рдкрд░ рдкрд╛рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рд▓реЗрдЦрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ iOS рдХреЗ рд▓рд┐рдП cURL рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред
IOS рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рд╕рд░рд▓ рдЪрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИ:
export CC="__llvm-gcc" export CFLAGS="-arch armv7 -arch armv7s -pipe -Os -gdwarf-2 -isysroot __iPhoneOS.sdk" export LDFLAGS="-arch armv7 -arch armv7s -isysroot __iPhoneOS.sdk" curl -O http://curl.haxx.se/download/curl-7.31.0.tar.gz tar -xzf curl-7.31.0.tar.gz cd curl-7.31.0 ./configure --disable-shared --enable-static --disable-dependency-tracking --host=armv7-apple-darwin make
IOS рдкрд░ HTTPS рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ --with-darwinssl рд╕реНрд╡рд┐рдЪ (рдХреЗрд╡рд▓ iOS5 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдХреЗ рд▓рд┐рдП) рдХреЗ рд╕рд╛рде cURL рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
Android рдирд┐рд░реНрдорд╛рдг
CURL рдкреНрд░рд▓реЗрдЦрди Android рдХреЗ рд▓рд┐рдП рджреЛ рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдзрд┐рдпрд╛рдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
- Android.mk рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдХреЛ Android рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛;
- Android NDK рд╕реЗ "рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдЯреВрд▓рдЪреИрди" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
Android рдХреЗ рд▓рд┐рдП рдмрдирд╛рдПрдБ, рдпрд╣ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореЗрдХ-рдУрд╕реНрдЯрд╛рд▓реЛрди-toolchain.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдХрд░ рдЯреВрд▓рдЪреЗрди рдЬреЗрдирд░реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Android NDK STANDALONE-TOOLCHAIN.html рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЯреВрд▓рдХрд┐рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛ (MAC OS X, Android NDK r8e, android-14, gcc4.7):
$NDK_ROOT/build/tools/make-standalone-toolchain.sh \ --platform=android-14 \ --install-dir=android-toolchain-gcc4.7 \ --toolchain=arm-linux-androideabi-4.7 \ --system=darwin-x86_64
рдирддреАрдЬрддрди, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ android-toolchain-gcc4.7 рдмрд╛рдВрд╣ android-14 рдФрд░ toolchain gcc4.7 рдХреЗ рд▓рд┐рдП sysroot рдХреА рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред
рдЗрд╕ рдЯреВрд▓рдЪреИрди рдХреЛ рдСрдЯреЛрдЯреВрд▓рд╕ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
CURL рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
$NDK_ROOT/build/tools/make-standalone-toolchain.sh --install-dir=toolchain bla-bla-bla export PATH=`pwd`/toolchain/bin:$PATH export CC=arm-linux-androideabi-gcc curl -O http://curl.haxx.se/download/curl-7.31.0.tar.gz tar -xzf curl-7.31.0.tar.gz cd curl-7.31.0 ./configure --disable-shared --enable-static --host=arm-linux-androideabi make
HTTPS рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ OpenSSL рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣рд╛рдБ HTTP, HTTPS рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (MAC OS X, Xcode 4.6.3, iOS SDK 6.1) рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде iOS рдФрд░ Android рдХреЗ рд▓рд┐рдП libcurl рдмрдирд╛рдиреЗ рдХреА рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ:
рдореБрдЦреНрдп рдЪрд░рдг:
- рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдЯреВрд▓рдЪреЗрди рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ
- рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЕрдирдЬрд╝рд┐рдк cURL рдФрд░ OpenSSL рд╕реНрд░реЛрдд
- IOS рдбрд┐рд╡рд╛рдЗрд╕ (armv7, armv7s) рдХреЗ рд▓рд┐рдП CURL рдмрдирд╛рдПрдБ
- IOS рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ (i386) рдХреЗ рд▓рд┐рдП CURL рдмрдирд╛рдПрдБ
- Android рдХреЗ рд▓рд┐рдП OpenSSL рдмрдирд╛рдПрдБ (armv7)
- Android рдХреЗ рд▓рд┐рдП CURL рдмрдирд╛рдПрдБ (armv7)
рд╕рдВрдХрд▓рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдкреНрд░реАрдмрд┐рд▓реНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрдкрдпреБрдХреНрдд рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдЯреВрд▓рдХрд┐рди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ:
CURL рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рд▓реЗрдЦрдиCURL iOS рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛рддрд╛ рд╣реИAndroid NDK рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдЯреВрд▓рдЪрд┐рди