๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (103) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [iOS] ์ฑ์์ด์ฝ(App Icon) ์ค์ ํ๊ธฐ 1. ์์ด์ฝ ์ด๋ฏธ์ง ์ค๋นํ๊ธฐ - ์ฌ์ด์ฆ ๋ณ๋ก ์ค๋นํ๋ ๋ฐฉ๋ฒ ์ํ๋ ์์ด์ฝ ์ด๋ฏธ์ง๋ฅผ ์ค๋นํ๋ค๋ฉด, ์๋ ์ฌ์ดํธ์ ๋ค์ด๊ฐ ๋ฆฌ์ฌ์ด์งํด์ค๋๋ค. App Icon Generator appicon.co ์ฌ์ดํธ์ ๋๋๊ทธํด์ ์ด๋ฏธ์ง๋ฅผ ๋ฃ๊ณ ์๋ Generate ๋ฒํผ ํด๋ฆญ!! 2. Assets ์ค์ Generate ํด๋ฆญ ์ ๋ฐ๋ก AppIcons.zip ํ์ผ์ด ๋ค์ด๋ฉ๋๋ค. zip ํ์ผ์ ์ด๋ฉด ๋ค์๊ณผ ๊ฐ์ด AppIcon.appiconset ์ด๋ ํด๋ ์์ ์ฌ์ด์ฆ ๋ณ๋ก ์ด๋ฏธ์ง๋ค์ด ๋ค์ด์์ด์! ์ด ํด๋ '๊ทธ๋๋ก' Xcode์ Assets.xacassets์ ๋๋๊ทธํ์ฌ ๋ฃ์ด์ค๋๋ค!! ๋๋๊ทธ ์ ํ์ธํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ ๋๋ก import ๋์ด์์ด์~~๐๐ป ๋น๋ํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ฑ์์ด์ฝ์ด ์ ์ ์ฉ๋์ด ์์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค. ๐ ๐ก ์ฑ.. [Xcode] ์ฑ ๊ธฐ๋ณธ ์ธ์ด ํ๊ตญ์ด๋ก ๋ณ๊ฒฝํ๋ ๋ฒ Xcode์์ ์ฑ ๊ธฐ๋ณธ ์ธ์ด ํ๊ตญ์ด๋ก ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ๐ [NEW ๋ฒ์ ] 1. PROJECT → Info → Localization → “ + ” ํด๋ฆญ → Korean (ko) ์ ํ 2. ์ธ์ด๋ฅผ ์ ์ฉํ ํ์ผ ์ ํ ํ Finish ํด๋ฆญ 3. Info → Localization ์์ Korean ์ ์ฉ๋์์์ ํ์ธ [๊ตฌ๋ฒ์ ] 1. Xcode project์์ ํ๊ตญ์ด ์ถ๊ฐํ๊ธฐ 2. Info.plist์์ Localization native development region์ Korea์ผ๋ก ๋ฐ๊พธ๊ธฐ 3. ํ๋ก์ ํธ์ด๋ฆ.xcodeproj/project.pbxproj ํ์ผ์ ๋ค๋ฅธ ์๋ํฐ(atom, vs ๋ฑ..)๋ฅผ ์ด์ฉํด์ ํธ์ง : developmentRegion๋ฅผ ๊ฒ์ํ์ฌ developmentRegion = ko;๋ก ๋ฐ๊พธ๊ธฐ.. [Error, Xcode] Build fails with "Command PrecompileSwiftBridgingHeader failed with a nonzero exit code" ํด๊ฒฐ๋ฒ [ERROR] Build fails with "Command PrecompileSwiftBridgingHeader failed with a nonzero exit code" [SOLUTION] TargetName-Bridging-Header.h ๊ฒฝ๋ก๊ฐ ์๋ชป๋์ ์๊ธด์๋ฌ ์๋ ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ์ ๊ฒฝ๋ก ์ฒดํฌ!!! Target -> Built Settings -> Objective-C Bridging Header [iOS, Swift, Objective-C] ์ํธํ - SHA256 ๊ตฌํํ๊ธฐ ๐ก SHA256์ด๋? SHA-256์ SHA(Secure Hash Algorithm) ์๊ณ ๋ฆฌ์ฆ์ ํ ์ข ๋ฅ๋ก์ SHA-2 ๊ณ์ด ์ค ํ๋์ด๋ฉฐ, 2^256๋งํผ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ง๋ค ์ ์๋ค. ์ด๋ค ๊ธธ์ด์ ๊ฐ์ ์ ๋ ฅํ๋๋ผ๋ 256๋นํธ์ ๊ณ ์ ๋ ๊ฒฐ๊ณผ๊ฐ(64์๋ฆฌ ๋ฌธ์์ด(32byte))์ ๋ฐํํ๊ณ , SHA-256์ ๋จ๋ฐฉํฅ ์ํธํ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ๋ณตํธํ๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค. SHA256 - ํด์๋ท SHA-256์ SHA(Secure Hash Algorithm) ์๊ณ ๋ฆฌ์ฆ์ ํ ์ข ๋ฅ๋ก์ 256๋นํธ๋ก ๊ตฌ์ฑ๋๋ฉฐ 64์๋ฆฌ ๋ฌธ์์ด์ ๋ฐํํ๋ค. SHA-256์ ๋ฏธ๊ตญ์ ๊ตญ๋ฆฝํ์ค๊ธฐ์ ์ฐ๊ตฌ์(NIST; National Institute of Standards and Technology)์ ์ํด ๊ณตํ๋ wiki.hash.kr ๐ก ํด์(Hash)๋?.. [Linux] ๋ฆฌ๋ ์ค ๋ช ๋ น์ด - ์ธ์ด ์ค์ , ํ๊ธ ๊นจ์ง ํด๊ฒฐ(locale, export) ๋ฆฌ๋ ์ค๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ฉด ํ๊ธ ๊นจ์ง ํน์ ๋ค๋ฅธ ์ธ์ด๋ก ๋์ค๋ ๋ฌธ์ ๋ฅผ ๊ฒช์ต๋๋ค. ์ด๋, locale๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฒ์ ์์๋ด ์๋ค.๐ echo $LANG ํ์ฌ ์ฌ์ฉ์ค์ธ ๋ก์ผ์ผ ํ์ธํ๊ธฐ locale ์ค์ ๊ฐ๋ฅํ ๋ก์ผ์ผ ๋ณด๊ธฐ export LANG="ko_KR.UTF-8" ์ค์ ๊ฐ๋ฅํ ๋ก์ผ์ผ ์ค ๋ณ๊ฒฝํ ์ธ์ด๋ก ์ค์ ํ๊ธฐ [Error, Xcode] Run custom shell script 'Run Script' - Command PhaseScriptExecution failed with a nonzero exit code ํด๊ฒฐ๋ฒ ๐ก ERROR [์๋ฌ๋ด์ฉ] Run custom shell script 'Run Script' Command PhaseScriptExecution failed with a nonzero exit code ๐ก ํด๊ฒฐ๋ฐฉ๋ฒ Targets -> Build Phases -> Run Script For install builds only ์ฒดํฌํ๊ธฐ!!! >> the script only runs when do Product Archive. [iOS/Swift] ์ฝ๋๋ก ์ง๋(Vibrate) ์ธ๋ฆฌ๊ธฐ, ํจ๊ณผ์ ๋ฃ๊ธฐ - AudioServicesPlaySystemSound AudioServicesPlaySystemSound ์ฌ์ฉํ์ฌ ์ฝ๋๋ก ์ง๋(Vibrate) ์ธ๋ฆฌ๊ธฐ ๐ก 1. AVFoundation์ import import AVFoundation AVFoundation : ์์ฒญ๊ฐ assets ์์ , device์นด๋ฉ๋ผ ์ ์ด, ์ค๋์ค ์ฒ๋ฆฌ ๋ฐ ์์คํ ์ค๋์ค์์ ์ํธ์์ฉ ๊ตฌ์ฑ ๐ก 2. AudioServicesPlaySystemSound ์ฌ์ฉํ์ฌ ์ฝ๋๋ก ์ง๋ ๊ตฌํ ๊ตฌํํ๊ณ ์ถ์ ๊ณณ์ ์๋ ์ฝ๋ ์์ฑ AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); *์ง๋, ํจ๊ณผ์ ๋ฐ์ ํจ์ AudioServicesPlaySystemSound func AudioServicesPlaySystemSound(_ inSystemSoundID: SystemS.. [iOS/Swift] @IBInspectable, @IBDesignable ์ฌ์ฉํ๊ธฐ - UIButton ์ปค์คํ ํ๊ธฐ, UITextField ์ปค์คํ ํ๊ธฐ @IBInspectable, @IBDesignable ์์๋ณด๊ณ ์ฌ์ฉํ๊ธฐ - UIButton ์ปค์คํ ํ๊ธฐ, UITextField ์ปค์คํ ํ๊ธฐ - UIButton ํ ๋๋ฆฌ ๋ง๋ค๊ธฐ - UITextField์ ์ด๋ฏธ์ง ์ถ๊ฐํ๊ธฐ ๐ก1. IB ? @IBOutlet, @IBAction, @IBInspectable, @IBDesignable์ ๊ฐ์ด IB๋ก ์์ํ๋ Attribute๋ค์ด ์์ต๋๋ค. Xcode์์ IB๋ Interface Builder๋ฅผ ์๋ฏธํ๊ณ ์คํ ๋ฆฌ๋ณด๋(Storyboard)๋ฅผ ๋งํฉ๋๋ค. ๋ฐ๋ผ์, ์คํ ๋ฆฌ๋ณด๋์ ์ฝ๋๋ฅผ ์ฐ๊ฒฐ์ํฌ ๋, ์ฐ๋ฆฌ๋ IB๋ก ์์ํ๋ Attribute๋ค์ ์ฌ์ฉํฉ๋๋ค. ์ด ์น๊ตฌ๋ค์ ์ฌ์ฉํ์ฌ ์คํ ๋ฆฌ๋ณด๋์์ ์ค์๊ฐ์ผ๋ก ๋๋๋ง ํด๋ด ์๋ค.๐ ๐ก2. @IBInspectable ? @IBInspectab.. ์ด์ 1 ยทยทยท 5 6 7 8 9 10 11 ยทยทยท 13 ๋ค์