2017-10-29 2 views
0

앱 스토어에서 작동하는 앱이 있습니다. 과거에는 Xcode에 하나의 타겟이있는 앱 버전이 하나 밖에 없었습니다. 개발주기가 조금 더 복잡 해짐에 따라 두 가지 Xcode 대상 (생산 및 개발)이 필요합니다. 이 두 대상에는 두 개의 다른 번들 식별자가 있으므로 전화에서 다른 버전을 동시에 실행할 수 있습니다. 이는 다음과 비슷한 전략입니다. https://www.raywenderlich.com/68613/create-paid-lite-version-iphone-appXcode : 다른 대상에 다른 rootViewController가 있습니까?

기본적으로 raywenderlich 지침에 따라 대상을 복제하고 전처리 매크로를 설정했습니다. 지금까지 유일한 변경 사항은 다른 아이콘을 사용하는 것입니다.

"원래"버전의 앱은 '프로덕션'버전입니다. 새롭게 복제 된 대상은 "개발"버전입니다.

LaunchViewControllerIs Initial View Controller 옵션으로 설정된 스토리 보드를 사용하고 있습니다.

응용 프로그램의 원래 (생산) 버전에서
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]? = nil) -> Bool { 
    // ... 
    guard let launchVC = window?.visibleViewController as? LaunchViewController else { 
     NSLog("visibleViewController is nil or not LaunchViewController") 
     return 
    } 
    NSLog("calling startUserManagerAndLogin - launch") 
    launchVC.startUserManagerAndLogin() 
    // ... 
    return true 
} 

, 모든 것이 잘 작동하는 것을 계속하십시오 AppDelegate에에서

, 나는 window?.visibleViewController를 통해 루트의 ViewController를 가져 와서 그 위에 몇 가지 정보를 설정하는 코드가 있습니다. 콘솔에 다음 줄이 표시되고 응용 프로그램이 올바르게 시작됩니다.

... Visible View Controller: Optional(<MyApp.LaunchViewController: 0x7f84dea02a00>) 

그러나 개발 버전의 응용 프로그램에서는. guard 케이스가 실패합니다. 콘솔에 표시되는 내용은 다음과 같습니다.

... Visible View Controller: Optional(<UIViewController: 0x7fbd1e509570>) 
... visibleViewController is nil or not LaunchViewController 

루트보기 컨트롤러는 프로덕션 및 개발 대상간에 서로 다릅니다. 내가 명시 적으로 설정하지 않는 한 루트보기 컨트롤러가 두 대상간에 어떻게 다른지 알 수 없다.

프로젝트 파일을 검사했는데 두 대상간에 "일반 -> 배포 정보"가 동일합니다. 나는 또한 스토리 보드를 점검했고 거기에는 다른 뷰 컨트롤러를 지정하는 것이 없다.

어떤 아이디어가 있습니까? 어떻게 해결할 수 있습니까?

감사합니다.

답변

0

가! FFS 내가 알아 냈어. 말했다 내가 놓친 다른 로그 행이 있었다 끈다 : 나는 인스턴스화 시도하기 때문에

... Unknown class _TtC8MyApp20LaunchViewController in Interface Builder file. 

가 이걸 발견 내 LaunchViewController 손으로 (스토리 보드)에서뿐만 아니라,이 오류가 발생했습니다. 나는 모듈이 잘못되었다는 것을 알아 냈다.

그럼 내가 묻는 질문은 XCODE 7.1 Swift 2 Unknown class in Interface Builder file으로, Inherit Module From Target이없는 오래된 스토리 보드 요소가 있다는 것을 알게되었습니다. 나는 체크 박스를 on으로 토글했고, 이제는 작동 중이다. 휴.

enter image description here

관련 문제