2012-09-30 2 views
9

나는 호출하여 릴리스 빌드합니다폰갭은

xcodebuild -project HelloWorld -sdk iphoneos5.1 -configuration Release install 

을하지만, 폰갭 애플리케이션에 대해이 오류가 얻을 : 내가하려고하면

** BUILD FAILED **

The following build commands failed: CompileC build/Phonefinch.build/Release-iphoneos/Phonefinch.build/Objects-normal/armv6/AppDelegate.o Phonefinch/Classes/AppDelegate.m normal armv6 objective-c com.apple.compilers.llvm.clang.1_0.compiler (1 failure)

을 :

xcodebuild -project HelloWorld -sdk iphoneos5.1 -configuration Release clean build 

내가 얻을 :

2012-10-04 22:51:52.776 xcodebuild[20016:4107] DVTAssertions: Warning in /SourceCache/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-1559/Xcode3Sources/XcodeIDE/Frameworks/DevToolsBase/pbxcore/SpecificationTypes/XCGccMakefileDependencies.m:87 Details: Failed to load dependencies output contents from ``/Users/camobap-mac/Projects/Phonefinch/build/Phonefinch.build/Release-iphoneos/Phonefinch.build/Objects-normal/armv6/AppDelegate.d''. Error: Error Domain=NSCocoaErrorDomain Code=260 "The file “AppDelegate.d” couldn’t be opened because there is no such file." UserInfo=0x400eabf40 {NSFilePath=/Users/camobap-mac/Projects/Phonefinch/build/Phonefinch.build/Release-iphoneos/Phonefinch.build/Objects-normal/armv6/AppDelegate.d, NSUnderlyingError=0x40079c140 "The operation couldn’t be completed. No such file or directory"}. User info: { NSFilePath = "/Users/camobap-mac/Projects/Phonefinch/build/Phonefinch.build/Release-iphoneos/Phonefinch.build/Objects-normal/armv6/AppDelegate.d"; NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain Code=2 \"The operation couldn\U2019t be completed. No such file or directory\""; }. Function: void XCGccMakefileDependenciesParsePathsFromRuleFile(NSString *, void (^)(NSString *)) Thread: {name = (null), num = 7} Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide. ** BUILD FAILED **

The following build commands failed: CompileC build/Phonefinch.build/Release-iphoneos/Phonefinch.build/Objects-normal/armv7/AppDelegate.o Phonefinch/Classes/AppDelegate.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler CompileC build/Phonefinch.build/Release-iphoneos/Phonefinch.build/Objects-normal/armv6/AppDelegate.o Phonefinch/Classes/AppDelegate.m normal armv6 objective-c com.apple.compilers.llvm.clang.1_0.compiler (2 failures) 2012-10-04 22:52:04.887 xcodebuild[20016:4f0f] DVTAssertions: Warning in /SourceCache/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-1559/Xcode3Sources/XcodeIDE/Frameworks/DevToolsBase/pbxcore/SpecificationTypes/XCGccMakefileDependencies.m:87 Details: Failed to load dependencies output contents from ``/Users/camobap-mac/Projects/Phonefinch/build/Phonefinch.build/Release-iphoneos/Phonefinch.build/Objects-normal/armv6/MainViewController.d''. Error: Error Domain=NSCocoaErrorDomain Code=260 "The file “MainViewController.d” couldn’t be opened because there is no such file." UserInfo=0x400ef6e40 {NSFilePath=/Users/camobap-mac/Projects/Phonefinch/build/Phonefinch.build/Release-iphoneos/Phonefinch.build/Objects-normal/armv6/MainViewController.d, NSUnderlyingError=0x400ef24a0 "The operation couldn’t be completed. No such file or directory"}. User info: { NSFilePath = "/Users/camobap-mac/Projects/Phonefinch/build/Phonefinch.build/Release-iphoneos/Phonefinch.build/Objects-normal/armv6/MainViewController.d"; NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain Code=2 \"The operation couldn\U2019t be completed. No such file or directory\""; }. Function: void XCGccMakefileDependenciesParsePathsFromRuleFile(NSString *, void (^)(NSString *)) Thread: {name = (null), num = 10} Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide. ** BUILD FAILED **

The following build commands failed: CompileC build/Phonefinch.build/Release-iphoneos/Phonefinch.build/Objects-normal/armv6/AppDelegate.o Phonefinch/Classes/AppDelegate.m normal armv6 objective-c com.apple.compilers.llvm.clang.1_0.compiler CompileC build/Phonefinch.build/Release-iphoneos/Phonefinch.build/Objects-normal/armv6/MainViewController.o Phonefinch/Classes/MainViewController.m normal armv6 objective-c com.apple.compilers.llvm.clang.1_0.compiler (2 failures)

cordova/debug ->** BUILD SUCCESS **으로 전화를 걸면 .app이 디버그 모드로 컴파일됩니다. 명령 줄에서 릴리스 빌드를 만들려면 어떻게해야합니까?

+0

당신의 질문에 좀 더 자세히 설명해 주시겠습니까? iPA 생성에 대해 이야기하고 있습니까? –

+0

아니요, 단지'.app'입니다. 하지만 나는'.ipa'를 생성 할 수 있으므로 관심이있을 것입니다. – CAMOBAP

+0

확인. 앱이 cordova를 사용하도록 설정된 경우 위의 명령이 작동해야합니다. 당신이 겪고있는 실제 이슈는 무엇입니까? –

답변

1

해결책을 찾았습니다 - cordova 유틸리티가 핵심입니다. 그러나 우리는 그것을 준비하기 위해 몇 가지 단계를 수행해야합니다

  1. 추가 스크립트

    #!/usr/bin/env node 
    
    var app_name = "HelloWorld"; 
    var sign_crt_name = "iPhone Distribution: My company Group BV"; 
    var provision_path = "$PWD/Ad_Hock_Distribution_Helloworld.mobileprovision"; 
    
    var output_ipa_path = "$PWD/platforms/ios/build/device/" + app_name + ".ipa"; 
    var sys = require('sys'); 
    var exec = require('child_process').exec; 
    
    var cliCommand = process.env.CORDOVA_CMDLINE; 
    var isRelease = (cliCommand.indexOf('--release') > -1); 
    var isDevice = (cliCommand.indexOf('--device') > -1); 
    var platform = process.env.CORDOVA_PLATFORMS; 
    
    if (platform === 'ios' && isDevice && isRelease) { 
        function puts(error, stdout, stderr) { 
         sys.puts(stdout) 
        } 
    
        exec("xcrun -sdk iphoneos PackageApplication " + 
         "-v \"$PWD/platforms/ios/build/device/" + app_name + ".app\" " + 
         "-o \"" + output_ipa_path + "\" " + 
         "--sign \"" + sign_crt_name + "\" " + 
         "--embed \"" + provision_path + "\"", puts); 
    } 
    

    hooks/after_build/010_sign_ios.js에 그러나 app_name, sign_crt_nameprovision_path 변수는 필요에 따라 수정

  2. 실행 cordova build ios --release --device

  3. $PWD/platforms/ios/build/device/HelloWorld.ipa을 사용하여 정복 또는 설치 cmd를 통해 위대한 ideviceinstaller 도구

-1

xcodebuild 명령에서 CONFIGURATION_BUILD_DIR 매개 변수를 사용하고 빈 빌드 디렉토리를 지정하여 명령 줄에서 빌드 할 수있었습니다. Xcode가 xcodebuild 명령과 충돌하여 파일이 생성 된 것 같습니다.

+0

Phonegap 앱을 실제로 만들 수 있다면 스크립트를 제공해주세요. 답변을 수락합니다 – CAMOBAP

3

나는 똑같은 문제가있었습니다. 내 솔루션이 당신의 문제에 적용되는지 나는 모른다. 그러나 여기에 내가 어떻게 해결 했는가? Xcode 프로젝트 내에서 cordova 하위 프로젝트를 사용하고 있다고 가정합니다. 코드바 프로젝트의 구성 이름이 동일한 지 확인하십시오.

예를 들어, 기본 프로젝트의 릴리스 구성을 "ReleaseAdHoc"이라 할 때 코드바 서브 프로젝트에도이 이름의 구성이 있는지 확인하십시오. 또한 주 프로젝트와 하위 프로젝트 모두에 대해 이러한 구성을 선택하여 "보관 처리"프로세스를 선택해야합니다.

희망이 도움이됩니다.

+0

고마워요! 필자는 주 프로젝트에 "Adhoc"설정을 추가했으며 AppDelegate.d 파일이 누락되었다는 이유가 궁금합니다. – szimek

+0

구성 집합이 지정되지 않았으며 정확하게 동일한 오류가 계속 발생합니다. 어떤 아이디어? – matthisb