๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

(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..

๋ฐ˜์‘ํ˜•