환경 변수를 설정하는 방법과 기본 프레임 워크를 MonoMac 응용 프로그램에 묶는 방법에 대해 설명하겠습니다.
환경 변수 설정과 같은 당신은 응용 프로그램의 Info.plist
의 LSEnvironment
섹션에서 환경 변수를 설정할 수 있습니다
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
<string>com.yourcompany.TableViewTest</string>
<key>CFBundleName</key>
<string>TableViewTest2</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSMinimumSystemVersion</key>
<string>10.6</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>LSEnvironment</key>
<dict>
<key>Foo</key>
<string>Bar</string>
</dict>
</dict>
</plist>
그것은처럼 보인다는 수동으로 한 번 해당 파일을 편집하고 추가해야합니다 적어도 하나의 환경 변수.
파일은 MonoDevelop에 의해 자동으로 만들어 지므로 LSEnvironment
섹션을 추가하기 만하면됩니다.
그런 다음 MonoDevelop에서 편집 할 수 있습니다. 프로젝트 옵션 인 "Mac OS X 응용 프로그램", "고급"으로 이동하십시오.
는
당신은 MonoMac 응용 프로그램의 기본 프레임 워크를 번들로 환경 변수를 설정할 필요가 없습니다
이 그것을 할 수있는 훨씬 쉽고 청소기 방법이 MonoMac 응용 프로그램에 번들링 기본 프레임 워크입니다 하는
작은 test applications을 만들었습니다.이 프레임 워크는 기본 Objective C 응용 프로그램과 MonoMac 응용 프로그램에 모두 번들로 제공됩니다.
먼저해야 할 일은 프레임 워크를 앱과 함께 묶는 것입니다. 현재 MonoDevelop에서이 작업을 수행 할 수있는 방법이 없으므로 수동으로 파일을 복사하거나 빌드 후 스크립트 (예 : copy-framework.sh
참조)를 사용해야합니다.
프레임 워크를 YourApp.app/Contents/Frameworks/YourFramework.framework
에 넣는 것이 좋습니다. XCode가 처리하는 방식입니다. Apple's Documentation도 참조하십시오.
응용 프로그램 번들 내에서 라이브러리를 참조하려면`@executable_path '를 사용할 수 있습니다 (dyld man page 참조).
<dllmap>
을 사용하여 app.config 파일을 만드는 것이 좋습니다. 따라서 코드에 경로 이름을 넣지 않아도되므로 쉽게 프레임 워크 버전을 변경할 수 있습니다. 예를 들면 : 당신이 그 이름을 (위 dllmap는 예를 들어, TestFramework.framework/libTestFramework.dylib
제출하지 않습니다) 지정해야
는 프레임 워크 내부의 실제 라이브러리는 lib
시작 <configuration>
<dllmap dll="TestFramework" target="@executable_path/../Frameworks/TestFramework.framework/TestFramework" />
</configuration>
경우 또는 .so
/.dylib
로 끝납니다. 이것은 Mono의 버그이며, 방금 수정했습니다.
'System.Environment.SetEnvironmentVariable'이 Mono에서 작동하지 않는다고 말하는가? –