Xcode 6 Beta 4에서 앱을 실행하는 경우“볼 수있는 권한이 없기 때문에“MyApp.app”파일을 열 수 없습니다”


273

Xcode 6 Beta 4에서 앱을 실행하려고 할 때마다 오류가 발생합니다.

The file "MyApp.app" couldn't be opened because you don't have permission to view it.

이 오류는 대상 시뮬레이터 나 장치에 관계없이 나타납니다.

나는 시도했다 :

  • Xcode의 오거나이저에서 파생 된 모든 데이터 삭제
  • 내 드라이브에 대한 권한 복구
  • 빌드 된 MyApp.app의 권한을 수동으로 높이기
  • 내 컴퓨터를 다시 시작

다른 사람 이이 문제에 부딪 치고 해결책을 찾았습니까?

스크린 샷


1
XCode 6.1과 동일한 문제가 발생합니다. 처음에는 문제가 시뮬레이터에서만 발생했습니다.이 게시물의 일부 리드를 따른 후 대상 전화를 실행할 때도 동일한 오류가 발생합니다.
— Bamaco

1
@YuAn 솔루션을 따랐습니다. 시뮬레이터에서 잘 작동합니다. 감사하지만 장치에서 빌드하려고 할 때 여전히 '보기 권한이 없습니다'라는 메시지가 나타납니다. xcode의 products 디렉토리와 파생 데이터 디렉토리에있는 myapp.app 파일은 파생 데이터의 컨텐츠를 삭제 한 후 빌드를 시도한 후에도 차단 된 것으로 표시됩니다.
— Srinivasan N

4
이 문제를 유발하는 또 다른 (멍청한) 방법 : 소스 파일이없고 리소스 만있는 앱을 컴파일하십시오. 내가 아는 방법을 묻지 마십시오. :)
— Krumelur

4
제품> 청소 나를 위해이 문제를 해결
— mazorati

내 경우에는 이것들 중 아무것도 작동하지 않았다!! Xcode에서 pilst 파일을 삭제하고 다시 프로젝트에 연결하면 매력처럼 작동합니다! 당신을 도와주세요!
— Ravi

답변:


252

Xcode6 GM을 사용합니다. 같은 문제가 발생했습니다. 내가 한 것은 빌드 설정-> 빌드 옵션으로 이동하는 것입니다. 그런 다음 "C / C ++ / Objective-C 용 컴파일러"의 값을 기본 컴파일러로 변경했습니다.여기에 이미지 설명을 입력하십시오


146

DEVICE에도 문제가 있습니까 (시뮬레이터뿐만 아니라)?


다른 솔루션은 장치가 아닌 시뮬레이터에서만 나를 고쳤습니다.

나 에게이 문제는 (Xcode 6에서) 내 app.plist 속성을 변경하려고 할 때 내 앱 이름을 변경 하려고 할 때 발생했습니다 .

에서 의 Info.plist 나는 변경했다 Executable File기본 이외의 다른 이름을 ${EXECUTABLE_NAME}...

스프링 보드의 아이콘 아래에서 앱 이름을 변경하는 필드 로이 필드를 잘못 생각했습니다.


10
내 경우에는 이것이 효과가있었습니다. 감사합니다. 내 <appname> -Info.plist 파일에서 다른 유사한 필드를 변경하고 제안한대로 실행 파일을 $ {EXECUTABLE_NAME} (으)로 다시 변경하면 빌드 및 실행됩니다.
— Slowburner

Thanks..Same 내 사건이었다
— 발라 비슈누

많은 @Albert Renshaw에게 감사드립니다. 당신은 내 문제를 해결했습니다. 지난 이틀부터 그 해결책을 찾고 있습니다.
— Nilesh Kikani

같은 문제, 필드 이름은 아이콘 아래에 이름을 변경하기위한 "번들 표시 이름"
— WebOrCode

1
이로 인해 내 솔루션으로 연결되었습니다.이 코드는 외부 라이브러리의 소스를 코드에 포함시키고 Info.plist를 자산 그룹 폴더에 넣었을 때 추가 Info.plist를 얻었습니다. 추가 Info.plist를 제거하면 문제가 해결되었습니다.
— chadbag

145

Xcode에서 다음을 수행하십시오.

파생 데이터의 창-> 구성자-> 프로젝트-> 이슈가있는 앱-> 삭제 버튼.

그런 다음 프로젝트와 짜잔을 청소했습니다.

공장


@YuAn 솔루션을 따랐습니다. 시뮬레이터에서는 잘 작동하지만 장치에서 빌드하려고 할 때 여전히 '보기 권한이 없습니다'라는 메시지가 나타납니다. xcode의 products 디렉토리와 파생 데이터 디렉토리에있는 myapp.app 파일은 파생 데이터의 컨텐츠를 삭제 한 후 빌드를 시도한 후에도 차단 된 것으로 표시됩니다. 어떤 생각이 잘못 되었습니까?
— Srinivasan N

이것은 나를 위해 일했지만 계속 일어나고 있습니다. 시뮬레이터에서 앱을 실행하려고 할 때마다 파생 된 데이터를 계속 삭제할 수 없습니다.
— zumzum

나는 도움이 이해할 수있을 것이다 .. 같은 문제가 다양한 솔루션을 시도했지만 나를 위해 일하지 않았다 직면하고있다
— Giriraj.Mulay


45

빌드 폴더를 정리하여 수정했습니다. '제품'메뉴로 이동 한 후 Option + 클릭하여 '청소'를 클릭하십시오. 그 후 문제가 해결되었습니다.


30

프로젝트의 Info.plist에 문제가있었습니다. Xcode 6 베타 4에서 동일한 이름의 새 프로젝트를 만든 다음 실제 프로젝트의 Info.plist를 새 프로젝트로 바꿨습니다. 그런 다음 프로젝트는 잘 구축되고 실행되었습니다.

diff를보십시오. plist가 어떻게 든 놀이터의 plist와 섞여있는 것처럼 보입니다. 번들 식별자는 "com.apple.dt.playground.iOS-18300-13"이고 실행 파일과 번들 이름은 다른 이상한 점과 함께 "iOS"였습니다.

누군가가 참조 할 필요가있는 경우 전체 diff입니다.

        <key>CFBundleDevelopmentRegion</key>
        <string>en</string>
        <key>CFBundleExecutable</key>
-       <string>iOS</string>
+       <string>${EXECUTABLE_NAME}</string>
        <key>CFBundleIdentifier</key>
-       <string>com.apple.dt.playground.iOS-18300-13</string>
+       <string>com.myCompany.${PRODUCT_NAME:rfc1034identifier}</string>
        <key>CFBundleInfoDictionaryVersion</key>
        <string>6.0</string>
        <key>CFBundleName</key>
-       <string>iOS</string>
+       <string>${PRODUCT_NAME}</string>
        <key>CFBundlePackageType</key>
-       <string>AAPL</string>
+       <string>APPL</string>
        <key>CFBundleShortVersionString</key>
        <string>1.0</string>
-       <key>CFBundleSupportedPlatforms</key>
-       <array>
-               <string>iPhoneSimulator</string>
-       </array>
+       <key>CFBundleSignature</key>
+       <string>????</string>
        <key>CFBundleVersion</key>
        <string>1</string>
-       <key>DTPlatformName</key>
-       <string>iphonesimulator</string>
-       <key>DTSDKName</key>
-       <string>iphonesimulator8.0</string>
-       <key>LSBackgroundOnly</key>
-       <true/>
        <key>LSRequiresIPhoneOS</key>
        <true/>
+       <key>UIMainStoryboardFile</key>
+       <string>Main</string>
        <key>UIRequiredDeviceCapabilities</key>
        <array>
                <string>armv7</string>
        </array>
+       <key>UISupportedInterfaceOrientations</key>
+       <array>
+               <string>UIInterfaceOrientationPortrait</string>
+               <string>UIInterfaceOrientationLandscapeLeft</string>
+               <string>UIInterfaceOrientationLandscapeRight</string>
+       </array>
 </dict>
 </plist>

네, 비슷한 문제가있었습니다. Info.plist 파일은 이진 파일 형식이었습니다. 그것을 변환했다
— Luca Torella

28

Xcode 8.2 에서이 오류가 동일했습니다. 내가 알게 된 또 다른 Info.plist 는 가 라이브러리에 추가하는 동안 프로젝트에 추가됩니다 (수동으로 복사).

Xcode가 올바른 Info.plist 를 선택하는 데 혼란을 겪고 있습니다.

추가 된 라이브러리에서 해당 Info.plist를 제거했습니다.

그런 다음 권한 경고없이 정상적으로 작동합니다.


또한 FRAMEWORK_NAME_HEREInfo.plist에 Info.plist 파일의 이름을 변경할 수 있습니다
— 제레미 켈러허에게

다른 프로 제트에서 복사 한 동일
— Firas Shrourou

이것이 바로 내 문제였습니다. 빠른 파일의 다른 폴더를 추가했으며 거기에 plist 파일이 있습니다. plist 파일을 삭제했는데 모두 정상입니다. 감사합니다!
— Lkabo

17

실행 파일 => $ (EXECUTABLE_NAME)을 다른 이름으로 변경했는지 확인하십시오. 이 이름을 변경하면이 오류가 표시됩니다. $ (EXECUTABLE_NAME)으로 바꾸십시오.


예, 앱 이름을 변경하려고 할 때 나에게 일어났습니다. 시즌 개발자는, 그래서 그냥 무심히 PLIST에 가서 내가 "번들 이름"으로 변경하는 것을 의미 현실에서 "실행 파일"로 변경
— MobileMon

이것은 나를 위해 그것을 고쳤다. 프로젝트 이름을 바꾼 후에 발생했습니다. 감사.
— emiliomarin

14

제품-> 청소 (명령 시프트 K)가 나를 위해 수정했습니다.


때로는 간단한 해결책이 효과가 있다는 것을 잘 기억하십시오.
— Pescolly

Xcode 7.2.1에서 깨끗하고 Xcode를 다시 시작해야했습니다. 청소 만해도 빌드를 시도하지 않고 "알 수없는 오류"가 발생했습니다.
— Tommy

13

이럴 수가!! 이 문제를 해결하기 위해 몇 시간을 보냈습니다.

에 엑스 코드 7.3 나는 문제없이 프로젝트를 가지고 있었다.

내가 한 실수

방금 실제 폴더를 추가하고 파일을 폴더로 옮겼습니다. 문제가 시작되었습니다.

나는 모든 것을 시도했다

  • 기본 컴파일러
  • 청소 및 구축
  • 시뮬레이터 재설정 및 시뮬레이터, Xcode, iPhone 심지어 Mac 재부팅
  • 업데이트 된 Info.plist
  • 파생 데이터 삭제
  • 프로젝트 폴더에 대한 권한 편집
  • 내 아키텍처 확인

아무것도 효과가 없었습니다 :(

어떻게 해결

나는 새 프로젝트를 만들려고 했는데 추가 한 실제 폴더 , 깨끗한 빌드 및 YESS를 삭제했습니다!

효과가있다!!

여기에 이미지 설명을 입력하십시오


1
네, 이것도 저를위한 것이 었습니다.
— yeahdixon

이것은 나를 도왔다. 그러나 폴더 참조를 사용할 수 있다고 생각했습니다. 이상한.
— user1105951

13

"cmd + shift + k"를 사용하여 프로젝트를 정리하고 다시 빌드하십시오. 적어도 그것은 나를 위해 일했다


11

샘플 코드 다운로드와 비슷한 문제 (xCode 6.2)가있었습니다. 나는 세트에 시도 Executable Name에Default in Info.plist 작동하지 않았습니다.

대신 프로젝트 의 지원되지 않는 컴파일러 (com.apple.compilers.llvmgcc42) 대신 C / C ++ / Objective-C 용 컴파일러 를 기본 컴파일러 (Apple LLVM 6.0)로 변경하십시오 .

스크린 샷


@iOSRocks : 친구 환영합니다!
— Jayprakash Dubey

10

1) 먼저 빌드 옵션으로 이동하십시오.

2) 그런 다음 "C / C ++ / Objective-C 용 컴파일러"의 값을 기본 컴파일러로 변경했습니다.

깨끗하고 작동 :-)


1
이를 정리하려면 : 1. 빌드 설정으로 이동 ( 모두 선택 및 결합 ) 2. 빌드 옵션 검색 3. C / C ++ / Objective-C 용 컴파일러
— nburk

사람들이이 최고 등급의 답변을 복사 한 이유는 무엇입니까?
— Kiran

10

때때로 새 버전 Xcode에서 이전 프로젝트를 열면이 메시지가 나타납니다.

이슈 탐색기로 이동하여 '다시 재구성 된 설정에 업데이트'경고 힌트를 따릅니다.

붐, 마술!


10

빌드 옵션에서 컴파일러를 LLVM 6.0으로 변경하면 충분하다는 것을 알았습니다 (xcode 6.1)

여기에 이미지 설명을 입력하십시오


10

4 년 전에 커밋 된 gitHub에서 다운로드 한 프로젝트에 대해 Xcode 6.1.1 에서 동일한 오류가 발생했습니다 . 나를 위해 아키텍처 를 기본값 표준 아키텍처 (armv7, arm64)로 설정 하고 C / C ++ / Objective-C 용 컴파일러를 건물 설정의 기본 컴파일러로 설정 했습니다.


9

최근 Xcode 6.0.1에서 이전 프로젝트 (Xcode 4.x에서 생성)를 실행하는 것과 동일한 문제가 발생합니다.

Building Settings 의 Architectures 를 기본값 인 " Standard architectures (armv7, arm64) " 로 변경하여 문제를 해결했습니다 .

이것이 비슷한 문제가있는 사람을 도울 수 있기를 바랍니다. :)


이 답변은 올바른 것입니다. @drewag
— Fede Cugliandolo

이 암호 오류 메시지 뒤에 다른 문제가있는 것처럼 보입니다. 어쨌든 이것은 XCode 6.1로 내 ptoblem을 해결 한 것입니다.
— Fabio Napodano

9

나는 찬장에서 나가 업데이트 할 많은 오래된 프로젝트 에서이 오류가 발생했습니다. 오래된 코드와 함께 Xcode 6을 사용하면 어떤 이유로이 문제가 발생하는 것으로 보입니다.

나는이 작업을 수행 한 모든 프로젝트 에서이 문제를 해결했습니다.

  1. 파생 데이터 삭제
  2. 에 제품 : 깨끗한을
  3. 프로젝트 대상에서 빌드 설정으로 이동하고 빌드 옵션으로 이동하여 "C / C ++ / Objective-C 용 컴파일러 " 의 값 을 ' 기본 컴파일러 '로 변경하십시오.

9

내 프로젝트에서 같은 문제가있었습니다. 나중에 프로젝트에 사용 된 타사 ( SQLite의 경우 fmdb ) 파일에 Info.plist가 포함 되어 있음을 발견했습니다 .

단순히 Info.plist 파일을 삭제하면 나를 위해 일했습니다!

Info.plist


나도 일했다.
— mkll

9

내 응용 프로그램은 XCode 9.4에서 제대로 작동했지만 XCode 10에서 프로젝트를 열 때이 문제가 발생했습니다. 나에게 문제는 빌드 설정이었습니다. 이 페이지에서 답을 찾았습니다 https://forums.developer.apple.com/thread/112141 .

간단히 말해서 파일> 작업 공간 설정…> 빌드 시스템으로 이동하여 "레거시 빌드 시스템"으로 변경하십시오.


8

내 경우에는 프로젝트 이름과 동일한 Bundle Name및 Executable file값의 이름을 바꿉니다 info.plist. 그것은 나를 위해 일했다.


8

나열된 답변을 모두 시도했지만 그중 아무것도 유용하지 않았습니다. 문제는 코코아 포드를 통해 서브 모듈과 연결된 다른 plist 파일이 존재했기 때문입니다. 운 좋게도 이것은 내 자신의 모듈이므로 하위 모듈 프로젝트 에서이 plist를 삭제하고 포드를 다시 설치했습니다.

해결책

나중에 나는 문제의 핵심이 두 번째 plist의 이름이라는 것을 이해했다 info.plist. 파일 이름을 바꾸고sources 하위 모듈 섹션을

두 번째 plist 파일은 고유 한 이름을 가지므로 Xcode는 좌절하지 않아야했습니다. 내 목표 설정조차도 메인 plist가 아닌info.plist . Xcode가 그 이름에 대해 특별한 고려를하는 것처럼 보입니다.

Xcode 6.4 및 Xcode 7.0 에서 재현 된 버그


나에게도 비슷한 일이 일어났다. 내 Info.plist가 올바르게 구성되지 않았으므로 XCode는 Info.plist프로젝트 폴더에서 처음 으로 발견되었으며 관련이없는 종속성에 속했습니다.
— Ohad Schneider

고마워, 당신은 나에게 무의미한 Xcode debuggin의 시간을 절약했다 '
— Alex

6

나는 비슷한 문제가 있었다. 어떻게 든 핵심 실행 파일에 대한 나의 가치가 혼란스러워졌습니다. $ {EXECUTABLE_NAME} (프로젝트> 정보)으로 다시 변경하십시오. 나를 위해 일했다!


1
한 가지 주목할 점은 광산이 $ (EXECUTABLE_NAME)으로 설정되어 있고 $ {EXECUTABLE_NAME} (으)로 업데이트하면 문제가 해결되었다는 것입니다.
— Eric

5

문제가 관련되어 있는지 모르지만 아마도 나 같은 머리카락을 당기는 사람에게는 해결책이 될 수 있습니다.

제 경우에는 많은 목표를 가진 프로젝트가 있습니다. 각 대상은 기본 프로젝트 인 a Cocoa Touch Static Library및 대상 Applications입니다. main파일이 라이브러리 컴파일에 추가되었지만 각 대상이 아닌 경우에도 해당 오류 메시지가 나타납니다. 내가 무엇을 했습니까? 섹션과 빙고 main의 각 대상에 파일을 수동으로 추가했습니다 Compile Sources.


고마워요, 이것은 많은 도움이되었습니다.
— JakeP

5

나에게 오류는 키의 .plist 파일에 CFBundleExecutable있었습니다. 두 단어 사이의 공백을 제거하여 실행 파일의 이름을 바꿨습니다. (예 : "Wild Racer"에서 "WildRacer"로) 그것을 발견하기 위해 1 일 걸렸다!!

Xcode는 디버깅에 도움이되지 않습니다!


4

필자의 경우 main (...) 함수를 포함하는 main.m이 "빌드 단계"의 "컴파일 소스"목록에 포함되지 않았습니다. 이런 경우인지 확인하려면 Build Phases에 들어가서 main.m이 "Compile Sources"목록에 나타나는지 확인하십시오.


1
나는 당신이 이것을 어떻게 발견했는지 모른다. 그리고 그것은 내 정확한 문제는 아니지만 솔루션으로 이어진다.
— Ri_

3

나를 위해 해결 한 것은 Build Active Architecture Only 를 No 에서 Yes 로 설정하는 것이 었습니다 .


3

X 코드 6.3.2 사용

[빌드 설정] 옵션. [모두]-[빌드 옵션]-[C / C ++ / Objective-C 용 컴파일러]-[기본 컴파일러 (Apple LLVM 6.1)]

그런 다음 프로젝트를 다시 빌드하면 정상적으로 실행됩니다.


2

필자의 경우 Xcode를 닫고 디스크 유틸리티로 권한을 복구하는 데 도움이되었습니다. 재부팅 후에 만 매력처럼 작동했습니다.


오늘 OSX를 업그레이드 한 후이 문제가 발생했습니다. 이것은 1 분 안에 정렬되었습니다.
— tonyedwardspz

2

오늘 아침 에도이 문제에 직면 했으므로 답변이 도움이되지 않았습니다. 그리고 몇 시간 동안 노력한 후에 나는 문제를 알아 냈습니다.

실제로 실수로 스토리 보드에서 작업하는 동안 방금 " Main.storyboard "의 이름 을 " .storyboard "로 바꾸고 " Main.storyboard "로 다시 변경하면 문제가 해결되었습니다.

해결책 (내 문제에 따라) : xcode에서로드 할 수 없어 문제가 발생한 파일의 이름을 변경했을 수 있습니다. 예를 들어, 위에서 언급 한 것처럼 ' 실행 파일 "이름
가능한 경우 영역 : 작업중인 마지막 파일 일 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.