Programming/iOS2016.06.22 00:51

ENABLE_BITCODE 설정때문에 발생하는 오류입니다.


coocapods를 사용할 경우 pods안의 프로젝트들의 ENABLE_BITCODE가 true로 설정되어 발생합니다.


podfile 안에 다음 코드를 추가하면 해결됩니다.


post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end

신고
Posted by 초프(초보 프로그래머)
Programming/iOS2016.03.24 17:14

Extension 사용하는 앱을 upload to app store 할때  90205, 90206 에러가 동시에 발생하는 경우

cocoapods가 원인..


1. Open the (Your App).xcodeproj file (this is the first file on the project navigator pane).
2. Switch to the target for your app extension (on the top left of the middle pane).
3. Go to the Build Phases tab
4. Click the X after "Embed Pod Frameworks"

https://github.com/CocoaPods/CocoaPods/issues/4203

신고
Posted by 초프(초보 프로그래머)
Programming/iOS2015.10.06 16:54



Action Extension Target을 추가하여 이전까지 문제 없이 사용하고 있었다.

오늘 업로드를 하는 과정에서 다음과 같은 오류가 발생하면서 더 진행이 되지 않는다......

검색과 삽질 끝에 해결은 했다.

Extension 자체는 Framework를 copy하지 않기 때문에 App이 가지고 있는 Framework를 사용해야 한다고 한다.

cocoapods로 Extension Target에 framework를 추가했었는데 이 부분이 문제였다.

이전 까지 문제 없다가 iOS9 출시 후 부터가 문제가 되기 시작했다.

Extension Target에서 cocoapods의 흔적을 다 지우고 다음 링크에 있는 방법대로 하면 된다.

https://hanseihee.wordpress.com/2015/01/14/xcode-cocoapods-with-today-extension/


---- 수정 ---

https://github.com/CocoaPods/CocoaPods/issues/4203

신고
Posted by 초프(초보 프로그래머)
Programming/iOS2015.08.28 01:31

cocoapods 0.38.2 로 업데이트 후에 pod 명령어만 실행하면 아래와 같은 오류가 발생한다.


Chopeui-MacBook-Pro:iOS-classic Chope$ pod --version

---------------------------------------------
Error loading the plugin with path `/Library/Ruby/Gems/2.0.0/gems/cocoapods-stats-0.6.0/lib/cocoapods_plugin.rb`.

LoadError - cannot load such file -- /Library/Ruby/Gems/2.0.0/gems/cocoapods-stats-0.6.0/lib/cocoapods_plugin.rb
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:126:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:126:in `require'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command/plugin_manager.rb:106:in `safe_require'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command/plugin_manager.rb:32:in `block in load_plugins'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command/plugin_manager.rb:31:in `each'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command/plugin_manager.rb:31:in `load_plugins'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command.rb:304:in `block in run'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command.rb:303:in `each'
/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command.rb:303:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/command.rb:48:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/bin/pod:44:in `'
/usr/bin/pod:23:in `load'
/usr/bin/pod:23:in `
' --------------------------------------------- 0.38.2

검색해보니 rvm을 업데이트하면 된다고 한다.

\curl -sSL https://get.rvm.io | bash -s stable --ruby

잘 안되서... ruby 버전을 2.2.1로 업데이트 하고 다시 rvm 업데이트를 시도 했다.

pod 명령어는 오류 없이 잘 동작함!

신고
Posted by 초프(초보 프로그래머)
TAG cocoapods, ios, POD
Project/OpenSource2014.06.06 00:10

새로운 오픈소스를 하나 올렸습니다.

ChopeTableController

이름만 봐서는 UITableViewController의 subclass로 생각할 수도 있습니다. 하지만 그렇지 않습니다.

이건 번거로웠던 UITableViewDataSource, UITableViewDelegate 구현의 번거로움을 줄여보자고 만들었습니다.

두개의 protocol을 직접 구현하지 않고 데이터만 넘겨주면 바로 출력이 가능합니다.

UITableViewCell에서는 ChopeTableCellDelegate를 구현해야 하지만 어렵지 않습니다.

UIViewController에서 하던 작업을 Cell로옮겨서 UIViewController의 역할을 줄이는데 한몫하고 있습니다.


더 자세한 내용은 github의 README를 참고하세요.


https://github.com/chope-yoonhg84/ChopeTableController

신고
Posted by 초프(초보 프로그래머)
Programming/iOS2014.05.08 00:09

podspec을 이용하여 라이브러리를 만들때가 있습니다.

dependency를 추가할때 cocoapods에 있는 library면 쉽게 추가가 가능하다. 

하지만 *.framework 파일을 추가하려고 하니 cocoapods 사이트에서도 정보를 찾기 어렵습니다.


해결방법은 vendored_frameworks를 이용하는 것입니다.

spec.vendored_frameworks = 'Framework/KakaoOpenSDK.framework'


pod install 후 확인해 보면 잘 설정되어 있음을 확인할 수 있습니다.


신고
Posted by 초프(초보 프로그래머)
Project/OpenSource2014.01.17 10:28

iOS에서도 Android의 Toast같은 형태로 메세지를 보여주는 일이 많습니다.

Apple에서 제공하는 기능이 없어서 직접 구현해 보았습니다.


http://cocoapods.org/?q=chope


기본 사용 방법은 다음과 같습니다.

  • 기본 애니메이션
  • 기본 출력시간

[[ChopeToastView ToastViewWithMessage:@"TEST"] show];


보여지는 시간을 지정할 수 있습니다.

  • 기본 애니메이션
[[ChopeToastView ToastViewWithMessage:@"TEST"] showWithDuration:1.0];



애니메이션 지정도 가능합니다.

[[ChopeToastView ToastViewWithMessage:@"TEST"] showWithAnimation:^(ChopeToastView *toastView) {
    CGFloat y = toastView.frame.origin.y;
    
    CGRect frame = toastView.frame;
    frame.origin.y = -1 * toastView.frame.size.height;
    toastView.frame = frame;
    
    [UIView animateWithDuration:0.5
                     animations:^{
                         CGRect frame = toastView.frame;
                         frame.origin.y = y;
                         toastView.frame = frame;
                     }
                     completion:^(BOOL finished) {
                         [UIView animateWithDuration:0.5
                                               delay:3.0
                                             options:UIViewAnimationOptionTransitionNone
                                          animations:^{
                                              CGRect frame = toastView.frame;
                                              frame.origin.y +=  toastView.frame.size.height;
                                              toastView.frame = frame;
                                          }
                                          completion:^(BOOL finished) {
                                              [toastView hide];
                                          }];
                     }];
}];



이밖에도 여러가지 스타일을 지정할 수 있습니다.

현재까지 제공하는것으로는....

  • font
  • textColor
  • backgroundColor
  • backgroundAlpha
  • padding
  • margin
  • roundRadius


UIAppearance도 적용해 보려고 했지만... 빨리 올리고 싶었기 때문에... 시간 관계상 다음으로... :)

신고
Posted by 초프(초보 프로그래머)