Apportable SDK - Android рдХреЗ рд▓рд┐рдП рдЙрджреНрджреЗрд╢реНрдп-рд╕реА / рдХреЛрдХреЛ рдЯрдЪ

Apportable SDK рдПрдХ рдРрд╕рд╛ рдЙрддреНрдкрд╛рдж рд╣реИ рдЬреЛ рдЖрдкрдХреЛ Android рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ iOS рдХреЗ рд▓рд┐рдП Objective-C / рдХреЛрдХреЛрдЖ рдЯрдЪ рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдПрдХ рдЧреЗрдо (рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди) рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдкреВрд░реНрдг рдЯреВрд▓рдХрд┐рди (рдХрдВрдкрд╛рдЗрд▓рд░, рдбрд┐рдмрдЧрд░, рд▓рд┐рдВрдХрд░ - рдСрд▓-рдСрд▓-рдСрд▓), рд╡рд░реНрдХрд┐рдВрдЧ рдлрд╝рд╛рдЙрдВрдбреЗрд╢рди, рдХреЛрд░рдлрд╝рд╛рдЙрдВрдбреЗрд╢рди, рдпреВрдЖрдИрдХрд┐рдЯ, рдХрдИ рдЕрдиреНрдп рдЖрдИрдУрдПрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИрдВ рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ "рдЯреНрд░рд┐рдлрд╝рд▓" рдЬреИрд╕реЗ рдХрд┐рдХрд┐рдЯ рдФрд░ рд╕реНрдЯреЛрд░рдХреАрдЯ, GooglePlus рдФрд░ рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ) Amazon GameCircle / Appstore)ред

Apportable рдХрд╛ рд▓рдХреНрд╖реНрдп iOS рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХреЛрдб рдмрджрд▓реЗ рдмрд┐рдирд╛, рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ Android рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рджреЗрдирд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдЙрд╕рдХрд╛ рдХреЛрдб рдЖрдзрд╛рд░ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реИред рдХреИрд╕реЗ рдХрдЯ рдХреЗ рддрд╣рдд - cocos2d рдкрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЦрд┐рд▓реМрдирд╛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рд╣рдо Apportable рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ ред

рдкрдВрдЬреАрдХрд░рдг рдХреЗ рдмрд╛рдж , рд╣рдореЗрдВ SDK рдЕрдкрд╕реНрдлреАрддрд┐, рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░ рдкрдВрдк рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - Apportable рдкреИрдЪ рдПрдВрдбреНрд░реЙрдЗрдб-рдПрд╕рдбреАрдХреЗ, рдПрдирдбреАрдХреЗ рдФрд░ рдЕрдиреНрдп рднрд╛рд░реА рддреЛрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдпрд╣ рдХрд╣реЗрдЧрд╛:

Toolchain downloaded into /Users/darvin/.apportable/toolchain.
Apportable CLI is successfully installed at /Users/darvin/.apportable/SDK/bin/apportable
If you're using the default shell, add the Apportable CLI to your PATH using:
(echo; echo 'PATH="/Users/darvin/.apportable/SDK/bin:$PATH"') >> ~/.bash_profile; source ~/.bash_profile


рддреЛ рд╣рдо рдХрд░рддреЗ рд╣реИрдВ:

 $ echo; echo 'PATH="/Users/darvin/.apportable/SDK/bin:$PATH"') >> ~/.bash_profile; source ~/.bash_profile 


рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдЦрд░рдЧреЛрд╢ рдХреЛ рдбрд┐рдлреНрдпреВрдЬ рдХрд░реЗрдВрдЧреЗ, рдЬреАрдердм рд╕реЗ рдХреБрдЫ рд░реИрдВрдбрдо рдУрдкрди рд╕реЛрд░реНрд╕ рдЧреЗрдо , рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА / рдХреЛрдХреЛрд╕ -2 рдбреА (рдПрдкреЛрд░реНрдЯреЗрдмрд▓ рдХреЛрдХреЛрд╕ 2 рдбреА рд╕рдкреЛрд░реНрдЯ рдкрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд╡реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдХреЛрдХреЛ 2 рдбреА рдкреНрд░рд╛рдпреЛрдЬрдХ рд╣реИрдВ )ред рдбрд┐рд╕реНрдХреНрд▓реЗрдорд░: рд▓реЗрдЦрдХ рдХрд╛ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдЦреЗрд▓ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рдПрд╕рдбреАрдХреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рд╣реИ, рдмрд╕ cocos2d рдкрд░ рдПрдХ рдЧреЗрдо рд╣реИ

 $ git clone https://github.com/haqu/climbers.git $ cd climbers 


Xcode рд╕реЗ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

 $ open climbers.xcodeproj 


рд╣рдо рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ Nexus (рдпрд╛ рдЖрдХрд╛рд╢рдЧрдВрдЧрд╛, рдпрд╛ рдЧреИрд░-рдЪреАрдиреА рдХреЛ рдмрд┐рдирд╛ google-apps рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ - рд▓рдЧрднрдЧ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ), рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдЪрд▓рд╛рдПрдВ рдЬреЛ рдкрд░реНрд╡рддрд╛рд░реЛрд╣рд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдПрдЧрд╛ редapproj (рдпрд╣ Apportable рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рдЬреЛ рдХрд┐ .xcodeproj рдХреЗ рдКрдкрд░ рд╕реБрдкрд░рдЗрдореНрдкреЛрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВред рдбрд┐рд╡рд╛рдЗрд╕:

 $ apportable load 


рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрд╣рд▓реЗ рдкреВрдЫреЗрдЧрд╛:

If the app is using OpenGL ES, does it use ES1 or ES2? (Cocos2D 1.X uses ES1, 2.X uses ES2)
[1/2] 1
Should the app initially launch in landscape or portrait orientation? (default: landscape)
[L/p] p


рдЦрд┐рд▓реМрдирд╛ Cocos2D 1.X рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо "1" рдХрд╛ рдЙрддреНрддрд░ рджреЗрддреЗ рд╣реИрдВ, рджреВрд╕рд░рд╛ рдкреНрд░рд╢реНрди "рдкреА" рд╣реИред

рдкрд╣рд▓реЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд╛рдж, рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:

/Users/darvin/GAMES/climbers/Support/CocosDenshion/CDAudioManager.m:322: error: undefined reference to 'AudioSessionGetProperty'
/Users/darvin/GAMES/climbers/Support/CocosDenshion/CDAudioManager.m:382: error: undefined reference to 'AVAudioSessionCategoryPlayAndRecord'
......
/Users/darvin/GAMES/climbers/Support/CocosDenshion/CDOpenALSupport.m:227: error: undefined reference to 'ExtAudioFileDispose'
Updating Jar...
scons: *** [Build/android-armeabi-debug/climbers/apk/lib/armeabi/libverde.so] Error 1
scons: building terminated because of errors.


рдпрд╣ рд▓рд╛рдкрддрд╛ AudioFile * рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рд╣реИ ... Google рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ AudioToolbox рдврд╛рдВрдЪреЗ рдореЗрдВ рд╣реИрдВред рдЦреИрд░ рдлрд┐рд░ ...

 $ vim climbers.approj/configuration.json 


" Add_params " рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╣рдо рд▓рд╛рдЗрдиреЗрдВ рдвреВрдВрдврддреЗ рд╣реИрдВ:

  // A list of dependencies. Typically these correspond to // frameworks in the xcode project. "deps": [""], 


рд╣рдо рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ:

  "deps": ["AudioToolbox"], 


 $ apportable load 


рдЧреЗрдо рдХреЛ рдПрдХ рдХрдиреЗрдХреНрдЯреЗрдб рдПрдВрдбреНрд░реЙрдЗрдб рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдзреНрд╡рдирд┐ рднреА рд╣реЛрддреА рд╣реИред рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдмрдврд╝ рдЧрдП рд╣реИрдВ - рдбреЗрд╡рд▓рдкрд░ рдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди (рдФрд░ рдЖрд╡рд╢реНрдпрдХ) рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЛ рдмрд╣реБрдд рдЖрд▓рд╕реА рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ Apportable рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЛ рдорд╛рдкрддрд╛ рд╣реИ рдпрджрд┐ рдЦреЗрд▓ рдПрдХ iOS рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рдерд╛ред рдЪрд▓рд┐рдП рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдЖрдЬрдорд╛рддреЗ рд╣реИрдВ:

рд╢реБрд░реБрдЖрдд рдореЗрдВ - [AppDelegate applicationDidFinishLaunching:] рдЬреЛрдбрд╝реЗрдВ:

 #ifdef APPORTABLE [UIScreen mainScreen].currentMode = [UIScreenMode emulatedMode:UIScreenBestEmulationMode]; #endif 


рдпрд╣рд╛рдВ рд╣рдо рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЗрдореНрдпреВрд▓реЗрд╢рди рдореЛрдб рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ - рдпрджрд┐ рдЗрд╕рдХрд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди / рдЕрдиреБрдкрд╛рдд iPad рдХреЗ рд╕рдорд╛рди рд╣реИ - рддреЛ рдпрд╣ рдЖрдИрдкреИрдб рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░реЗрдЧрд╛, рдЕрдЧрд░ iPhone рдкрд░ - iPhoneред

рдпрд╣ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕ рдЪрдпрди рдХреЛрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рднреА рд╣реИ:

 #if GAME_AUTOROTATION == kGameAutorotationUIViewController [director setDeviceOrientation:kCCDeviceOrientationPortrait]; #else [director setDeviceOrientation:kCCDeviceOrientationLandscapeLeft]; #endi 


рд╕рд╣реЗрдЬреЗрдВ, рдЙрдЪрд┐рдд рд▓реЛрдб рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ ред рд╣рдо рдиреЗрдХреНрд╕рд╕ рдкрд░ рдПрдХ рдЙрджреНрджреЗрд╢реНрдп-рд╕реА / рдХреЛрдХреЛрд╕ 2 рдбреА рдЦрд┐рд▓реМрдирд╛ рджреЗрдЦрддреЗ рд╣реИрдВ:

рдЫрд╡рд┐

рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд╛рдВрдЯрд╛ рдЦрд┐рд▓реМрдиреЗ ред рдХреЗрд╡рд▓ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реА рдЧрдИ, рдкрд╛рдВрдЪ рд▓рд╛рдЗрдиреЗрдВ AppDelegate рдореЗрдВ рдмрджрд▓ рдЧрдИрдВ

рдкреВрд░реНрдг рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕рддреНрд░ рд╕реВрдЪреА

рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдЙрдкрд▓рдмреНрдз рд╣реИ ред рд╣рдорд╛рд░реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдЗрдВрдЬреАрдирд┐рдпрд░ рднреА StackOverflow рдкрд░ рдЯреИрдЧ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╣реИрдВред Tweejump рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реЗрд╢рди рд╡реАрдбрд┐рдпреЛ ред

рдПрд╕рдбреАрдХреЗ рдХрд╛ рд╕реНрдЯрд╛рд░реНрдЯрд░ рд╕рдВрд╕реНрдХрд░рдг рдореБрдлреНрдд рд╣реИ , рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб 4+ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред рдПрдкреЙрд░реНрдЯреЗрдмрд▓ рдЧреЗрдо рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИ - рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЕрднреА рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдпреВрдЖрдИ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ, рдФрд░ рдЧреЗрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реЗ рдРрдк рд▓реАрдбрд░ рдиреЗрддрд╛рдУрдВ рдкрд░ рдЪрд▓рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдкреЛрд░реНрдЯ рдмреЗрд╕ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдкреЗрд░реЗрдВрдЯрд▓реА, рдмрдЧреИрд░ рдХреЛрдб рдмреЗрд╕ рдХреЛ рдмрджрд▓реЗ, рд╕реЛрд╢рд▓ рдлреНрд░реЗрдорд╡рд░реНрдХ, рд╕реНрдЯреЛрд░рдХреАрдЯ рдФрд░ рдЧреЗрдордкрд┐рдЯ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рддреЗ рд╣реБрдП, рдЬрд▓реНрджреА рдФрд░ рджрд░реНрдж рд░рд╣рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдЬрд▓реНрджреА рдФрд░ рджрд░реНрдж рд░рд╣рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЖрдВрд╕реВ рдмрд╣рд╛рдПрдВ ред

Source: https://habr.com/ru/post/In190560/


All Articles