2016년 12월 28일 수요일

Jekyll 을 이용하여 만든 Github 블로그 테마 적용하기

 Github 블로그 테마 적용

자신이 원하는 테마를 선택하여 다운로드하여 로컬저장소 폴더내에 복사하여 넣습니다.
일단 아래 링크에서 마음에 드는 테마를 고르세요
http://jekyllthemes.org/

선택한 테마의 Github 저장소로 이동하여 Clone or download에 Download ZIP 버튼을 클릭하여 프로젝트 파일을 다운로드합니다.(아래 이미지 참조)




다운로드한 파일을 로컬저장소 폴더내에 복사하여 넣습니다.
<참조 : 로컬 저장소 만드는 방법  ->http://swifteyes.blogspot.kr/2016/12/mac-jekyll-github.html>
테마마다 폴더내 파일 구성이 다르기 때문에 Gemfile , Gemfile.lock 이 두 파일은 제외하고 복사해서 넣어야 아래 오류들이 발생하지 않습니다.


in `rescue in specs': Your bundle is locked to i18n (0.7.0), but that version could not be found in any of the sources listed in your Gemfile. If you haven't changed sources, that means the author of i18n (0.7.0) has removed it. You'll need to update your bundle to a different version of i18n (0.7.0) that hasn't been removed in order to install. (Bundler::GemNotFound)


터미널을 실행하여 로컬저장소 폴더위치로 이동 후 아래명령어중 하나를 입력하면 빌드가 진행됩니다.
bundle exec jekyll serve
jekyll serve

참고 ) 빌드 진행중에 에러가 발생 할 경우 
테마마다 발생하는 오류가 다를것으로 예상되나 필자가 사용한 테마들의 경우 아래 에러들이 발생하였습니다.

<codinfox-lanyon-dev 테마의 경우>

 Dependency Error: Yikes! It looks like you don't have jekyll-paginate or one of its dependencies installed. In order to use Jekyll as currently configured, you'll need to install this gem. The full error message from Ruby is: 'cannot load such file -- jekyll-paginate' If you run into trouble, you can find helpful resources at http://jekyllrb.com/help/! 
jekyll 3.3.1 | Error:  jekyll-paginate

<karna-gh-pages 테마의 경우>
Dependency Error: Yikes! It looks like you don't have jekyll-seo-tag or one of its dependencies installed. In order to use Jekyll as currently configured, you'll need to install this gem. The full error message from Ruby is: 'cannot load such file -- jekyll-seo-tag' If you run into trouble, you can find helpful resources at http://jekyllrb.com/help/! 
jekyll 3.3.1 | Error:  jekyll-seo-tag

해결방법은 테마적용에 필요로 하는 파일을 추가해주는 것으로 해결이 되었습니다.
로컬저장소의 Gemfile 이라는 파일을 열어 필요로 하는 파일 이름을 추가합니다.
예) jekyll-paginate 일 경우

source "https://rubygems.org"

gem "jekyll"
gem "jekyll-paginate"
Gemfile 에 추가 하였다면 저장 후 터미널에 아래 명령어를 입력하여 설치합니다.

$ bundle install
$ bundle exec jekyll serve


참고) 터미널에  $ bundle exec jekyll serve  명령어 입력 시 발생할 수 있는 에러들 ==

1)
Gem files will remain installed in /usr/local/lib/ruby/gems/2.4.0/gems/json-1.8.3 for inspection...

: 루비를 최신버전으로 설치 했을 시 2.4.0(글 쓴 기준일) 버전으로 설치되는데 json-1.8.3 을 설치해야 합니다.

gem install json -v '1.8.3'

위 설치명령어로 설치중에 또 다른 에러가 발생 할 수 있습니다.
글 쓴 시점에선 최신버전 2.4.0 버전에선  json-1.8.3을 지원 못한다는것이였습니다.
그래서 필자는 루비버전관리자인 RVM 을 이용하여 루비 2.3.3 버전으로 다운그레이드 하였습니다.

<참조:RVM 설치 방법 : http://railsapps.github.io/install-ruby.html>

루비버전을 2.3.3 으로 다운그레이드 하였다면 
다시 gem install json -v '1.8.3' 명령어를 입력하여  json-1.8.3 설치완료합니다.
루비를 새로 설치 하였기때문에 새로 jekyll를 다시 설치하고 jekyll serve 입력해야 합니다.

2)

in `rescue in specs': Your bundle is locked to public_suffix (2.0.4), but that version could not be found in any of the sources listed in your Gemfile. If you haven't changed sources, that means the author of public_suffix (2.0.4) has removed it. You'll need to update your bundle to a different version of public_suffix (2.0.4) that hasn't been removed in order to install. (Bundler::GemNotFound)

"bundler update" 명령어 입력하여 업데이트하면 해결됩니다.



연결이 되면 브라우저에 로컬저장소 블로그 접속주소를 입력하여 테마가 적용된걸 확인합니다.
접속주소는 테마마다 다르며 터미널에서 주소를 확인 할 수 있습니다.


 Server address: http://127.0.0.1:4000/karna/   <- 접속주소
 Server running... press ctrl-c to stop.


참고) 블로그 접속주소 입력하는 과정중에 발생 할 수 있는 오류
1.테마마다 다르겠지만 혹여 아래 에러가 나타난다면 로컬저장소 폴더 내 about.md 파일을 지워버리면 에러가 사라집니다.
Liquid Exception: Could not locate the included file 'icon-github.html' in any of ["/Users/xxxxxx/_includes"]. Ensure it exists in one of those directories and, if it is a symlink, does not point outside your site source. in about.md

2. 연결은 되는데 하얀 빈 페이지만 뜬다면 로컬저장소 폴더 내 "index.md" 파일을 지워야합니다.

3. 빌드 중 아래 에러가 발생한다면 Error: Address already in use - bind(2) for 127.0.0.1:4000xxx
터미널을 재실행하면 해결됩니다.

2016년 12월 27일 화요일

MAC에서 Jekyll 을 이용한 Github 블로그 만들기

Jekyll 을 이용한 Github 블로그를 만들기!


필요사항
 - Gitbub 계정


1. Jekyll 설치

터미널에서 sudo gem install jekyll 을 입력하여 설치해보자
 sudo gem install jekyll

설치중에 아래 오류가 나타났다면
ERROR:  While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/jekyll
  • 최신 Ruby 설치 :
    brew install ruby
  • 최신 Jekyll 설치 :
    sudo gem install jekyll
루비를 최신버전으로 설치하고 jekyll을 설치하면 해결

2. 로컬 저장소 만들기

로컬저장소로 삼을 특정 폴더위치로 이동하여 jekyll new Github 계정.github.io 입력하여
설치한다.
여기서 사용되는 Github 계정은 Github 가입시 사용한 이름을 입력하면 된다.
 jekyll new Github계정.github.io

실행중에  만일 아래 에러가 발생 한다면


번들러 설치 하도록 합니다.
sudo gem install bundler

만들기가 완료 되었다면 폴더 안에 여러파일이 생성된 것을 확인할 수 있습니다.

생성된 폴더안에 들어가 jekyll serve --watch 를 입력하면
http://localhost:4000 으로 접속하여 로컬에 생성된 블로그를 볼수 있다.
jekyll serve 는 Jekyll이 지역 환경에서 블로그가 제대로 구성되어 있는지 확인하기 위해 제공하는 서버입니다.


3.Repository 생성 (원격 저장소 만들기)

Github 계정으로 로그인후 New Repository를 클릭하여 Repository생성 페이지로 이동한다.




저장소는 Public으로 설정하고 Create repository 버튼을 클릭하여 생성을 완료한다.
*Initialize this repository with a README 는 절대 체크 하면 안됩니다. 나중에 Push중에 오류가 발생함

4. 로컬 저장소와 원격 저장소 연결하기


생성한 jekyll 프로젝트와 Repository 주소를 remote로 연결해 주어야 합니다.
가장먼저 git init 을 입력하여 Git이 추적할수있도록 Git 저장소를 생성합니다.
git init

프로젝트에 git remote add 명령어를 입력하여 저장소와 연결합니다.
git remote add origin {원격저장소 Url}

원격저장소 Url 경우 아래형식처럼 되어있으니 참고토록 하자.
https://github.com/Github 계정/Github 계정.github.io.git
git add 명령어로  모든 변경 파일 index에 추가한다
git add .

변경한다고 추가한 파일을  로컬저장소 등록시 commit 을 사용하는데 뒤에 오는 -m 은 메세지붙인다는 의미로 간단한 메세지를 입력하면 된다.
git commit -m "블로그 초기 파일 commit"

마지막으로 push 할 경우 지역저장소의 내용들이 원격저장소로 복사됩니다.
git push origin master"


저장소에 파일이 제대로 push 되었는지 확인하고 업데이트된 블로그를 확인하세요
http://Github 계정.github.io

2016년 12월 20일 화요일

Swift3 에서 CocoaPods 설치 및 사용하기 (CocoaPods install & library add) @@ in Swift3 - Xcode 8.2 iOS 10

SWIFT3 프로젝트에 CocoaPods 연동하기


- 순서 -

1. 프로젝트 생성

2. CocoaPods 다운로드 및 설치 (처음 설치 시)

3. CocoaPods Podfile 생성 및 설정

4. 라이브러리 설치 및 사용



Step 1 프로젝트 생성

Xcode 를 실행하여 CocoaPods를 연동할 프로젝트를 만든다.
프로젝트 이름은 "cocoapods_test" 로 하였다.


Step 2 CocoaPods 다운로드 및 설치

한번도 CocoaPods 를 설치하지 않았다면 아래와 같이 터미널을 실행하여 CocoaPods 을 설치한다
이미 설치를 했다면 건너뛰도록한다.

1) 터미널 실행하여 설치 명령어 입력 ->  “sudo gem install cocoapods”
(참고로 제거는 sudo gem uninstall cocoapods)

<설치명령어 입력>



<설치 완료>


설치가 완료 되었다면 필요한 라이브러리들을 정리하기 위해 “pod setup --verbose” 명령어 실행
*설치 안해도 됩니다 필요하다면 설치하세요 참고로 오래 걸립니다. (5시간걸림)
 너무 오래걸려 해결책을 찾아 시도 하였으나 저한테는 변화가 없었음.. 참고하세요
http://stackoverflow.com/questions/21022638/pod-install-is-staying-on-setting-up-cocoapods-master-repo


<“pod setup --verbose” 입력>

Step 3 CocoaPods Podfile 생성 및 설정

설치를 완료했다면 Step1에서 생성한 프로젝트 폴더 내 경로로 이동하여 “pod init” 명령어를 실행한다. 실행후 자동으로 PodFile이 생성된다.

<"pod init"명령어 실행 후 Podfile 이 생성 됨을 확인할 수 있다.>


<프로젝트 폴더>


Podfile 을 여는 명령어는 두가지가 있다
"open -e podfile"
"open -a Xcode Podfile"



하나는 일반 메모장을 여는 것이고 하나는 Xcode 에서 파일을 여는 것이다.
둘중 아무거나 해도 상관없으니 일단 파일을 열어보자



Step 4  라이브러리 설치 및 사용

위에서 열었던 podfile 에 라이브러리를 추가한다. 
일단 필요없는부분을 지우고 라이브러리 "SCLAlertView"를 추가하여보자

이제 저장을 하고  터미널로 돌아와 프로젝트 폴더 경로에서 "pod install" 입력하여 라이브러리를 설치
하도록 한다








설치가 다 되었다면 프로젝트 폴더내에 프로젝트명.xcworkspace 파일을 열어본다



실행된 Xcode를 보면 라이브러리가  아래와 같이 xcode내에서 Pods 프로젝트가 import되어 있는 것을 확인할수 있다.






방금전 설치한 라이브러리가 정상적으로 설치되어 있는지 아래 ViewController 클래스내 함수에서
직접 코딩을 통해 확인가능하다.

2016년 12월 6일 화요일

UIViewController, Dismiss and Present @@ in Swift3 - Xcode 8.0 iOS 10

기존에 열려있는 firstViewController 를 Dismiss 하고 secondViewController를 Present 하기 위해
---------------------------------------------------------------------------------------
self.dismiss(animated: true, completion: {
  let vc = self.storyboard?.instantiateViewController(withIdentifier: "secondViewController")
  self.present(vc!, animated: true, completion: nil)
})
=========================================================================
아래 오류가 뜬다.
whose view is not in the window hierarchy!


이때는 뷰계층구조상 rootViewController를 사용해야한다.
---------------------------------------------------------------------------------------
self.dismiss(animated: true, completion: {
   let vc = self.storyboard?.instantiateViewController(withIdentifier: "secondViewController")
   let appDelegate = UIApplication.shared.delegate as! AppDelegate
   appDelegate.window?.rootViewController!.present(vc, animated: true, completion: nil) 
})
=========================================================================

이렇게 하면 기존의 firstViewController는 닫히고 secondViewController 가 열린다

2016년 12월 5일 월요일

coreData Entites 이슈 @@ in Swift3 - Xcode 8.0 iOS 10



코어데이터의 Entites 생성하고 Attributes 값을 추가한 다음
xcode - > Editor -> createNSManagedObject SubClass.. 를 클릭하여
파일이 생성된 후 빌드 시 아래 이슈가 발생한다면

Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1


코어데이터의 Entites를 선택하여 우측 inspector 탭을 눌러
Class 항목의 Codegen을 Manual/None 로 선택하여 빌드하면 이슈가 사라진다

2016년 12월 4일 일요일

Archive 가 비활성화 되는 경우 해결법! @@ in Swift3 - Xcode 8.0 iOS 10

xcode  ->  product -> Archive 가 비활성화 되는 경우 해결법!

시뮬레이터로만 빌드하였을 경우 Archive 항목이 비활성화 되는 경우가 발생한다

그땐 디바이스를 연결하여 빌드하면 활성화 된다.

추천 게시물

애플 개발자 등록방법 2016년 5월 8일 기준!!

애플 개발자 등록 절차 1. 개발자 등록 페이지 이동    애플 개발자 로그인 > Account 페이지 이동 > 하단 영역 클릭 (이미지 참조)   >> Enroll 클릭 >> 무조건 승인!! ...