라벨이 Xcode인 게시물 표시

XCode 에서 앱 심사 올릴 때 Failed to register bundle identifier 대처방법

이미지
  오랜만에 아이폰 앱을 업데이트 하는데 이런 오류가 난다. 확인 결과 XCode 에 등록된 아이디가 맞지 않는 것이었다. 해당 bundle identifier 에 맞는 아이디로 변경하니 오류가 나지 않는다. 개발장비를 운영체제 재설치 하니 많은 일들이 생기고 있다. 

Xcode 에서 아카이빙 파일 만들고 앱스토어에 올릴 때 인증 오류 날때

이미지
 앱스토어에 아카이빙 한 파일을 올릴 때 인증 오류가 난다. 오류 화면은 위와 같다. 해결 방법은 일단 Xcode 를 재시작 해본다. 그래도 같은 현상이 나오면 컴퓨터를 재부팅 한다.

Xcode 에서 LaunchScreen 이미지 표출이 되지 않을 때 조치 방법

 로딩 화면에 보통 이미지를 추가하여 작성을 한다. 이때 이미지가 표출이 되지 않는 경우가 발생한다. 방법은 관련 파일을 지우고 다시 하면 된다. Xcode 에서 Preference - Locations -DerivedData 에서 작은 화살표 모양을 클릭하면 관련 폴더가 보인다. 여기서 Derrived Data 폴더를 클릭하여 들어간다. 여러가지 실행되었던 폴더가 보일 것이다. 이걸 다 지운다. 어차피 다시 실행하면 생기니 걱정하지 말자. 그리고 맥을 재부팅한다. 맥이 재부팅 되는 동안 테스트 폰도 마찬가지로 앱을 삭제하고 재부팅을 한다. 관련 컈시파일이 이미지를 잘 보여주지 못해서 발생하는 문제로 보인다. 모두 초기화가 되면 처음부터 다시 캐시파일이 생성되므로 되는거 같다.

GADInvalidInitializationException The Google Mobile Ads SDK was initialized without AppMeasurement 오류 조치 방법

이미지
 XCode 업데이트 하고 난 후 발생하는 오류인거 같다. 일단 AdMob 의 앱 ID 를 확인하라고 해서 애드몹 사이트에서 확인했다. 그래도 같은 오류가 났다. 혹시나 해서 Cocoapods 도 업데이트를 했다. 그래도 같은 오류가 난다. 해결 방법은 info.plist 다음과 같은 값을 추가하면 된다. 애드몹 광고를 추가할 때 플래그가 하나 더 추가된거 같다.

Xcode "is missing from working copy" 오류 처리기

File - Add 하여 기존에 사용하던 프로젝트에서 sample.swift 파일을 하나 추가하였다. 하지만 sample.swift is missing from working copy 오류가 나는 것이다. 이에 파일을 삭제하고 다시 추가해도 오류는 없어지지 않는다. 누구는 Source Control 에서 Refresh Status 를 하라고 하는데 같은 결과이다. 또 누구는 SVN 관련 오류라고 하는데 Xcode 는 Git 이 내장되어 있다. 내가 해결한 방법은 이거다. 일단 터미널을 연다. 그런 다음 해당 프로젝트가 있는 디렉토리로 간다. 거기서 다음과 같은 명령어를 입력한다. $ git add . 엔터 거짓말 처럼 오류가 사라진다. Xcode 오류가 많아졌다. 애플이 왜 이러지.....,

Xcode 8 에서 GoogleMobileAds 추가하는 방법

이미지
XCode 8 에서 GoogleMobileAds 를 추가하는데 보통 cocoapods 을 사용한다. 하지만 이부분이 오류가 나서 되지 않는다. 그래서 수동으로 추가하니 No Such Module 오류가 난다. 매뉴얼을 보니 수동으로 추가하는 방법은 이렇다. Xcode -> File -> Add Files to "Project name" 를 클릭한다. 그러면 새로운 파일 선택 창이 뜬다. 여기서 다운 받은 Framework 파일 들을 선택한다. GoogleMobileAds.framework FirebaseAnalytics.framework FirebaseInstanceID.framework GoogleInterchangeUtilities.framework GoogleSymbolUtilities.framework GoogleUtilities.framework 위와 같은 파일은 선택하고 반드시 if need copy 를 체크해야 한다. 그러면 Xcode 왼쪽 프로젝트 파일 부분에 추가가 된다. 이제 소스에서 import GoogleMobileAds 를 추가해보자. 난 이렇게 하니 오류가 나지 않는다.

Xcode slow index 문제 해결 방법

이미지
Xcode 에서 배열을 만들었는데 slow index 만 뜨고 진행이 되지 않는다. 위와 같이 filter 만 걸었는데 인덱싱 문제가 발생했다. filter 부분을 주석처리하니까 괜찮아졌다. 배열 부분에서 타입이 맞지 않거나 그러면 인덱싱 문제가 발생되므로 콜렉션 분야을 다룰땐 조심해야 겠다.

Xcode 7 Could not find Developer Disk Image 오류 해결 방법

잘 사용하던 Xcode 7 오류가 났다. 소스를 수정하고 컴파일 하여 테스트 하는 도중에 Could not find developer disk image 오류가 났다. 구글 검색 결과 디렉토리 가서 수정하면 된다 하여 수정했더니 또 다른 에러가 난다. 나의 해결방법은 Xcode 7 을 삭제하고 재설치 하였다. 물론 재설치 하는데 파일을 다운로드 받는 시간이 많이 걸리긴 했지만 현재 아주 잘 되고 있다.

iOS In-App Purchase 02 Coding

개발을 하기 위해서는 프레임웍을 추가해야 한다. StoreKit.framework 를 추가하자. 그다음 전역헤더 파일에 추가할 내용이다. 아래와 같이 프레임워크를 임포트 하자. #import < StoreKit/StoreKit.h > 다음은 델리게이트와 사용할 전역변수를 추가한다. @interface ADViewController : UIViewController < SKProductsRequestDelegate , SKPaymentTransactionObserver > {     SKProductsRequest *productsRequest;     NSArray *validProcucts; } 나중에 사용할 메소드를 추가한다. - ( void )fetchAvailableProducts; - ( BOOL )canMakePurchases; - ( void )purchaseMyProduct:( SKProduct *)product; - ( IBAction )purchase:( id )sender; 이제 실행할 m 파일에서 할 내용이다 상수로 아이튠즈에서 설정한 프로덕트아이디를 설정한다. 이는 import 와 interface 사이에 추가하면 된다. #define kProductID @ "com.xxx.xxx.noAd" 이제 실행하면서 구입할 수 있는지 여부를 체크하도록 하자 이는 ViewDidLoad 에 추가했다. 다음과 같이 한 이유는 2초 이후에 실행되도록 지연실행을 걸어준것이다. [ self performSelector : @selector (fetchAvailableProducts) withObject : self afterDelay : 2.0 ]; 이제는 다음과 같이 관련 메소드를 추가한다. 여기서 입맛에 맞게 관련내용을

[xcode] 그레고리력 윤년 구하는 법

2월 29일이 그레고리력의 윤달입니다. 2.29 되는 해를 윤년이라고 합니다. 오브젝티브시로 구현한 내용입니다. BOOL bLeapYear = false; if ((Year % 100 ) != 0 && (Year % 4 ) == 0 ) {     // 100 으로 나누어지지 안고 4 로 나누어지면 윤년     bLeapYear = true ; } else if ((Year % 100 ) == 0 && (Year % 400 ) == 0 )  {      // 100 과 400 으로 나누어지면 윤년     bLeapYear = true ; } if (bLeapYear == true ) {     monthCount = 29 ; } else {     monthCount = 28 ; }

[iOS 개발] Yesterday 작성 방법

iOS 개발할 때 날짜 관련 함수를 사용할 때가 많다. 주로 NSDate 를 이용한다. 어제를 표시하기 위해서는 다음과 같이 한다. 방법 1. NSTimeInterval secondsPerDay = 24 * 60 * 60; NSDate *yesterday = [[NSDate alloc] initWithTimeIntervalSinceNow:-secondsPerDay]; 방법 2. NSTimeInterval secondsPerDay = 24 * 60 * 60; NSDate *today = [NSDate alloc] init]; NSDate *yesterday = [today dateByAddingTimeInterval: -secondsPerDay]; 위와 같이 하면 yesterday 가 변수에 설정되었다. 이제 사용하기만 하면 된다.