2012-11-07 2 views
1

나는 이미지를 편집 할 수있는 iPhone 응용 프로그램을 개발 중입니다. 궁극적으로 사용자가 이미지를 간단하게 편집 할 수있는 작은 버전과 이미지의 소셜 네트워킹을 허용하는 큰 버전을 갖고 싶습니다. 그런 다음 iPad 용 버전을 개발하고 싶습니다.Xcode에서 다른 버전의 응용 프로그램 구성

이것은 상업용 모바일 개발에 대한 첫 발을 내디뎠 기 때문에 Xcode에서 이러한 모든 버전을 구성하는 방법에 대해 혼란스러워합니다. 분명히, 각 버전간에 파일 재사용이 공유됩니다. 내 질문에, 가장 효율적인 방법으로 이러한 별도의 프로젝트를 구성하여 파일을 공유 할 수 있도록하려면 어떻게해야합니까? 공유 된 특정 파일을 편집 할 때 응용 프로그램의 각 버전이 변경됩니다. Xcode에서 따라야 할 구조가 있습니까?

이 작업을 수행하는 방법에 대한 링크 나 자료가 있습니까? (올바른 단어를 검색 할 수 있는지 확실하지 않음).

+1

http://blog.just2us.com/2009/07/tutorial-creating-multiple-targets-for-xcode-iphone-projects/ – iDev

+0

@ACB 연결된 접근 방식이 좋지 않습니다. 각 앱의 각 파일 (예 : 소스, 리소스)을 관리해야합니다. 그렇게하는 데 지루함이 있습니다 (따라서 오류가 발생할 수 있습니다). 그 문제를 피하는 접근법에 대한 나의 대답을보십시오. – justin

+0

@justin, 확실하지 않습니다. 과거에는 그런 식으로 사용했고 문제는 없었습니다. 내가해야 할 일은 스키마를 바꾸고 다른 앱을 만들기 위해서였다. – iDev

답변

1

기억하십시오 : 반복적으로/복제하고있는 것을 발견하면 틀린 것으로 의심됩니다.

Xcode 프로젝트에는이 시나리오에서 4 개의 대상이 있습니다.이 설정의 기본 목표 레이아웃은 다음과 같습니다 (공유 자원)

  • 자원 번들
  • 앱 - 전체 (범용) (공유 소스 파일)

    • 정적 라이브러리
    • App-Lite (유니버설)

    애플 리케이션은 공유 정적 라이브러리에 링크하고 리소스 번들을 복사합니다.

    당연히 앱은 앱 대상 (또는 다른 종속성)에있는 소스/라이브러리/종속성을 갖습니다.

    귀하의 배경을 고려해보십시오. 초기 및 충분한 시간을 들여 계획을 세우고 인내심을 가지고 이러한 의존성을 구성, 사용 및 유지 관리해야하는지 파악하십시오.

  • 0

    다른 기능을 위해 프로젝트의 다양한 복사본을 유지하도록 선택하면 XCode가 다른 기능 대신 하나의 기능을 제공 할 수있는 곳이 있기 때문에 결국 혼란 스럽습니다. 그 중 한 곳은 - 위치 X에서 프로젝트를 열면 마지막으로 연 이후로 Y 위치에서 사본을 볼 수 있습니다. 결과적으로 더 많은 실수를 범할 가능성이 있습니다. 주최자는 실수 할 수있는 곳 중 하나입니다.

    Xcode는 iPhone 및 iPad 버전을 모두 유지할 수 있도록 자체적으로 포함되어 있습니다. 앱 유형으로 범용을 선택한 경우 하나의 프로젝트에 포함될 수있는 두 개의 스토리 보드가 있습니다.

    다양한 기능에 대해 프로젝트의 별도 복사본을 유지하지 않아야합니다. 대신 모든 기능을 단일 프로젝트 내에 유지하고 응용 프로그램 논리에서 다양한 기능에 대한 액세스를 제공하는 것이 좋습니다.

    Xcode는 프로젝트를 클릭하면 대상 섹션 아래에 빌드 버전을 유지합니다. 개발자주기를 통해 여러 버전을 유지하려면 소스 코드 저장소 (git 또는 svn)를 사용하십시오.

    +1

    나는 보편적 인 것에 대해 여전히 추천한다. iPad는 거의 완전히 다른 뷰 계층 구조를 개발할 수있는 다른 곳이다. 네비게이션 콘트롤러 대신에 분할 된 뷰, 추가 뷰 컨트롤러 대신에 팝업, 등등. 별도의 스토리 보드를 구축하는 것만으로는베이스 코드 기반을 털이 엉망으로 만들 정도로 충분하지 않습니다. 허락하신다면, 이것은 앱에 달려 있지만 내 iPad 버전의 품질에 신경 쓰지 않는다면 내 경험으로는 범용 앱 만 만들 수 있습니다. –

    +0

    좋았어. 전에 그렇게 보지 않았다. –

    1

    나는 "라이트"프로젝트와 "전체"프로젝트를 분리하지만 동일한 작업 공간으로 유지하는 것이 좋습니다. 그렇게하면 한 프로젝트에서 공유 파일을 유지하고 다른 프로젝트에서 공유 된 참조 만 사용할 수 있습니다. 어느 프로젝트에서든 공유 파일에 대한 모든 변경 사항은 두 가지 모두에 영향을줍니다.

    iPhone/iPad 버전에 이르기까지 앱을 완전히 별도로 유지하면서 코드를 공유 할 수 있도록 동일한 작업 공간 내에 두는 것이 좋습니다. 하나의 프로젝트 (일명 보편적 앱)에서 두 앱을 모두 관리하는 것에 대한 제안을 살펴보면 고객이 하나의 앱을 구입할 수 있고 어느 기기에서나 다운로드 할 수 있으며 그렇지 않은 경우 사용할 수 있습니다. 앱이 무료 인 경우 걱정하지 마세요.

    마지막으로 작업 영역에 대한주의 사항으로 모든 프로젝트에서 파일의 이름을 고유하게 지정해야합니다. 예를 들어 MainViewController.h 하위 클래스를 사용하는 프로젝트와 MainViewController.h 하위 클래스를 사용하는 다른 프로젝트로 작업하는 경우 프로젝트에 상관없이 실수로 잘못 할당하거나 편집 할 수 있으므로주의해야합니다 . 고유 한 파일 이름을 사용하는 것이 문제라면 빈 프로젝트를 생성하여 모든 공유 코드를 덤프 한 다음 독립형 응용 프로그램에 대한 참조를 거기에서 추가하여 작업 공간을 사용하지 않아도됩니다.

    관련 문제