2013-10-28 5 views
1

config.cfg 파일을 변경해야하는 Mac OS X에서 Python으로 응용 프로그램을 만들고 있습니다. py2app을 사용하여 python 스크립트를 myapp.app로 변환했습니다. 내 config.cfg 파일을 setup.py를 통해 myapp.app의 Resources 위치에 포함 시켰습니다. 그런 다음 myapp.pkg 파일을 만들어 /Application 위치에 myapp.app을 설치하려면 Packages을 사용했습니다. 그러나 Show Package Contents로 Application 위치에 myapp를 열었을 때 config.cfg 파일을 편집하려고 시도했을 때 You don't own the file config.cfg and don't have permission to write it이라는 대화 상자가 나타납니다. 나는 osx 10.8.5 Mountain Lion과 Xcode 4.6.1을 사용하고 있습니다. MY config.cfg 파일패키지를 통해 Mac OS X에서 패키지로 설치 한 파일을 편집하는 방법

[FOLDER] 
extensions = cfv 
############################# 

[KMS] 
serverIP1 = 127.56.98.104 
serverPort1 = 8080 
serverIP2 = 172.46.84.145 
serverPort2 = 8080 
SSL=TRUE 

답변

1

수정 가능한 데이터를 앱 번들에 저장하지 마십시오. 그 모든 것이 정적이어야하며, otherwire 권한은 엉망이 될 것이며, 코드 서명은 깨질 것입니다. 일반적으로 사용자가 수정할 수있는 파일은 사용자의 홈 폴더에 있습니다. 설정 파일의 경우 가장 좋은 방법은 환경 설정 파일로 처리하여 ~/Library/Preferences에 저장하는 것입니다. 환경 설정 파일의 이름 지정 규칙은 앱 이름 (예 : com.apple.Finder) 앞에 접두사와 반대 순서로 도메인 이름을 사용하는 것입니다. 도메인 이름을 소유하지 않은 경우 대신 "local"을 접두사로 사용하는 것이 좋습니다. 또한 해당 폴더의 대부분의 파일은 .plist 형식 (예 : com.apple.Finder.plist)입니다. 당신의 파일은 아마도 그렇지 않을 것이므로, 좀 더 적절한 확장자를 사용하십시오 (.cfg는 괜찮을 것입니다).

+0

귀하의 제안에 감사드립니다. 다른 사용자에게 config.cfg 파일을주는 방법. 처음에는 코드가 앱 실행을 시작하기 위해 config.cfg 파일에서 많은 데이터를 읽어야합니다. – imp

+0

나는 당신이 성취하려는 것을 이해하고 있는지 잘 모르겠습니다. OS X에서 각 사용자는 일반적으로 구성하고 유지 관리하는 자체 앱 설정을 가지고 있습니다. 나는 당신이 누군가에게 .cfg 파일의 복사본을 ~/Library/Preferences 폴더에 넣기위한 지시와 함께 줄 수 있다고 가정합니다. –

+0

선생님, 내 config.cfg 파일을보십시오. 실행중인 앱은 serverIP와 포트가 필요합니다. 나는 이것을 config.cfg 파일에 전달하고있다. 사용자는 해당 서버에 따라이 serverIP를 변경해야합니다. 또한 구성 파일을 읽는 데 configparser를 사용하고 있습니다. 그래서, 당신이 말하길, 내가 포함하는 dmg 파일, 응용 프로그램 위치에 설치 될 myapp.pkg 및 사용자가 ~/Library/Preferences 폴더에 배치해야하는 config.cfg 파일을 만들어야한다고 말하고 있습니까? ~/Library/Preferences 위치에 자동으로 config.cfg 파일을 배치하는 방법은 사용자 간섭없이 앱을 설치하는 동안 자동으로 지정하는 방법입니다. – imp