äžåºŠãã²ã«...
ïŒããããç©èªã¯åœŒã«é¢ãããã®ã ãã§ã¯ãããŸããããç§ã¯å¥ã®ããæ¹ã§å§ããããšããŸãïŒ
ãããããããªãŒãã³ãœãŒã¹ã®äžçã§...
ïŒéå»ã«ããOSSã®æŽå²ã¯éšåçã«ãã圱é¿ãåããŠããŸããïŒ
å©çãžã®æžæãåžžèãšåŒã°ãããšã欺ceptionãå§ãŸããŸãã
ïŒã»ãŒæ ŒèšïŒ
èæ¯
CïŒã§Macçšã®ããã°ã©ã ãæžãã®ã¯ãç§ãé©ãããŸããã Miguel de Icazaã«åªããMonoãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã«æè¬ââãã MonoMacã©ã€ãã©ãªãè³è³ãã MonoDevelopãå°ãåªããä»äºã«åãæãããŸããã ãã°ããããŠãAppStoreã®ã¢ã«ãŠã³ãã«æ¯æããè¡ãããŸãããããã°ã©ã ã¯å®äºãã1æ©å ã«ãããã¡ã€ã³äœæ¥ã®å€§èŠæš¡ãããžã§ã¯ããéå§ããã延æãããªããã°ãªããŸããã§ããã ãããŠ1幎åŸã30æ¥åŸã«AppStoreã®ç©ºã®ã¢ã«ãŠã³ããééããããšããã¡ãã»ãŒãžãæ¥ãŸãã-ããã¯äœããããå¿ èŠãããå åã§ããã Xamarin Studioã«ã¢ããã°ã¬ãŒãããMonoDevelopã¯ãããã«MonoMacãããžã§ã¯ããXamarin.Macã«å€æããããšãç³ãåºãŠããã®åãXamarin.Macããã£ã$ 999ã§è³Œå ¥ããããã«ææ¡ããããµã€ãã«æ¡å ããŸããã
å®ãèšããšãç§ã¯å°ãdç¶ãšããŠããŸãã-ç¡æã®è£œåã§è¶£å³ã®éçºãå§ããã®ã§ãããŒã«ã§ãéã皌ãããšãæãã§ãããšããŠããåºçã®æ©äŒã«äœåãã«ãæãããšããèããããŸããã§ããã ããã«-åžå Žã§ã®å ¬éãäœããã®ããŒãžã£ãŒãªã©ã«é¢ããStackOverflowã®æçš¿ãæåäºäŸãæŒ ç¶ãšæãåºããŸãããããããXamarin Studioã§å¿ èŠãªãã¹ãŠã®ãã§ãã¯ããŒã¯ã¯å³ããç¡å¹ã«ããã補åã®ãã«ããŒãžã§ã³ã®è³Œå ¥ãå¿ èŠã§ããã ããããç§ã¯ã©ããã§ã ãŸãããããŸãã¯çŸä»£ã®èšèã§ã圌ããåžå Žãžã®å ¬éã®ããã®ãã¬ãã¢ã ãµãŒãã¹ãæ¯æãããããã«è£œåã®æµéæŠç¥ãå€ããããšã«æ°ä»ããŸããã
ããèªäœããã¹ãŠ
Miguelã®äººã§ç§ã®ãã®ãšXamarinã®é¢ä¿ãèŠããšãã ããã ãŸããŠããªã-éçºè ã¯èªåã®è£œåã§äœããããæš©å©ããããã©ã€ã»ã³ã¹ãå€æŽãããããéãæã£ãŠãã¬ãã¢ã ãµãŒãã¹ãæäŸãããããæš©å©ã¯ãããŸããã Xamarin.Macã®å Žåãããã¯Monoã©ã€ãã©ãªãšã®éçãªã³ã¯ãµãŒãã¹ã§ããããã®éãããã°ã©ã ã¯Mono Runtimeã«äŸåããªããªããã©ã®ã³ã³ãã¥ãŒã¿ãŒã§ãå®è¡ã§ããŸãã ãããžã§ã¯ãã¯ãAppStoreã§å ¬éããããã®è³æ Œããµã³ãããã¯ã¹èšå®ãªã©ã®èŠä»¶ãåãããå¿ èŠãªèšŒææžã§çœ²åãããŠããŸãã
2012幎12æ12æ¥çŸåšãXamarinã¯Xamarin.MacãšåŒã°ããMonoMacã®ã¹ãŒããŒã»ãããæäŸããŠããŸãã ããåºç¯ãªAPIã«ãã¬ããžãMonoã®LGPLã³ã³ããŒãã³ãã®åçšã©ã€ã»ã³ã¹ãMonoåã蟌ã¿ãMac AppStoreã«å ¬éããããã®ã©ã€ã»ã³ã¹ãšãµããŒããåããŠããŸãã
Mono RuntimeèªäœãGNU Library GPL 2.0ã®äžã§ã©ã€ã»ã³ã¹ãããŠãããéçãªã³ã¯ã®åé¡ã«ã€ããŠã¯ããªãè°è«ã®äœå°ããããŸãã è€éãªçšèªãçç¥ããLGPLã©ã€ãã©ãªã«ãªã³ã¯ãããç¬èªã®è£œåããªãªãŒã¹ããå Žåãéçºè ã¯ãã®LGPLã©ã€ãã©ãªãå¥ã®ããŒãžã§ã³ã«çœ®ãæããæ©äŒãäžããå¿ èŠããããŸãã éåžžãããã¯ãããã°ã©ã ã§ãœãŒã¹ã³ãŒããæäŸããããå¥ã®ã©ã€ã»ã³ã¹ã䜿çšããå¿ èŠãããããšãæå³ããŸãã XamarinãåãæèŠã§ãã
ãŸãã¯ãMonoã©ã³ã¿ã€ã ãéçã«ãªã³ã¯ããå¿ èŠãããã¢ããªã±ãŒã·ã§ã³ãåºè·ããMonoãåãªã³ã¯ããããã®ãªããžã§ã¯ãã³ãŒããæäŸã§ããªãå ŽåãXamarinããåçšã©ã€ã»ã³ã¹ãååŸããå¿ èŠããããŸãã
äžæ£è¡çº
ç§ã®äººçã®äžã§æãå°ãªãã£ãã®ã¯ã誰ã§ããç¹ã«Gnomeã®äœè ã§ããMiguel de IcasãXamarinãšXimianã®åµå§è ã§ããMiguel de Icasã®ãããªå°æ¬ããã人ãã ãŸãããšã§ããã ããããæŠããŠã圌ã®ããŒã±ãã£ã³ã°æ åœè ã¯ã補åãæ¯æã£ãïŒãããŠãç§ã®å Žåã¯æ³å€ã«æ¯æã£ãïŒããšã§ããã§ã«æ³åŸã®æžç°¡ã«é ããŠãã®ç²Ÿç¥ã«éåããŠç§ã欺ããŠãããšç¢ºä¿¡ããŠããŸãã ãããã£ãŠãç§ã¯èªåèªèº«ã«åãæš©å©ãçä¿ããæ£åŒã«ã¯äœãéåããŸããã§ãããããã®çµæãç¡æããŒãžã§ã³ã®ããŒã«ãããã䜿çšããŠããã°ã©ã ãAppStoreã«å ¬éããŸããã ãã®ããã°ã©ã ã«ã¯ã.NET Bytecodeãå«ã.exeãã¡ã€ã«ãšãå¿ èŠãªã©ã€ãã©ãªãå«ãŸããŠããŸãããããã¯ãçŸåšã®.NET FrameworkãšMonoã©ã³ã¿ã€ã ã䜿çšããŠå®è¡ã§ããMonoã©ã€ãã©ãªãAOTã³ã³ãã€ã«ããŸãã¯ä»ã®ã¢ã¯ã·ã§ã³ãšã®éçãªã³ã¯ã«ã絶察ã«ååã§ãã ããããLGPLã©ã€ã»ã³ã¹ã¯ããããè¡ãæ¹æ³ããšã³ããŠãŒã¶ãŒã«æ瀺ãã矩åãè² ããŸããïŒç§èªèº«ã¯ãããç¥ããªãããšã¯èšããŸã§ããããŸããïŒãããã«å¿ èŠãªãã¹ãŠãæäŸããã ãã§ãã
æè¡çãªè©³çŽ°
MonoDevelopèªäœãXamarin Studioã«æŽæ°ãããããã§ã®.pkgããã±ãŒãžã®äœæããããã¯ãããŸããã ãŸãã MonoMacPackagerããŒãžã«ããã±ãŒãžã®äœææé ã衚瀺ãããªããªããXamarin.Macãžã®ãªã³ã¯ã衚瀺ãããŸããã ããã¯äžå¿«ã§ãããèŽåœçã§ã¯ãããŸããããªããªããæ¬è³ªçã«è£œåã®ã¢ãŒã«ã€ããšå€ãããŒãžã§ã³ãããããã§ãã MonoDevelop 3.0.6ãããŠã³ããŒãããããã«åãããŠãããžã§ã¯ãã調æŽãïŒäºææ§ã®ãªãAPIåŒã³åºãã1ã€åé€ããå¿ èŠããããŸããïŒãããã¹ãŠãªã³ã¯ããã©ã¡ãŒã¿ãŒãéžæããŸãã...ããã°ã©ã ãæ£åžžã«ã³ã³ãã€ã«ã§ããŸããã§ããã å®ãèšããšãç§ã¯çç±ãç解ããŠããŸããã§ãããããã«ãŒã¯ãMono Runtimeã®ç°ãªãããŒãžã§ã³ã§ã®äœæ¥ãæåŠãããªã³ã¯ãšã©ãŒãçºçããããã以äžå ãžé²ã¿ãŸããã ãã ãã[ãªã³ã¯ããªã]ãªãã·ã§ã³ãéžæãããšããããžã§ã¯ããäœæã§ããŸãããããžã§ã¯ãã¯æ倧8ã¡ã¬ãã€ãå¢ããŸãããåé¡ãªãæ©èœããŸãã ãã®å Žåãã·ã¹ãã ã®å®å šããŒãžã§ã³*ãDLLã¢ã»ã³ããªã¯ãããã¹ãŠãªã³ã¯ãã¢ãŒãã®å Žåã®ããã«ãã¡ã¿ããŒã¿ã ãã§ãªããããžã§ã¯ãã«å«ãŸããŸãã ç§ã®å Žåãã¡ã€ã³ã®.exeãããžã§ã¯ãã«ãåãã«ãŒã«ãé©çšããããããããã¯ãã©ã¹ã«ãªããŸãããã€ãã³ãŒãå šäœããã®ãŸãŸæ®ããŸãã
ãã®æ¹æ³ã§ååŸããã€ã³ã¹ããŒã©ãŒã¯æ£åžžã«èµ·åãã補åãã€ã³ã¹ããŒã«ããŸãããããã°ã©ã ã¯èµ·åãæåŠããŸãã Googleãšã·ã¹ãã ãã°ã®èª¿æ»ã«ãããšãMono Developã«ã¯ããã°ã©ã ã«äžæ£ãªè³æ Œãå«ãŸããŠããŸããkeychain-access-groupsã¯OSããŒãžã§ã³10.8ãšäºææ§ããªãããŸã£ããæå¹ã§ã¯ãªãå¯èœæ§ããããŸãã ãã®åé¡ã¯Xamarin.Macã§è§£æ±ºãããŸããããç§èªèº«ã解決ããªããã°ãªããªãã£ããããç§ã¯å°é£ãªéãé²ã¿ãŸããã ãã®çµæãã¢ã»ã³ããªã«æ£ããããŒã¿ãé©çšããŠå眲åãããã«ãåŸã¹ã¯ãªããã®å®æœåœ¢æ ã決å®ããŸããã
ãã®ããŒãžã§ã³ã¯AppStoreã«éä¿¡ãããŸããããããã«è³æ Œã«é¢ããä»ã®åé¡ãlibMonoPosixHelper.dylibãã¡ã€ã«ã«çœ²åããªããåæã«å ±æã¡ã¢ãªã®äœ¿çšãèš±å¯ãããŠããªããšããã¬ããŒããè¿ãããŸããã æåã®åé¡ã¯plistãã¡ã€ã«ãããã«ç·šéããããšã§è§£æ±ºããã2ã€ç®ã¯ãã«ãåŸã®ã¹ã¯ãªãããå®æãããããšã§è§£æ±ºããŸãããã3ã€ç®ã®åé¡ã¯ç§ãå°æãããŸããã åé¡ã«é¢ããæ å ±ã¯Stackoverflowã«ãããŸããã ããã§ã«ä¿®æ£ãããŠãããšèšãããŠããŸããããäžè¬ã«ç°å¢å€æ°MONO_DISABLE_SHARED_AREAãèšå®ããããšã§è§£æ±ºããŸããã å€æ°ã䜿çšããã¢ã€ãã¢ã¯éåžžã«åªããŠããŸãããã³ã³ãã€ã«æ®µéã§ã¯ãªããã¯ã©ã€ã¢ã³ãã®ã³ã³ãã¥ãŒã¿ãŒã§æ¢ã«å®è¡æ®µéã§èšå®ããå¿ èŠããããŸãã Xamarin.Macã§ãããã©ã®ããã«è§£æ±ºããããããããŸããããç§ã¯info.plistãã¡ã€ã«ã«ããŒãè¿œå ããããã°ã©ã ã®èµ·åæã«ãã®å€æ°ãèšå®ããããšã«ããŸããã
<key>LSEnvironment</key> <dict> <key>MONO_DISABLE_SHARED_AREA</key> <string>1</string> </dict>
ããã¯ååã§ããããšãå€æããŸãããããŠã£ã³ããŠã¿ã€ãã«ã®ååãééã£ãŠãããããããã°ã©ã ã¯ããäžåºŠã©ãããããŸããã
è¶
é倧ãšã©ãŒ
ãšãããŒã°
ãã®ããã°ã©ã ã¯çŸåšåžå Žã«åºãŠããã1æ¥ããã1ãã«ãš40ã»ã³ããæ£çŽã«æäŸããŠããŸãã äœãå€ãããªããã°ã713æ¥ä»¥å ã«ãAppStoreèªäœã®æéãèæ ®ããã«Xamarin.Macã®ãã«ããŒãžã§ã³ãè³Œå ¥ã§ããŸãã ãã®ç¶æ³ã«ã€ããŠTwitterã§Miguelã«æžããããè¿äºã¯ãªãã£ãã 圌ã¯ããuseãããŒã®åã質åã«ã€ããŠå¥ã®è³ªåè ã«çããŸããããXamarin.Macãè³Œå ¥ããæ¹ãè¯ãã§ãããã
é衚瀺ã®ããã¹ã
äžæ¹ãXamarinã®ãµããŒãæ åœè ã¯ãXamarin.iOSã®åžžé£é¡§å®¢ããã³æ¢åã®åŠçãšããŠããã£ã99ãã«ã§è£œåãè³Œå ¥ã§ããããšãæããŠãããŸããã ããã¯è¯ãç³ãåºã§ããäŒç€Ÿã®ç«å Žã«ãŸã£ããåæããªããŠããããããåæããã§ãããã
PSãkeyãæµ·è³ã¯å°æ¬ãããŠãã人ãããéã奪ãããšããããŒã§ã³ã¡ã³ããããã¹ãŠã®äººã«ãããªãã¯ããªãã®ç¥çµãç¡é§ã«ãããã°ããŒãã«ãããã¯ãŒã¯ã®ãšã³ããããŒãå¢å ãããªãããšãå§ããŸãã