tag

2020년 (1) 2단계 확인 (1) 공인인증 (1) 공인인증서 (1) 구글 넥서스 2세대 (1) 구글캐스트 (1) 네트워크 위치 (1) 데비안 (1) 도움말 (1) 멤버십 (1) 멤버십 무료 (1) 보안 (1) 소유권이전 (1) 시스템 관리 컨트롤러 재설정 (1) 애플 (2) 애플 뉴스 (1) 애플 보안 인증 (1) 애플 앱스토어 가이드라인 (1) 앱 이전 (1) 앱스토어 커넥트 (1) 업데이트 (1) 이중 인증 (1) 인증 (1) 인증 전환 (1) 자동회전 동작안함 (1) 자동회전 오류 (1) 크롬캐스트 (1) 키체인 (1) AFNetwork (1) align (1) android (1) Android 앱 이전 (1) apns (1) app 이전 (1) app store (1) App Store Connect (1) App Store Review Guidelines (1) App Tranport Security (1) app transfer (1) appcode (2) apple (4) apple developer program (1) apple news (1) AppStore (1) apt (1) apt-get (1) arm64 error (1) asus nexus (1) bitcode (1) bitcode_bundle (1) cast (1) chromecast (1) coredata (1) Could not connect to server (1) CPU (1) csrutil (1) csrutil disable (1) debian (2) debian install on macbook air (1) debian linux (1) debian mirror (1) delfino (1) el capitan (1) Enable Bitcode (1) error (2) ftp.kr.debian.org (1) google (1) google cast (1) google nexus 2nd (1) google play (1) harukasan (1) help appstore connect (1) html5 (1) image logo (1) Info.plist (1) ios (10) ios distribution signning (1) ios11 (1) ios13 sdk (1) iOS8 (1) iOS9 (2) ITMS-90474 (1) ITMS-90475 (1) itunesconnect (1) jessie (1) jetbrains (2) kernel_task (1) lanet (1) left align (1) linux (1) location (1) macbook air (1) MacBookPro8_2 (1) macOS (1) macoscatalina (1) MEMORY (1) must have (1) network location (1) networksetup (1) non-free (1) NSURLComponents (1) NSURLQueryItem (1) Objective-C (1) operation not permitted (1) optimize (1) osx (2) queryItems (1) SMC (1) softforum (1) sourcelist (1) sqlite (1) storyboard (1) swift (4) swiftui (1) system (1) systemstatus (1) tip (1) Transferring an App (1) uinavigationbar (2) UITabBar (1) UITabBarController (1) uiwebview (1) uninstall (1) uninstaller (1) url encode (1) User Experience Guidelines (1) VALID_ARCHS (1) Ventura (1) vim (1) watch os (1) wkwebview (1) WWDR (1) xcode (7) Xcode Help (1) Xcode IDE 도움말 (1) xcode12 (1) Xcode7 (4) Yosemite (1)

광고-자동

hell.o.world

tim toady
레이블이 ios인 게시물을 표시합니다. 모든 게시물 표시
레이블이 ios인 게시물을 표시합니다. 모든 게시물 표시

2022-09-07

Jetbrains AppCode 환경 설정을 위한 몇가지 Tips!

사실, AppCode를 사용하고자 마음먹었던 이유는 바로 Vim Plugin을 지원했기 때문이다.

지금은 Xcode도 Vim 키맵을 지원하지만 (하지만 여전히 간단하고 가장 기본적인 기능만 지원한다.) 그것으론 만족하기 쉽지 않다.

시작은 그랬지만, 사실 Xcode가 항상 부족한 IDE 기능이 존재하고 있고, iOS 앱 개발을 위한 꼭 필요한 툴이이어서 어쩔 수 없이 사용하지만, AppCode가 있어서 그나마 다행이지 않나 생각 한다.

Jetbarins의 모든 툴들이 그렇지만, 기본적인 사용법은 IntelliJ와 동일할 것이고, 각 언어에 특화된 기능들은 어찌보면 Xcode 보다는 좀 더 편리하다. 편집은 당연하고, 디버깅등도 그렇다. 

어쨌뜬  맥OS에서 개발을 하기 위해서는 Xcode가 거의 기본이어야 하고 특히 storyboard를 사용하기 위해서는 무조건 있어야 한다. 

하지만  storyboard 에서 swiftui 로 점점 대체되어 가고 있고, 앞으로도 더 많은 사람들이 그럴 것 같다는 생각이 든다.

AppCode와 함께, swiftui를 사용한다면, Xcode와 왔다갔다 해야만 했던 storyboard와는 다르게 AppCode에서 실시간으로 swiftui로 작업중인 것들에 대해서는 실시간 확인이 가능하다. 

아래 링크를 살펴보면 도움이 될 것이다.

Create a SwiftUI application in AppCode




이와 함께 AppCode를 조금 더 편하게 사용하기 위한 설정 팁을 제시한다.  




1. 기본적으로 UI 폰트들이 시스템 폰트 사이즈로 되어 있는 것을 변경할 수 있다. UI를 구성하는 폰트들이라 나는 좀더 작은 글씨크기로 변경했다. 

모양 및 동작 -> 모양 -> 사용자 지정 글꼴 사용 체크 -> .AppleSystemUIFont 크기 12 수정.

Appearance & Behavier -> Appearance -> Use Custom font Check, Size 12 


2. 가장 중요한 것중 하나라고 생각하는데, AppCode의 파일 트리는 마우스로 펼치고 선택하는 중에 다른 폴더등으로 이동 하는 실수를 막을 수 있다. 

모양 및 동작 -> 모양 -> UI옵션 -> 

    "ALT만 누른 상태로 드래그 앤 드롭" 체크 : 실수로 파일이 옮겨지는 것을 막는다. 중요함. 

    "트리에 좁은 들여쓰기 사용" 체크 

    "트리 들여쓰기 가이드 표시" 체크 

     "항상 창 헤더에 전체 경로 표시" 체크 

 Appearance & Behavier -> Appearance -> UI Options -> 

     Drag-and-drop with Alt pressed only 

     Show tree indent guides 

     Use smaller indents in trees 

     Always show full path in window header 


3. Xcode의 변경된 캐시를 자동으로 받도록 하는 기능이다. 

도구 -> Xcode -> "Xcode 캐시 자동 다운로드" 체크 

Tools -> Xcode -> "Download Xcode caches automatically" check


4. Vim 사용자라면 필수. 

플러그인 -> IdeaVim -> 설치 

Plugins -> IdeaVim -> Install


5. 종종 상단 Run이나 Debug 툴바가 보이지 않거나 우측으로 빠져 있는 경우가 있다면 사용.

보기 -> 모양 -> 툴바 체크 

View -> Appearance -> Toolbar


혹시, 궁금하거나 모르는 기능이 있다면, Jetbrains 에 문의하면 친절하게 도움을 받을 수 있었다. (물론 영어였고, 아마 트위터나 이메일로 문의 했었던것 같다.)



2020-12-19

UITabBar 의 Tab Height 조정.

 UITabBarController 사용 시, UITabBar 를 hidden 시키고 자신들만의 디자인을 적용하는 경우가 많습니다만, UITabBar 자체를 사용하면서 커스텀 하는 경우도 있죠.

그 중, 제일 중요한 부분이죠, Tab 높이 조정.

아래 내용을 참조하면 편합니다.

extension UITabBar {

     override open func sizeThatFits(_ size: CGSize) -> CGSize {
     var sizeThatFits = super.sizeThatFits(size)
     sizeThatFits.height = 60 // adjust your size here
     return sizeThatFits
    }
 }




 

참조:

https://stackoverflow.com/questions/23044218/change-uitabbar-height

UINavigationBar image logo 와 left align

 UINavgationBar 에 이미지 로고와 이 로고의 좌측 정렬이 필요한 경우라면 

아래 예제가 좋다.

func setUpUI() {
    let logoImage = UIImage.init(named: "logoImage")
    let logoImageView = UIImageView.init(image: logoImage)
    logoImageView.frame = CGRectMake(-40, 0, 150, 25)
    logoImageView.contentMode = .ScaleAspectFit
    let imageItem = UIBarButtonItem.init(customView: logoImageView)
    let negativeSpacer = UIBarButtonItem.init(barButtonSystemItem: .FixedSpace, target: nil, action: nil)
    negativeSpacer.width = -25
    navigationItem.leftBarButtonItems = [negativeSpacer, imageItem]
}

 

참조 : 

https://stackoverflow.com/questions/36648219/adding-a-logo-in-navigation-bar-that-is-left-aligned

xcode 12로 마이그레이션 시, building for iOS Simulator, but linking in object file built for iOS, for architecture arm64 오류

기존 프로젝트에서 xcode 12로 시물레이터 빌드를 실행하는 경우, 

building for iOS Simulator, but linking in object file built for iOS, for architecture arm64 관련 오류가

나타난다면, 일단 아래처럼 처방해 볼 것.

다른 여러가지 이유가 있을 수 있지만, xcode 12로 마이그레이션 하면서 첫 빌딩 에러가 링킹 관련 오류라면

VALID_ARCHS 속성 자체를 삭제할 것.

xcode 12 부터 이 속성값을 지원하지 않기 때문에 value 속성이 없더라도 key이 존재하는 것만으로도

오류를 발생 시킨다.


물론 여러 다른 이류로 오류가 발생할 수 있지만, 첫 번째로 이것을 확인 해 볼것.

참고:

https://stackoverflow.com/questions/63607158/xcode-12-building-for-ios-simulator-but-linking-in-object-file-built-for-ios

2020-12-18

2020-02-06

Apple Developer Program 멤버십을 무료로 제공

비영리 조직, 공인 교육기관, 정부기관은 앞으로 연회비 면제가 된다고 합니다.
애플에 요청/승인을 받아야 하고 자격조건이 존재합니다.

이미 유료앱/앱내 구입기능이 있는 앱을 배포한 조직
엔터프라이즈 프로그램 회원
개인및 개인 사업자나 1인 기업은 제외 됩니다.

자세한 내용은 https://developer.apple.com/kr/support/membership-fee-waiver/
링크를 참고하세요 :-)

참, 면제승인 받은 조직은 갱신할 때 면회비를 면제받지만,
기존에 지불한 금액이 환불되지는 않는다고 하네요;

2019-11-21

AppCode IDE에 대한 가이드.


처음엔 key map 때문에 app code를 썼지만, 지금은 전체적으로 익숙해졌다.
어찌되었던 xcode를 함께 병행사용해야 하지만, 전체 코드를 작성하고 리팩토링 및 git 등의
여러 유틸리티들을 좀 더 편하게 사용할 수 있다는 측면에서 추천한다.

물론, 느린 디버깅, swiftUI, storyboard등의 xcode 연동등 여러 단점들이 존재하지만
뭐 여러 단점에도 불구하고 사용해 볼만하다.

전반적인 IDE에 대한 가이드.
AppCode 2019.2 start guide
https://www.jetbrains.com/help/objc/getting-started.html

2015-10-22

Xcode7 에서 bitcode가 YES로 세팅되어 있어 컴파일 오류가 나는 경우.

하여튼, 기본값이 YES로 세팅되어 있는거 같은데,
Bitcode가 뭔가 하고 찾아보니, 
What does ENABLE_BITCODE do in xcode 7?
 
애플이 재컴파일 없이 실행파일을 다운사이징하거나 재-최적화(Re-optimze) 할수 있도록 하는 기능이라네.
 

자세한 내용은 아래 링크 참조.
App Thinning (iOS, tvOS, watchOS)

어쨌뜬, 컴파일 도중 이러한 warning 이나 error 가 떨어지면, 
 
ld: warning: -weak_framework is treated as -framework when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES).

build setting 에서 "bitcode" 로 검색해 보면 Enable Bitcode 가 나온다.
여기서 value 를 NO로 변경하면 됨.

이 옵션이 변경됨으로 (구현한)기능상의 변경이 나타나지는 않을 것으로 판단된다 :-)

참조.
XCODE 7 and ENABLE_BITCODE=YES setting does not work

iOS App 소유권 이전에 대한 내용 정리

iOS App 소유권 이전에 관련된 내용을 정리.

간단히 정리하면,
- 단일 App 마다 이전해야함(계정을 통째로 이전하지 않음)
- 이전하는 측과 받는 측에서 모두 수락해야 가능.
- App 소스와 바이너리는 따로 이전협의 및 이전받는 측에서 배포 해야 함.
- 게임센터 혹은 앱 수출 규정에 문제가 없는한 최대 3시간 소요.
- 앱을 이전할 수 없는 케이스(아래 참고)는 해당App 을 새롭게 생성해서 올려야 함.

—— 아래 ——

Downloaded PDF: iTunesConnect_Guide.pdf(109p) : Transferring an App 참고

Link URL: iTunes Connect Developer Guide




2015.10.21 현재 아래에서 한글 FAQ 내용 확인가능.
https://itunespartner.apple.com/kr/apps/faq

- 다른 개발자의 iTunes Connect 계정으로 App을 이전할 수 있나요?
예. 귀하의 App이 이전 가능한 상태이면 언제든지 다른 개발자에게 iTunes Connect를 통해 귀하의 App을 이전할 수 있습니다.
App의 소유권을 이전하더라도 App Store에서 App을 사용할 수 있습니다.
모든 등급 및 심사가 이전되며 귀하의 고객은 모든 사용 가능한 App 업데이트에 그대로 액세스할 수 있습니다.

- App 이전과 관련한 요구조건은 무엇입니까?
App을 이전하는 경우 다음 중 하나에 해당하는지 확인하십시오.

    이전하는 측과 이전받는 측이 활성 개발자 계정을 가지고 있으며 현재 유효한 모든 마스터 계약의 가장 최신 버전을 수락한 상태임
    App에 하나 이상의 승인된 버전이 있어야 함
    App이 판매 준비됨, 거부됨, 개발자 거부됨 또는 판매 상태에서 개발자 제거됨 상태임
    모든 관련 App 내 구입이 제출 거부, 판매 준비됨, 거부됨, 개발자가 판매를 중단함 또는 승인됨 상태임
    이전받는 측의 팀 에이전트와 팀 ID의 Apple ID를 알고 있음

App이 iAd를 사용하는 경우, 이전하는 측과 이전받는 측이 모든 iAd 계약의 가장 최신 버전을 수락해야 합니다.


- 이전받는 측에서 App을 이전하는 데 필요한 정보는 무엇인가요?
App을 이전하려면 이전받는 측 팀 에이전트의 Apple ID와 해당 팀 ID를 알아야 합니다.

- App을 이전할 수 있는 iTunes Connect 사용자 역할은 무엇입니까?
법적 역할을 가진 iTunes Connect 사용자는 팀 에이전트로 간주되며 App 이전을 시작하고 수락할 수 있습니다.

- 이전 프로세스는 얼마나 오래 소요됩니까?
활성화된 iAd 또는 Game Center가 없는 App의 이전 프로세스는 이전받는 측에서 이전을 수락할 때부터 최대 3시간 소요될 수 있습니다.
App에서 iAd 또는 Game Center가 활성화되어 있는 경우나 App에 수출 규정 문제가 있는 경우 전체 이전 프로세스는 영업일 기준 최대 2일이 소요될 수 있습니다.

- 한 번에 여러 App을 이전할 수 있습니까?
아니요. App마다 개별적으로 이전해야 합니다.


- App 이전을 취소할 수 있습니까?
이전하는 측과 수신자는 계약, 세금 및 금융거래에서 여전히 대기 중인 App 이전 상태에 있으면서 App 전송을 취소할 수 있습니다.
이전을 취소하려면 이전하는 측은 계약 이전 섹션의 계약 진행 중 하위 섹션에서 App 옆에 있는 취소 버튼을 클릭해야 합니다.
이전받는 측은 계약 이전 섹션의 계약 진행 중 하위 섹션에서 App 옆에 있는 검토를 클릭하고 App 이전 페이지에서 거절을 클릭하여 이전을 취소할 수 있습니다.

- App 이전을 수락하려면 어떻게 합니까?
App 이전을 수락하려면 법적 역할을 가진 iTunes Connect 사용자(팀 에이전트 라고도 함)가 계약, 세금 및 금융거래 모듈에서 계약 진행 중 페이지의 검토 버튼을 클릭해야 합니다.
모든 필요한 정보가 제공되었으면 법적 역할을 가진 사용자가 계약 조건을 수락해야 합니다.
이전 요청이 이전받는 측에 의해 수락되었으면 App 상태가 App 이전 처리 중으로 변경됩니다.

- App 이전이 수락되기까지 얼마의 시간이 소요됩니까?
60일 후에 수락되지 않은 App 이전은 취소됩니다.

- iTunes Connect 내에서 App 이전 중 소스 코드와 App 바이너리도 이전됩니까?
아니요. 소스 코드와 App 바이너리는 iTunes Connect App 이전 프로세스에 포함되지 않습니다.
소스 코드와 App 바이너리의 이전은 개별적으로 처리되어야 합니다.

- 이전 프로세스 중 App Store에서 App이 사용 가능한 상태로 남아 있습니까?
이전 시 App이 판매 준비됨 상태이면 이전 프로세스 중 App Store에서 여전히 사용할 수 있습니다.

- iTunes Connect 내에서 App을 이전할 때 고객 평가와 리뷰도 이전됩니까?
예. App 이전 전에 게시되었던 평가와 리뷰는 모두 이전됩니다.

- App 이전을 완료하면 통지를 받습니까?
예. 이전하는 측과 이전받는 측은 이전 프로세스가 완료되면 이메일 알림을 받습니다.

- 메타데이터를 판매 준비됨(App 이전 대기 중) 상태인 App으로 변경할 수 있습니까?
아니요. 메타데이터 변경사항은 (App 이전 대기 중) 상태인 App에는 적용할 수 없습니다.
App의 권한 및 가격에 대한 변경만 가능합니다.

- 푸시 인증서는 App과 함께 이전됩니까?
아니요. 푸시 인증서는 App이 이전될 때 이전되지 않습니다. 기존 인증서는 이 인증서가 만료되거나 취소될 때까지 계속 동작합니다.
푸시 인증서에 대한 세부정보는 App을 이전하기 전에 이전하는 측와 논의해야 합니다.

- App이 이전되고 난 후에도 iTunes Connect를 사용하여 나의 App 정보에 여전히 액세스할 수 있습니까?
아니요. 이전되고 나면 App의 이력, Game Center, App 내 구입 또는 기타 App 정보를 볼 수 없습니다.
이 App과 관련된 모든 정보는 이전받는 측에게 이전됩니다. 이 정보 중 하나를 보유하고자 한다면 이전을 시작하기 전에 이를 컴파일해야 합니다.

- App이 내 계정으로 이전되면 새 프로모션 코드를 요청할 수 있습니까?
아니요. App 소유권 상태에 관계없이 App 버전당 100개의 프로모션 코드만 생성할 수 있습니다.
신규 또는 추가 프로모션 코드는 App이 이전되고 나면 사용할 수 없습니다.
프로모션 코드는 이 코드를 생성하고 나서 4주 동안 유효합니다.

- App을 이전한 후에 App의 판매 및 추세 정보에 여전히 액세스할 수 있습니까?
이전하는 측은 이전 전에 발생했던 판매에 대해 App의 판매 및 추세 정보에 계속 액세스할 수 있습니다.
이전받는 측은 이전 후에 발생한 App 판매 정보만 받습니다.

- App이 이전되고 나면 App ID 접두사 변경사항이 이전하는 측의 팀 ID와 일치합니까?
예. App이 이전된 후 해당 App ID 접두사가 이전받는 측의 팀 ID로 변경됩니다.

- App이 이전되고 난 후에도 키체인이 계속해서 동작합니까?
키체인은 App에서 업데이트가 적용될 때까지 계속 동작합니다. 해당 지점이 지나면 키체인 데이터 전에 액세스할 수 없게 됩니다.
또한, 키체인 액세스 그룹이 Xcode 프로젝트 내에서 정의되면 키체인 서비스를 App에서 계속 사용하도록 이전받는 측의 팀 ID가 업데이트해야 합니다.

- 나의 App이 왜 이전되지 않습니까?
App에서 다음을 포함되거나 사용할 경우 이전할 수 없습니다.

    App의 모든 버전에서 iCloud 권한을 사용
    App의 모든 버전에서 Passbook 권한을 사용
    이전에 제거한 SKU를 포함하여 이전받는 측의 App 중 하나의 SKU와 일치하는 SKU를 사용
    이전에 제거한 App 내 구입을 포함하여 이전받는 측 App 중 하나의 App 내 구입 제품 ID와 일치하는 App 내 구입 제품 ID을 포함
    이전에 제거한 App 내 구입 구독을 포함하여 승인된 자동 갱신 구독, 비갱신 구독 또는 무료 구독 App 내 구입을 포함

응용 프로그램 그룹 컨테이너 디렉토리를 다른 Mac App와 공유하는 샌드박스된 Mac App 역시 이전할 수 없습니다.
이러한 유형의 App을 이전하려면 이전받는 측은 해당 App을 새로운 App으로 생성해야 합니다.
현재 고객, 평가 및 리뷰는 새로운 App으로 이전할 수 없습니다.

2014-02-27

CoreData Error, "The model used to open the store is incompatible with the one used to create the store"

 Coredata 작업시에 종종 발생할 수 있는 에러인데,  처음 만나면 당황하는 에러다.
"The model used to open the store is incompatible with the one used to create the store"
코어데이터의 db 테이블 스키마 수정후에 재컴파일 하면, 이와같은 에러가 나온다.
이전 테이블 정보가 달라져서 발생하는 에러다.
기존 db(.sqlite) 파일을 삭제 후 컴파일 하면 해결 된다.

물론, 장비에서 테스트한다면 앱을 삭제 후 컴파일,
시물레이터라면, 아래 위치에서 보통은 프로젝트명으로 생성된 .sqlite 파일을
삭제하면 된다.

/Users/[계정]/Library/Application Support/iPhone Simulator/[버전]/Applications/
[해쉬로 생성된 폴더명]/Documents/