2013년 11월 19일 화요일

xcode는 plist 편집시 예약된 키값을 그대로 보여주지 않는다

동일한 프로젝트인데 테스트용으로 엔터프라이즈계정의 인하우스 배포를 하고

최종테스트 후 스토어용으로 빌드한 후 어플리케이션로더 를 통해서 업로드 하는 환경이기에

info.plist 에 Bundle identifier 값을 스토어용,인하우스용 으로 각각 달리 설정하고 빌드를 해야 한다

info.plist 에 Bundle identifier_:계정명 으로 키를 추가한 후 각각 앱 아이디를 설정해서 defaults 를 이용해서 Bundle identifier에 그 값을 써넣는 방식을 취해보려 다음과 같이 스크립트를 작성하였다

function setAppInfo()
{
    appID=`defaults read "$info_plist" "Bundle identifier_$USER"`
    defaults write "$info_plist" "Bundle identifier" "$appID"
}

당연히 되어야 할 것 같지만 빌드가 되지 않는다

파일을 열어보니 Bundle identifier 가 하나 더 추가되어있다

상식을 벗어난 동작에 한참을 멘붕 후 xcode가 아닌 텍스트편집기로 info.plist를 열어보니

Bundle identifier 의 키값이 Bundle identifier 가 아닌 CFBundleIdentifier 로 되어있다

function setAppInfo()
{
    appID=`defaults read "$info_plist" "Bundle identifier_$USER"`
    defaults write "$info_plist" "CFBundleIdentifier" "$appID"
}

로 실행하니 잘 동작함




1줄요약
App-Info.plist 의 Bundle identifier 키는 Bundle identifier 가 아니라 CFBundleIdentifier 다

2013년 11월 5일 화요일

iOS 웹뷰에서 iframe 높이값이 설정을 무시하고 내부 컨텐츠 크기만큼 커지는 경우

높이값이 1000px 인 웹페이지를 iframe 으로 열었을때

<style>
    div {
        width:300px;
        height:450px;
    }
    iframe {
        width:100%;
        height:100%;
    }
</style>
<div>
    <iframe src="height1000pxPage.html"/>
</div>


넓이 300px, 높이 350px div 내부에 같은 크기의 iframe 이 위치하고 iframe 내에서 1000px 짜리 컨텐츠가 스크롤되길 기대한다

데스크탑용 브라우저에서는 기대한대로 동작하는데

iOS의 웹뷰는 페이지 로드 후 div와 iframe 의 높이값을 보면 div는 450px, iframe 은 1000px 로 강제 설정된다

div에 overflow:auto; -webkit-overflow-scrolling: touch;

스타일을 적용해주면 해결

기대한대로 동작한다