블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2858)
Unity3D (897)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (192)
협업 (64)
3DS Max (3)
Game (12)
Utility (142)
Etc (99)
Link (34)
Portfolio (19)
Subject (90)
iOS,OSX (53)
Android (16)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

[에러메시지]

Library not loaded: @rpath/libswiftCore.dylib



위 메시지는 여러가지 이유로 뜨는 것 같은데 나의 경우는 엔터프라이즈 인증서에 OU attribute가 없어서 생긴 문제였다.


인증서를 새로 받아서 OU 필드가 뽑혀 나오면서 해결했음.



[내용 출처] http://stackoverflow.com/questions/26024100/dyld-library-not-loaded-rpath-libswiftcore-dylib


As the AirSign guys state the problem roots from the missing OU attribute in the subject field of the In-House certificate.

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR

I have an enterprise development certificate, creating a new one solved the issue.


반응형
Posted by blueasa
, |
* Restarting Xcode, iPhone, computer
* Cleaning & rebuilding
* Revoking and creating new certificate/provision profile
* Runpath Search Paths is $(inherited) @executable_path/Frameworks
* Embedded Content Contains Swift Code is 'Yes'
* Code Signing Identity is developer

참조 :




[출처] http://nowdeveloper.blogspot.kr/2016/04/dyld-library-not-loaded_20.html

반응형
Posted by blueasa
, |

Apple Developer 사이트에서 Certificate와 Provisioning을 진행한 후에도 iPhone / iPad device에서 app launch 시 아래와 같은 에러가 발생하면서 app이 실행되지 않는 경우가 있음.


dyld: Library not loaded: @rpath/libswiftCore.dylib


 Stack Overflow를 뒤져보면 다음과 같은 방법을 알려준다.


1. build option에서 'Embedded Content Contains Swift Code'를 'Yes'로 설정

2. build option에서 'Runpath Search Paths'를 '@executable_path/Frameworks'로 설정

3. certificates와 provisioning을 revoke하고 다시 등록 / 다운로드 진행하라

4. 설치된 certificates와 provisioning의 'Trust'(신뢰) 설정을 'Use System Default'(시스템 초기 설정 사용)으로 하라


 그러나 이러한 방법으로도 문제가 해결되지 않았다.

 그래서 일 년에 지원 2번의 압박을 감수하며 Apple DTS에 문의한 결과 위의 4번 방법을 이용해 다시 시도해보라고 답변이 왔다.

 문제는 이미 저렇게 사용하고 있었다는 것인데, 메일을 잘 보니 WWDR(Apple Worldwide Developer Relations Certification Authority)도 4번으로 설정하라고 하였는데 해당 인증서가 존재하지 않았다.

검색 후 해당 인증서를 다운로드 받아서 launching 해보니 거짓말같이 문제 해결.

위 1~4번 방법으로 해결되지 않을 경우 아래 WWDR을 다운로드 받아서 시도하길 추천.


http://developer.apple.com/certificationauthority/AppleWWDRCA.cer



[출처] http://loventree.tistory.com/2

반응형
Posted by blueasa
, |


[Link] https://github.com/asus4/unity-taptic-plugin



[File]

unity-taptic-plugin-master.zip


반응형
Posted by blueasa
, |


[링크] http://docs.apteligent.kr/crittercism_man/quickstart.html

반응형
Posted by blueasa
, |


TelephonyManager tel = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

     String networkOperator = tel.getNetworkOperator();
     int mcc = 0, mnc = 0;
     if (networkOperator != null) {
         mcc = Integer.parseInt(networkOperator.substring(03));
         mnc = Integer.parseInt(networkOperator.substring(3));
     }

wifi 모델은 제대로 값을 읽지 못한다는 이야기가...;;;

Locale.getDefault().getCountry(); <- KR 을 리턴함.(세팅된 언어셋을 리턴하는 것이다...;;)
이걸 받아서 아래 링크쪽에 정의된 mcc랑 매핑을 시켜서 사용해야 할 것 같음

https://android.googlesource.com/platform/frameworks/opt/telephony/+/f39de086fddea9e9f6b8c56b04d8dd38a84237db/src/java/com/android/internal/telephony/MccTable.java

IP를 통해서 국가를 얻어올 수 있는 방법이 있다.



http://api.hostip.info/get_json.php <- 현재 접속한 ip address의 국가 정보를 리턴한다.
ex) 
{"country_name":"KOREA, REPUBLIC OF","country_code":"KR","city":"Seoul","ip":"210.182.216.2"}

자세한 내용은 아래 링크를 확인
http://codereview.stackexchange.com/questions/23102/getting-country-based-on-ip

국가 이름과 mcc를 매핑한 리스트는 아래와 같다.
<item>202,gr</item>
<item>204,nl</item>
<item>206,be</item>
<item>208,fr</item>
<item>212,mc</item>
<item>213,ad</item>
<item>214,es</item>
<item>216,hu</item>
<item>218,ba</item>
<item>219,hr</item>
<item>220,rs</item>
<item>222,it</item>
<item>225,va</item>
<item>226,ro</item>
<item>228,ch</item>
<item>230,cz</item>
<item>231,sk</item>
<item>232,at</item>
<item>234,gb</item>
<item>235,gb</item>
<item>238,dk</item>
<item>240,se</item>
<item>242,no</item>
<item>244,fi</item>
<item>246,lt</item>
<item>247,lv</item>
<item>248,ee</item>
<item>250,ru</item>
<item>255,ua</item>
<item>257,by</item>
<item>259,md</item>
<item>260,pl</item>
<item>262,de</item>
<item>266,gi</item>
<item>268,pt</item>
<item>270,lu</item>
<item>272,ie</item>
<item>274,is</item>
<item>276,al</item>
<item>278,mt</item>
<item>280,cy</item>
<item>282,ge</item>
<item>283,am</item>
<item>284,bg</item>
<item>286,tr</item>
<item>288,fo</item>
<item>289,ge</item>
<item>290,gl</item>
<item>292,sm</item>
<item>293,si</item>
<item>294,mk</item>
<item>295,li</item>
<item>297,me</item>
<item>302,ca</item>
<item>308,pm</item>
<item>310,us</item>
<item>311,us</item>
<item>312,us</item>
<item>313,us</item>
<item>314,us</item>
<item>315,us</item>
<item>316,us</item>
<item>330,pr</item>
<item>332,vi</item>
<item>334,mx</item>
<item>338,jm</item>
<item>340,gp</item>
<item>342,bb</item>
<item>344,ag</item>
<item>346,ky</item>
<item>348,vg</item>
<item>350,bm</item>
<item>352,gd</item>
<item>354,ms</item>
<item>356,kn</item>
<item>358,lc</item>
<item>360,vc</item>
<item>362,ai</item>
<item>363,aw</item>
<item>364,bs</item>
<item>365,ai</item>
<item>366,dm</item>
<item>368,cu</item>
<item>370,do</item>
<item>372,ht</item>
<item>374,tt</item>
<item>376,tc</item>
<item>400,az</item>
<item>401,kz</item>
<item>402,bt</item>
<item>404,in</item>
<item>405,in</item>
<item>410,pk</item>
<item>412,af</item>
<item>413,lk</item>
<item>414,mm</item>
<item>415,lb</item>
<item>416,jo</item>
<item>417,sy</item>
<item>418,iq</item>
<item>419,kw</item>
<item>420,sa</item>
<item>421,ye</item>
<item>422,om</item>
<item>423,ps</item>
<item>424,ae</item>
<item>425,il</item>
<item>426,bh</item>
<item>427,qa</item>
<item>428,mn</item>
<item>429,np</item>
<item>430,ae</item>
<item>431,ae</item>
<item>432,ir</item>
<item>434,uz</item>
<item>436,tj</item>
<item>437,kg</item>
<item>438,tm</item>
<item>440,jp</item>
<item>441,jp</item>
<item>450,kr</item>
<item>452,vn</item>
<item>454,hk</item>
<item>455,mo</item>
<item>456,kh</item>
<item>457,la</item>
<item>460,cn</item>
<item>461,cn</item>
<item>466,tw</item>
<item>467,kp</item>
<item>470,bd</item>
<item>472,mv</item>
<item>502,my</item>
<item>505,au</item>
<item>510,id</item>
<item>514,tl</item>
<item>515,ph</item>
<item>520,th</item>
<item>525,sg</item>
<item>528,bn</item>
<item>530,nz</item>
<item>534,mp</item>
<item>535,gu</item>
<item>536,nr</item>
<item>537,pg</item>
<item>539,to</item>
<item>540,sb</item>
<item>541,vu</item>
<item>542,fj</item>
<item>543,wf</item>
<item>544,as</item>
<item>545,ki</item>
<item>546,nc</item>
<item>547,pf</item>
<item>548,ck</item>
<item>549,ws</item>
<item>550,fm</item>
<item>551,mh</item>
<item>552,pw</item>
<item>602,eg</item>
<item>603,dz</item>
<item>604,ma</item>
<item>605,tn</item>
<item>606,ly</item>
<item>607,gm</item>
<item>608,sn</item>
<item>609,mr</item>
<item>610,ml</item>
<item>611,gn</item>
<item>612,ci</item>
<item>613,bf</item>
<item>614,ne</item>
<item>615,tg</item>
<item>616,bj</item>
<item>617,mu</item>
<item>618,lr</item>
<item>619,sl</item>
<item>620,gh</item>
<item>621,ng</item>
<item>622,td</item>
<item>623,cf</item>
<item>624,cm</item>
<item>625,cv</item>
<item>626,st</item>
<item>627,gq</item>
<item>628,ga</item>
<item>629,cg</item>
<item>630,cg</item>
<item>631,ao</item>
<item>632,gw</item>
<item>633,sc</item>
<item>634,sd</item>
<item>635,rw</item>
<item>636,et</item>
<item>637,so</item>
<item>638,dj</item>
<item>639,ke</item>
<item>640,tz</item>
<item>641,ug</item>
<item>642,bi</item>
<item>643,mz</item>
<item>645,zm</item>
<item>646,mg</item>
<item>647,re</item>
<item>648,zw</item>
<item>649,na</item>
<item>650,mw</item>
<item>651,ls</item>
<item>652,bw</item>
<item>653,sz</item>
<item>654,km</item>
<item>655,za</item>
<item>657,er</item>
<item>702,bz</item>
<item>704,gt</item>
<item>706,sv</item>
<item>708,hn</item>
<item>710,ni</item>
<item>712,cr</item>
<item>714,pa</item>
<item>716,pe</item>
<item>722,ar</item>
<item>724,br</item>
<item>730,cl</item>
<item>732,co</item>
<item>734,ve</item>
<item>736,bo</item>
<item>738,gy</item>
<item>740,ec</item>
<item>742,gf</item>
<item>744,py</item>
<item>746,sr</item>
<item>748,uy</item>
<item>750,fk</item>



[출처] http://nicelee.egloos.com/m/3025913

반응형
Posted by blueasa
, |

[펌] MCC/MNC

Unity3D/Tips / 2016. 11. 30. 15:47

MCC(Mobile Country Code)와 MNC(Mobile Network Code) 쌍은 통신사를 구분하기 위한 국가-통신사 코드 조합으로 우리나라에서 많이 쓰이는 CDMA, LTE 이외에 GSM, UMTS, TETRA 등에서도 사용된다. ITU-T에서 E.212를 통해 MCC/MNC를 제안했으며, 요즘은 보통 USIM에서 위 값의 조합을 가져올 수 있다.

안드로이드의 경우, SYSTEM PROPERTIES 중 하나인 gsm.operator.numeric에서 MCC+MNC 조합인 PLMN ID를 가져올 수 있다.

만약 3자리 이상이라면, 앞의 3자리가 MCC 그 나머지를 MNC로 보면 된다.  위의 23410의 경우, 영국(234)의 O2 통신사(10)이다.

MCC를 얻는 함수 예제는 아래와 같다.

그럼 MCC/MNC는 어디에 쓸까? 보통의 서비스들은 다국어 번역만 지원하고 사용자가 셋팅에서 언어를 바꿀 수 있게 하면 된다.

하지만, 구글 플레이 스토어나 애플의 앱스토어처럼 국가마다 다른 앱이나, 캠페인을 진행하고 싶은 경우 MCC를 참조할 수 있다. 그리고 간혹 통신사만의 캠페인을 진행하는 경우 MNC를 참조할 수 있다.

그런데 왜 번거롭게 USIM의 MCC/MNC를 이용해서 서비스를 다르게 보여주려고 할까? 사용자가 접속하고자 하는 국가를 고르면 되는 것 아닌가?

마켓의 경우는 앱을 다운로드 받기 때문에 단말이 네트워크에 연결되어 있어야 한다. Wi-Fi가 아니라면 통신사 망을 통해 데이터를 전송하기 때문에  USIM의 값이 중요하다. 그리고,  USIM을 구입할 나라라면 사용자가 더 거주할 확률이 높다고 판단하기 때문으로 보인다. 마지막으로, 신용카드 결제가 아닌 핸드폰 요금에 청구되는 소액결제의 경우(P-SMS와 캐리어 빌링이 대표적이다) USIM의 통신사에 따라 결제 여부가 달라지기 때문에 마켓에서는 USIM의 데이터를 더 신뢰한다.

클래시 오브 클랜처럼 게임을 만든다면 다국어 번역만 지원하고 사용자의 현재 언어를 파악하여 언어를 보여주거나 사용자가 셋팅에서 스스로 바꿀 수 있는 방법만 제공하면 되겠다. 애플이나 구글의 인앱결제들이 어떻게든 결제를 할 수 있게 고민할테니 말이다.

그 밖에

MCC/MNC는 USIM에 저장되어 있기 때문에, USIM을 따라다닌다. 단말을 구분하고 싶다면 IMEI 값을 참고하자. 2012년 5월부터는 완전히 공개된 정보가 되어 단말의 뒷면(배터리 탈착 부분)에서 확인할 수 있다.

참조


[출처] http://sunphiz.me/wp/archives/1047

반응형
Posted by blueasa
, |

Assets/UCSS/Scripts/Protocols/HTTPProtocol.cs(20,63): error CS0234: The type or namespace name `MovieTexture' does not exist in the namespace `UnityEngine'. Are you missing an assembly reference?


유니티에 WWW wrapper 에셋(http://u3d.as/8e6)을 추가하고 안드로이드로 빌드하려고 시도하니 위와 같은 에러가 나서 뭐지 했는데


찾아보니 아래와 같은 글이 있다.

MovieTexture는 모바일에서 더이상 지원을 하지 않는다고 한다.(PC빌드 전용인가?)


as of 2015/10/6, MovieTextures are still not supported on Android and iOs


First, any code using "MovieTexture" MUST be set only for PC builds. The game I am working on is for Android and PC, so I use the following preprocessor commands:

  1. #if UNITY_ANDROID
  2. Handheld.PlayFullScreenMovie("");
  3. #else
  4. MovieTexture stuff;
  5. #endif


그래서 해당 에셋의 MovieTexture 부분에 iOS/AOS에서 안돌아가게 아래와 같이 define을 추가했다.


#if UNITY_PRO_LICENSE && !UNITY_WEBGL && !UNITY_IOS && !UNITY_ANDROID

        public EventHandlerMovieTexture     movieTextureCallback;

#endif


#if UNITY_PRO_LICENSE && !UNITY_IOS && !UNITY_ANDROID

    void GetMovie()

    {

// 중략..

    }

#endif




[참조] https://forum.unity3d.com/threads/movietexture-has-no-definition-for-iphone-android.73338/

[참조] http://answers.unity3d.com/questions/377854/why-cannot-build-movie-texture-on-android.html


반응형
Posted by blueasa
, |


[링크] http://ucss.webjema.com/http/index.html

반응형
Posted by blueasa
, |


[유니티5.x 기준 경로] 드라이브:\Users\{계정명}\AppData\Roaming\Unity\Asset Store-5.x




[참조] http://neojsm.tistory.com/8

반응형

'Unity3D > Tips' 카테고리의 다른 글

[펌] 안드로이드 mcc mnc 읽어오기  (0) 2016.11.30
[펌] MCC/MNC  (0) 2016.11.30
[펌] Borderless window in standalone player  (0) 2016.11.08
[펌] Disable Screen Auto Rotation on Unity3D  (0) 2016.11.03
[링크] Unity Technologies  (0) 2016.11.01
Posted by blueasa
, |