iOS 13.3.1 업데이트 이후 무료 개발자 계정에서 Embeded Framework 사용을 금지 시켜서 나오는 현상 입니다.

podfile 에서 use_frameworks! 제거 후 use_modular_headers! 를 추가해 준 뒤 pod update 실행 하면 해결 됩니다.

Posted by 후미카
:

Error loading /var/containers/Bundle/Application/00000000-0000-0000-0000-000000000000/Project.app/Frameworks/UnityFramework.framework/UnityFramework:  dlopen(/var/containers/Bundle/Application/00000000-0000-0000-0000-000000000000/Project.app/Frameworks/UnityFramework.framework/UnityFramework, 265): Library not loaded: @rpath/FBLPromises.framework/FBLPromises

  Referenced from: /private/var/containers/Bundle/Application/00000000-0000-0000-0000-000000000000/Project.app/Frameworks/UnityFramework.framework/UnityFramework

  Reason: image not found

 

위와 같은 에러 발생 시  Podfile 에 있는 use_frameworks! 를 주석 처리하면 해결 된다.

Posted by 후미카
:

iOS 빌드 중 아래와 같은 에러가 나오는 경우 

ld: warning: Could not find or use auto-linked library 'swiftFoundation' 

 

해결방법

1. Library search path 에 $(SDKROOT)/usr/lib/swift 추가 또는 swift 파일 생성하기

1번으로 해결이 안된 경우

2. Podfile 에 use_frameworks! 추가 후 새로 빌드하기 

Posted by 후미카
:

Could not find auto-linked library 'swiftFoundation' 에러가 발생한 경우

프로젝트에 빈 swift 파일을 추가 해 주면 된다.

프로젝트 우클릭 > 새 파일 > swift file 생성 후 Create Bridging Header 버튼을 누르면 해결 됨.

Posted by 후미카
:

iOS 개발을 하다보면 

Undefined symbols for xxx   
  "_inflate", referenced from: 

과 같은 에러코드를 볼 수 있습니다.


이 경우 libz.tdb 파일을 추가 해 주면 해결 할 수 있습니다.



Posted by 후미카
:

a valid provisioning profile for this executable was not found 는 provisioning profile 이 잘못 선택된 경우가 많습니다.


Build Settings -> Signing 항목에서 인증서가 정상적으로 되었는지 확인 후 인증서에 문제가 없는 경우 빌드 스키마가 잘못 되어있는 경우에도 해당 문제가 발생합니다.


 Scheme 값을 맞는 형대로 수정하면 해결 될 수 있습니다.





Posted by 후미카
:

libpng error: CgBI: unhandled critical chunk


위와 같은 에러가 나올 경우 xCode 상의 옵션을 바꿔주면 됩니다.


Remove Text Metadata From PNG Files 옵션을 No 로 변경 해 주면 해결 됩니다.



Posted by 후미카
:

Archive 에서 'Finder에서 보기' 를 눌러서 .app 파일 위치로 이동 한 뒤 .app 파일에 오른쪽 클릭 후 패키지 내용보기로 들어가서 .app 파일과  dsym 파일을 다른 경로에 복사를 한다.

터미널에서 복사한 경로로 이동한 뒤 다음 명령어를 수행한다.

atos -arch arm64 -o Game.app/Game 0x0000000100000000


명령어 옵션중 -arch 뒤에는 빌드 할 때 설정한 아키텍쳐를 넣어주고 -o 뒤에는 어플리케이션명.app/어플리케이션명 크래쉬 메모리주소값 입니다.


위 명령어의 경우 아키텍쳐가 arm64, 어플리케이션명이 Game  인 어플리케이션의 0x0000000100000000 메모리 주소값을 분석 하는 멍령어 입니다.


위 명령어를 실행하게 되면 메소드 명이 나오게 됩니다.

Posted by 후미카
:

Product - Archive 버튼이 비활성화 되어있는 경우 타겟을 iOS Device 로 설정 해주면 활성화가 된다.



Posted by 후미카
:

iOS 에서 링크를 사파리에서 열고 싶지만 페이스북 앱으로 연동 되는 경우가 있다.


이때는 url의 형태를 변경 해주기만 하면 간단히 해결 된다.


http://www.facebook.com/weiteMyUrl 같은 형식에서

앞쪽의 www. 을 제거해주면 페이스북앱으로 연동되지 않고 사파리에서 열리게 된다.



[NSString* myUrl = @"https://facebook.com/writeMyUrl";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:myUrl]];


Posted by 후미카
:

iOS 구글 애널리틱스를 적용하다보면 sqlite3 링크 에러를 볼 수 있다.


이는 구글 애닐러틱스 홈페이지에서 sqlite3.0 라이브러리 추가를 빼먹었기 때문이다.


Linked Frameworks and Libraries 에 libsqlite3.0dylib 을 추가해주면 링크 에러가 사라진다

Posted by 후미카
:
1. CocosDenshion이 재생중인 effects / bgm 만을 일시정지 하도록 수정한다.
2. AppDelegate.cpp 에서 pause / resume 을 하지 않는다. OS 에서 일시정지 하도록 놔두면 된다.
3. (선택사항) AppController.mm 에서 pauseAllEffects 와 resumeAllEffects 를 ApplicationWillResignActive 와 applicationDidBecomeActive 에 넣어 준다.

앞에 + 표시 되어있는 부분이 추가된 부분이다.

/**** CDAudioManager.m ****/
 -(void) pauseBackgroundMusic
  {
 +    if (![self.backgroundMusic isPlaying]) {
 +        return;
 +    }
 +	
      [self.backgroundMusic pause];
  }    


/**** CocosDenshion.m ****/
(void) pauseSound:(ALuint) sourceId {
    if (!functioning_) {
        return;
    }
 +
 +  // only pause a sound id that is playing
 +  ALint state;
 +  alGetSourcei(sourceId, AL_SOURCE_STATE, &state);
 +  if (state != AL_PLAYING)
 +  {
 +    return;
 +  }
 +
    alSourcePause(sourceId);
    alGetError();//Clear error in case we pause any sounds that couldn't be paused
  }


원본 URL
http://discuss.cocos2d-x.org/t/sound-fx-not-playing-after-a-while/623/25

Posted by 후미카
:


- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
    NSLog(@"registerForRemote ERROR: %@", [error localizedDescription]);
}


위 함수를 추가해주면 호출되지 않는 원인을 알 수 있다.



보통 등록되지 않는 경우 'aps-environment' 인타이틀먼트 문자열 없음 의 경우가 많은데 이는 provisioning 파일 생성 후에 APNS 또는 디바이스 등의 설정을 변경 했기 떄문이다. 이경우 디바이스의 provisioning 파일을 제거 후 새로 생성하여 다운로드 받으면 된다.


Posted by 후미카
:

페이스북 iOS SDK를 적용하는 도중 

cannot use the facebook app or safari to authorize fb1234567890 is not registered as a url scheme

위와 같은 에러 메세지와 함께 SSO가 작동하지 않는 경우가 있다.

이럴 경우 Info.plist 내부의 값을 변경해 주는 것으로 간단하게 처리 된다.


<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb12345**********</string>
        </array>
    </dict>


info.plist 파일을 텍스트 편집기로 열어서 위와 같이 바꿔주면 된다.

주의사항은 URL Scheme 를 CFBundleURLSchemes로 변경하는것이 아닌 CFBundleURLSchemes 부분의 string을  fbAPP_ID로 변경해 주어야 한다.

Posted by 후미카
:

iOS 구글 플레이 게임 서비스 연동시 업적, 리더보드, 멀티 플레이등 화면은 나오지만 로드 되지 않고 계속 로드중 표시일 경우가 있다.


 


이때 로그에 [GPGManager applicationId] Application ID expected to be a valid, non-empty string. 과 같은 문구가 나온다면 ApplicationID를 적어주지 않았기 때문이다.


Info.plist 또는 어플리케이션 설정의 Info탭에서 GPGApplicationID 항목을 String형식으로 추가해준뒤 구글 플레이 서비스 ClientID중 가장 앞에 있는 숫자(안드로이드 ClientID와 동일)를 적어주면 로드가 된다.

GPGAndroidID 가 입력되지 않아서 창은 생성되지만 내용을 로드해 오지 못하는 상황 이었다.

Posted by 후미카
:

카테고리

전체보기 (102)
Development (102)
iOS (15)
Android (24)
Java (5)
Unity3d (27)
Photon (1)
C# (1)
C++ (7)
cocos2d-x (14)
etc (8)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

글 보관함