μ§κΈκΉμ§ κ°λ°ν λͺ¨λ Mac μ±μ Monoλ₯Ό 6.6μΌλ‘ μ κ·Έλ μ΄λν ν μλμ λ©μ·μ΅λλ€(6.8κ³Ό λμΌν λ¬Έμ ).
Mono 6.4μ μ΄μ μ€μΉλ‘ λλ리면 λ¬Έμ κ° ν΄κ²°λ©λλ€.
λ΄ μ±μ μ€μν κ²½μ° TargetFramework net461
(Mac μ§μ
μ ) λ° netstandard2.0
(곡μ dll)μ λν΄ μ»΄νμΌλ©λλ€.
νμ κ·Έλ λ―μ΄ μ€λ₯λ λ΄ κ²μ λλ€.
κΈ°λ€λ € μ£Όμ μ κ°μ¬ν©λλ€.
@LaraSQPλ ,
λν ν κ°μ§ μ£Όμν μ μ _release_μ©μΌλ‘ μ»΄νμΌν λ λͺ¨λ Έκ° κ°λ°μ μμμ μ€μΉλ μνμμ μ± λ΄μμ λͺ¨λ Έλ₯Ό λ²λ€λ‘ μ 곡νλ―λ‘ μ±μ _μ€ν_νκΈ° μν΄ λͺ¨λ Έλ₯Ό μ€μΉν νμκ° μλ€λ κ²μ λλ€. μ΄λ κ²νλ©΄ μλ €μ§ λ°νμμ΄ μμ΅λλ€. λλ λμ .NET Coreλ₯Ό μ¬μ©νκ³ μ±μ λ²λ€λ‘ λ¬Άμ΅λλ€(μ΄λ κ² νκΈ° μν΄ λͺ¨λ Έλ₯Ό μ€μΉν νμκ° μμ).
λΉ λ₯Έ λ΅λ³ κ°μ¬ν©λλ€.
Console.appμ λν΄ λͺ¨λ₯΄κ³ μμΈλ₯Ό λ³΄κ³ ν©λλ€.
Windowsμ Monoλ₯Ό μ€μΉνλ λ°©λ²λ λͺ°λμ΅λλ€. λΉμ΄λ¨Ήμ. μ΄λ€ μ€μΉ νλ‘κ·Έλ¨μ΄ μ μ©λ©λκΉ? 64λΉνΈ(GTK# μμ) λλ GTK#λ νμν©λκΉ?
GTK#μ νμνμ§ μμΌλ©° csprojμμ <MacBundleTarget>
μμ±μ μ¬μ©νλ λͺ¨λ
Έ λ²λ€λ§μλ§ mkbundleμ μ¬μ©ν©λλ€. μ§μ νμ§ μμΌλ©΄ κΈ°λ³Έκ°μ mono-6.4.0-osx-10.9-x64
μ΄λ©° mkbundle -list-targets
λμ΄λ λͺ¨λ κ°μ΄ λ μ μμ΅λλ€.
Console.appκ³Ό κ΄λ ¨νμ¬ (μ μ΄λ λμκ²λ) μ λ³΄κ° μλ λ κ°μ§ μ€λ₯λ§ μμ΅λλ€.
3μ 29μΌ 06:19:01 my-MacBook-Air com.apple.xpc.launchd[1](com.apple.xpc.launchd.oneshot.0x1000015e.MyApp1[10705]): μλΉμ€κ° λΉμ μ μ½λλ‘ μ’ λ£λ¨: 78
3μ 29μΌ 06:40:29 my-MacBook-Air com.apple.xpc.launchd[1](com.example.MyApp1.4212[11362]): μλΉμ€κ° λΉμ μ μ½λλ‘ μ’ λ£λ¨: 1
Monoκ° μ€μΉλ μνμμ μ¬μ»΄νμΌμ μλνκ³ μμ΅λλ€.
@LaraSQP "μΆ©λ λ³΄κ³ μ" μΉμ μ μ΄ν΄λ³΄μΈμ. μ±μ΄ μΆ©λν κ²½μ°μ λν νλͺ©μ΄ μμ΄μΌ ν©λλ€. κ·Έ μ¬λ³Έμ λ¬Έμ λ₯Ό μ§λ¨νλ λ° λμμ΄ λ©λλ€.
"μ€λ₯ λ³΄κ³ μ"κ° λΉμ΄ μμ΅λλ€.
BTW, λͺ¨λ Έ 6.8μ΄ μ€μΉλμ΄ μκ³ λμΌν λ¬Έμ κ° νμλμ§ μμ΅λλ€.
κ³ λ €ν΄μΌ ν ν κ°μ§λ (λ€λ₯Έ λ¬Έμ μ€ νλμμ) μ΄λ€ λ°©μμΌλ‘ Info.plistλ₯Ό μμ ν κ²½μ° LF μ μ©, UTF-8 _BOMμ΄ μλ_, CRLFκ° μλ κ²μ΄μ΄μΌ νλ€λ κ²μ λλ€. κ·Έλ μ§ μμΌλ©΄ μμλμλ€κ³ κ°μ ν©λλ€.
Info.plist
μ΄ nppμ μν΄ λ³κ²½λμμ΅λλ€.
λ΄ κ°λ° μ»΄ν¨ν°μ Monoλ₯Ό μ€μΉνμ§λ§ λ€μ μ»΄νμΌν΄λ Monoκ° λ²λ€μ μΆκ°λμ§ μμ΅λλ€. λ΄κ° 무μμ λμΉκ³ μμ΅λκΉ?
λ¦΄λ¦¬μ€ λͺ¨λμμλ κΈ°λ³Έμ μΌλ‘ μνλ©λλ€. κ·Έλ μ§ μμΌλ©΄ csprojμμ <MacBundleMono>
λ₯Ό trueλ‘ μ€μ ν©λλ€.
μ€μ ν μ μλ λ€μν μμ±μ λν΄μλ BundleMono.targets λ° Mac.targets λ₯Ό μ΄ν΄λ³΄μμμ€.
μ΄λ¬ν μ΅μ μ VS νλ‘μ νΈ μμ±μ μΆκ°νμ¬ λμ€μ λ μ½κ² μ°Ύμ μ μλλ‘ νκ³ μΆμ§λ§ κ·Έλ κ² ν μ μλ (μμ ) μκ°μ΄ λ무 μ μ΅λλ€.
csprojμ <MacBundleMono>True</MacBundleMono>
λ₯Ό μΆκ°ν΄λ μλνμ§ μμ΅λλ€.
κ·Έκ²μ΄ λμκ² λͺ λ°±νμ§ μμ λ°©μμΌλ‘ νμ§ μλ ν, κ·Έκ²μ κ·Έλ μ΅λλ€.
μ’μμ.
MacBundleMono
κ° False
μ€μ λ κ²½μ°μλ§ MonoBundle ν΄λκ° μ±μ ν¬ν¨λλ κ²μΌλ‘ λνλ¬μ΅λλ€.
λν Info.plist
λ UTF-8 BOM
λ° CRLF
λͺ¨λ ν¬ν¨νλλ‘ λΉλ νλ‘μΈμ€μ μν΄ λ³κ²½λλ―λ‘ λμ€μ μλμΌλ‘ μμ ν΄μΌ ν©λλ€.
λν Info.plistλ λΉλ νλ‘μΈμ€μμ UTF-8 BOMκ³Ό CRLFλ₯Ό λͺ¨λ ν¬ν¨νλλ‘ λ³κ²½λλ―λ‘ λμ€μ μλμΌλ‘ μμ ν΄μΌ ν©λλ€.
μ΄κ²μ κ·Έλ μ§ μμ΅λλ€. μ¬μ© μ€μΈ Info.plist νμΌ(μ»΄νμΌλ νμΌμ΄ μλ)μ 첨λΆν μ μμ΅λκΉ?
MacBundleMonoκ° Falseλ‘ μ€μ λ κ²½μ°μλ§ MonoBundle ν΄λκ° μ±μ ν¬ν¨λλ κ²μΌλ‘ λνλ¬μ΅λλ€.
μ, MonoBundle ν΄λκ° λͺ¨λ Έκ° λ²λ€λλ€λ κ²μ μλ―Ένμ§λ μμ΅λλ€. μ΄μνκ²λ.. μ΄ ν΄λκ° μλ€λ κ²μ λͺ¨λ Έκ° 'λ²λ€'λκ³ λͺ¨λ κ²μ΄ κΈ°λ³Έ μ€ν νμΌμ ν¬ν¨λλ€λ κ²μ μλ―Έν©λλ€.
MacBundleMono
λ νμμ
λλ€. λͺ¨λ
Έλ μ΄λ€ κ²½μ°μλ ν¬ν¨λμ§ μμ΅λλ€.
κ·Έλ¦¬κ³ 6.4.0.137 μ΄μμ Mono λ²μ μ κ³μν΄μ λ΄ μ±μ μΆ©λμν΅λλ€.
λμ€μ λΉλ λμμ μ΄ν΄λ³΄κ² μ΅λλ€.
κΈ°λ€λ € μ£Όμ μ κ°μ¬ν©λλ€.
λΉλν λ μ΄ κ²½κ³ κ° κ³μ νμλλμ?
Couldn't find mkbundle, so app bundle will require mono to be installed! Install mono from https://mono-project.com to bundle it with your app or set MonoPath to where it is installed.
κ·Έλ λ€λ©΄ λ€μ μμνκ±°λ <MonoPath>
μ¬μ©νμ¬ λͺ¨λ
Έκ° μ€μΉλ μμΉλ₯Ό ꡬ체μ μΌλ‘ κ°λ¦¬μΌμΌ ν μ μμ΅λλ€.
λν μ±μ dmgλ₯Ό 보λ΄μ£Όμ€ μ μμ΅λκΉ? λλ κ·Έκ²μ λ μ§λ¨νλ €κ³ ν μ μμλ€.
mkbundle
μ λν κ²½κ³ κ° νμλμ§ μμΌλ―λ‘ λ€μμ MonoPath
μλνκ² μ΅λλ€.
첨λΆλ κ²μ μ΄κ² μ κ² ν μ€νΈνλ λ° μ¬μ©ν κ°λ¨ν νλ‘μ νΈμ λλ€. Macμμ Mono 6.4 μ΄μμμ μμνμ§λ μμΌλ©° Console.appμ μΆ©λ λ³΄κ³ μκ° μμ΅λλ€.
environment variables
μ Monoλ₯Ό μΆκ°νμΌλ―λ‘ mkbundle
μ μ무 λ¬Έμ μμ΄ μ‘μΈμ€ν μ μμ΅λλ€. MonoPath
λ μ¬κΈ°μ λ¬Έμ κ° μλλλ€.
μ¬μ€, λλ μλμΌλ‘ mkbundle
λ₯Ό μ€νν μ μμλ€...
mkbundle --simple --cross mono-6.4.0-osx-10.9-x64 MacFileTest.exe -o MacFileTest
... Macμμ μ€νλμ§ μλλ€λ μ μ μ μΈνκ³ λ μ±κ³΅ν κ² κ°μμ΅λλ€.
λ΄ νλ‘μ νΈ(μ)μ mkbundle
μ λν μ°Έμ‘°κ° μκΈ° λλ¬Έμ λ΄κ° λ§μ΄ λμΉκ³ μλ κ²μ΄ λΆλͺ
ν©λλ€.
λ΄ λ§μ§λ§ κ²μλ¬Όμ΄ μμ±λμ§ μμκ±°λ μ°Ύμ μ μκ±°λ μ΄λ»κ² λ μμ λ κ² κ°μ΅λλ€.
λ¨Όμ netcoreapp3.1
μ€μ λ‘ λ¬Έμ κ° ν΄κ²°λμμ΅λλ€. μ λ§ κ³ λ§μ΅λλ€.
Mono
μ κ±°νκ³ μ΄μ λͺ¨λ μ±μ΄ net core
μμ μ€νλ©λλ€. λλ μ‘°κΈ λͺ
λ Ή μ΄νμ λλλ€ dotnet
μμ Terminal
νΈλ¦Όμ :
zsh: λͺ λ Ήμ μ°Ύμ μ μμ: dotnet
ν κ°μ§κ° λ€λ₯Έ κ²κ³Ό κ΄λ ¨μ΄ μλ€κ³ μκ°νμμμ€(?).
μκ³ μΆμ λ κ°μ§ μμ λ¬Έμ κ° λ¨μ μμ΅λλ€.
λΉλ νλ‘μΈμ€μλ νμ λ²λ€μ MacOS
ν΄λ μμ .pdb
νμΌμ΄ ν¬ν¨λ©λλ€.
λΉλ νλ‘μΈμ€λ νμ CFBundleExecutable
ν€λ₯Ό ν¬ν¨νλλ‘ Info.plist
λ₯Ό μμ νμ¬ κΈ°μ‘΄ ν€λ₯Ό 볡μ ν©λλ€(μλ κ²½μ°). κ·Έ κ²°κ³Ό BOM
λ° CRLF
κ° νλ‘μ νΈμ μλ Info.plist
μ μμμλ λΆκ΅¬νκ³ ν¬ν¨λ©λλ€.
μ΄ λ λ¬Έμ μ ν΄κ²° λ°©λ²μ 1μ μμ νκ³ 2λ₯Ό λ체νλ κ°λ¨ν λ°°μΉ νμΌμ
λλ€. λΆννλ post-build
μμλ λΆκ΅¬νκ³ λ무 μΌμ° μ€νλκΈ° λλ¬Έμ post-build events
μ μΆκ°ν μ μμΌλ―λ‘ μλμΌλ‘ μ€νν΄μΌ ν©λλ€. , λ΄κ° λ§ν μμλ ν.
무νν μΈλ΄μ¬μ λ€μ νλ² κ°μ¬λ립λλ€.