AppStoreæåºã¢ããªã§Appleãç´æ¥ã¯è¨±å¯ããªãå¤é¨ã©ã¤ãã©ãªã使ç¨ããæ¹æ³
è¦ããã«ãèªåã§ãã«ããã¦ã¹ã¿ãã£ãã¯ãªã³ã¯ãããã ããªãã§ããã©ãâ¦â¦ã以ä¸ã®ä»¶ã®ç¶ã(解決編)ã§ãã
ソースコードビューア GlassDolphin for iPad/iPhone 本当に完成!(しかしreject) - tagomorisのメモ置き場
iOS SDKã«å ¥ã£ã¦ãã®ã«ä½¿ãã¨æå³ä¸æãªrejectã¡ã¼ã«ã§æããã libarchive ã§ãããçµå±ã©ããããã¨ããã¨ã以ä¸ã®ããã«ãã¾ããã
- libarchive ããã³(ãããä¾åãã) bzlib ããã¦ã³ãã¼ããã¦å±é
- libarchive 㯠configure ãå®è¡
- Xcodeã§æ°è¦ããã¸ã§ã¯ãã使ããããã« libarchive/bzlib ãåãè¾¼ãã§ãã«ã
- i386(Simulator)ããã³armv7(Device)ã®ä¸¡æ¹ã§ãã«ã
- ã³ãã³ãã§çµåãã¦ã¦ããã¼ãµã«ãã¤ããªå
- ãããããªãã¨ãã¢ããªå´ã®ã·ãã¥ã¬ã¼ã¿/宿©ã®ä¸¡æ¹ã§åããã¤ããªã«ãªããªã
- 使ç¨ããããã¸ã§ã¯ãã®å´ã§åãè¾¼ã
ãããªæããæé ã¯å¾ã§è©³è¿°ãä¸è¨ã¨ã³ããªã®ã³ã¡ã³ãæ¬ã§ãç§»æ¤ã¨ãããªãã¦ããã®ã¾ã¾ãã«ãããã°ãããããï¼ãã¨ããã³ã¡ã³ããããã ãã¾ããããTwitterã§ãè±èªã§ãã·ã³ãã«åã ãå¤ãã¦ã³ã³ãã¤ã«ãç´ãã°ãããããããªãï¼ãã¿ãããªãã¨ãæ¸ãã¦ãããªã³ã¯å
ãç´¹ä»ãã¦ããã ããããã¾ããã
æ£ç´ãçç¸ãã©ããªã®ãã¯ãããããã¾ããããä»åã¯å
ã®ã©ã¤ãã©ãªã®ã³ã¼ãã«ã¯ä¸åæãå
¥ãããå¼ã³åºãå´ãå¤ãããã¨ãªãããã«ããç´ãã¦ãªã³ã¯ã®ä»æ¹ãå¤ããã ãã§AppStoreã®æ©æ¢°å¼ãã§ãã¯ã¯éãããã«ãªãã¾ããã
å¯è½æ§ã¨ãã¦ã¯ä»¥ä¸ã®ã©ããã¿ãããªæãããªã¼ã¨æãã¾ãã
- Appleã¯ä½¿ãããã¨ãã«ãã§ãã¯ã§ãããããSDKã«ã¯ç¹æ®ãªç®å°ã®ã¤ããã·ã³ãã«ã®ãã¤ãããã¯ãªã³ã¯ã©ã¤ãã©ãªãæ·»ä»ãã¦ãã
- ãã¤ãããã¯ãªã³ã¯ã©ã¤ãã©ãªã¨ãã¦ãã«ããã¦ããèªåã§ããã¡ã ã£ã
- ãSDKã®ãã¤ãããã¯ãªã³ã¯ã©ã¤ãã©ãªã«ãªã³ã¯ããã¦ããã®ãæ¤åºããä»ã®æ¹æ³ããªã«ããã
ã¡ãªã¿ã«æåã¯SDKã«å«ã¾ãã libarchive2.6.2.dylib ããªã³ã¯ãã¦ã¾ãããããã¡ããä»ã®ãã®(ãã¼ã¸ã§ã³çªå·ãçç¥ããããã®)ã試ãã¾ããããã¡ã§ããã
iOSã¢ããªç¨ã«libarchiveããã«ãããæé
ä»ã®ã©ã¤ãã©ãªã§ãã»ã¼åãããã«è¡ããããããªãããªã¨æããã¡ãã£ã¨ãããã¾ããã®çã«ãããã¦æéãããããªï¼ 以ä¸ã®ã¨ã³ããªãæ¿ããåèã«ããã¦ããã ãã¾ãããå¤è¬ï¼
PostgreSQL Client Library (libpq) for iPhone/iPad - jakago
ãªãæé ã§ã¯ããããã¨ããã¯Xcodeã§ãããã¨ããæããã§ã¯ãã£ã¤ãã¼ã
ã©ã¤ãã©ãªã®ãã«ãç¨ããã¸ã§ã¯ããä½ã
ã©ã¤ãã©ãªã®ãã«ãç¨ããã¸ã§ã¯ããã¢ããªã¨ã¯å¥ã«æ°è¦ä½æãä»å㯠"archivelib" ã¨ããååã§ä½ã£ãããªãã§ããããlibarchiveã¨ããååãé¿ããã®ãã¯ãお察しくださいã
ãªã使æã«ã¯Xcodeã§ "iPhone OS" â "Library" â "Cocoa Touch Static Library" ãé¸ãã§ãããããéè¦ã
ãã¦ã³ãã¼ããå±éãæºå
ããããã libarchive-2.6.2.tar.gz ããã³ bzip2-1.0.5.tar.gz ãé©å½ãªå ´æã«ãã¦ã³ãã¼ãããããã以ä¸ã®ã³ãã³ããå©ãã¦å±é㨠configureã
~$ cd path/to/archivelib archivelib$ tar xzf ~/Download/libarchive-2.6.2.tar.gz archivelib$ tar xzf ~/Download/bzip2-1.0.5.tar.gz archivelib$ cd libarchive-2.6.2 libarchive-2.6.2$ ./configure --with-gnu-ld # ãããªã㨠config.h ãçæãããªãï¼ libarchive-2.6.2$ mkdir c; cp libarchive/*.c c/ # Xcodeã§ããã¸ã§ã¯ãã«å ããã¨ãã«æ¥½ãã§ããããã« libarchive-2.6.2$ cd ../bzip2-1.0.5 bzip2-1.0.5$ mkdir c; cp libarchive/*.c c/
ã©ã¤ãã©ãªã®ãã«ãæºå
Xcodeã®ããã¸ã§ã¯ã archivelib ã«æ»ãã"Other Sources" ã«é©å½ã«åã©ã¤ãã©ãªç¨ã®ã°ã«ã¼ããä½ã(bzip2/libarchive)ãããããã®ä¸ã«åã©ã¤ãã©ãªãã£ã¬ã¯ããªã® c/ ã®ä¸ã®ãã®ãå
¨é¨æ¾ãè¾¼ããé¸ã¹ã°é¸ã¹ããã ãããã©(Windowsç¨ã®ã¨ãããã)ãã¾ãé¢åãªã®ã§ã¾ã¨ãã¦ãå¥ã«ã¨ã©ã¼ã«ãªã£ããããªããã
ãã¨ã¯ããã¸ã§ã¯ãè¨å®ã®ãã«ãè¨å®ã®ãã¡ãã¦ã¼ã¶ãããæ¤ç´¢ãã¹ãã«ããã¸ã§ã¯ãç¨ãã£ã¬ã¯ããªã®ãã¹ãå ãããå帰çãã«ãã§ãã¯ãå
¥ãããè¨å®å¤æ´ã Device/Release ã©ã£ã¡ãã ãå¿ãããããªãããã«ãï¼ ããé¢åã ãããã¹ã¦ã®æ§æãã§ããã¨ããã¨æããï¼
ããããã¯å¤åã©ã¤ãã©ãªã®é½åã«ãããã¦ã®é¨åã
ã¾ã libarchive ã¯ãã«ãæã« HAVE_CONFIG_H ã¨ãããã©ã°ãå¿
è¦ã¨ããã®ã§ãããã PROJECTNAME_Prefix.pch ã«å ããã
#define HAVE_CONFIG_H 1
ã¾ã libarchive ã®ã½ã¼ã¹ã³ã¼ãã«ã¯ bzlib ãã·ã¹ãã ã®includeãã¹ã«ããã¨æã£ã¦ããããã«æ¸ããã¦ããããä»åã¯ãã£ããã«è½ã¨ãã¦ãã¦ããã¸ã§ã¯ããã©ã«ãã®ä¸ã«ããã®ã§ã以ä¸ã®ããã«ä¿®æ£ããããã㯠archive_read_support_compression_bzip2.c 㨠archive_write_set_compression_bzip2.c ã®2ãã¡ã¤ã«ã®å é ä»è¿ã«ããã
#ifdef HAVE_BZLIB_H - #include <bzlib.h> + #include "bzlib.h" #endif
ããã§æºåå®äºï¼ (èªåãå¿ãã¦ãªããã°)*1
ã©ã¤ãã©ãªã®ãã«ãã¨ã¦ããã¼ãµã«ãã¤ããªå
ããã¯ããåèã«ãããã¼ã¸ã®éããXcodeã®ã¿ã¼ã²ããæå®ã§ "Simulator" ããã³ "Device" ã®ä¸¡æ¹ã§ããã«ãããå®è¡ãè¦åã¯ããããã¨åºåãããããç¡è¦ãã¨ã©ã¼ã¯ç¡è¦ã§ããªãã®ã§åºããé å¼µããå¤åãããã¾ããã§ãã©ã°ãä½ãè¶³ãã¦ãªãã¨ãã ã¨æããå¿
è¦ãªã Prefix.pch ã«å ããã¨ãããã¨ã¯ configure ããã¨ããã¾ã§æ»ã£ã¦ããªã«ããªãã·ã§ã³ãå¤ãã¦ãããªããã¨ããã*2
ãã«ããçµäºãããã¿ã¼ããã«ãéããã¦ããã¼ãµã«ãã¤ããªã使ããããã«ä»¥ä¸ã®ã³ãã³ããå®è¡ããã
$ cd archivelib archivelib$ lipo -create build/Release-iphone*/libarchivelib.a -output ./libarchivelib.a
ããã§ãæã¿ã®ãã®ãã§ãã¾ããï¼
ã¢ããªã®ããã¸ã§ã¯ãã§åãè¾¼ã¿ã使ç¨ãã
ã§ãããã£ã *.a ãã¡ã¤ã«ã¯ã¢ããªã®ããã¸ã§ã¯ãä¸ã§ "Frameworks" ãã "追å " â "æ¢åã®ãã¡ã¤ã«" ã§è¿½å ããã¨ããã«ãæã®ãªã³ã¯å¯¾è±¡ã«ãã¦ãããããã¡ãã使ç¨ããå´ã®ã½ã¼ã¹ã³ã¼ãã«ã¯åç
§ããã¨ãã®å®ç¾©ãå¿
è¦ãªã®ã§ãå¿
è¦ãªåã©ã¤ãã©ãªã® *.h ãã¡ã¤ã«ã¯ããã¸ã§ã¯ãã«åãè¾¼ãã§é©å½ãªå ´æã«æ¾ãè¾¼ãã§ããã¨ããã
ã·ãã¥ã¬ã¼ã¿ã§åä½ãã宿©ã§ãåä½ããã°ãè¦äºã«ã¦ããã¼ãµã«ãã¤ããªã®ãã«ãã®å®æã確èªã§ãã¾ãï¼
ã¶ã£ã¡ãã
åãã¦ããã¨é¢åãªãã ãã©ãä¸åº¦ä½ã£ã¡ããã°ãã¨ã¯ãã¾ãæ°ã«ããªãã¦ããã®ã§ããããä¹ãè¶ãããããã©ããããã¢ã ã¨æãã¾ããä¸åº¦ãã£ã¡ããã¨ãããã§ã©ããªã©ã¤ãã©ãªã§ã使ããããªã¼ã¨ããæ°åã«ãªãã®ã§ãç²¾ç¥çã«ã©ã¯ã«ã¯ãªãã¾ããããã¤ããªã®ã¢ãããã¼ãå¾ã®2æéã¯ãã¾ã ã«ãããããã®ã§ããã
ã¾ã zip ã ããæ±ããªããå¤åSDKã®zlibãç´æ¥ãªã³ã¯ãã¦ãå¼¾ãããªã*3ã®ã§ããã£ã¡ãä½¿ãæ¹ãã©ã¯ã ã¨ã¯æãã¾ããlibarchive ã£ã¦å®ã¯ gz/bzip2 以å¤ã«ããããã対å¿ãã¦ãããããã ãããããã¾ã使ãäºå®ããªããã ãã©ãã
以ä¸ãããããã¾ã§å®éã«ãã£ã人ããããããç²ããã¾ã§ããï¼
*1:ããã¾ããé 飲ã¿ãªããæ¸ãã¦ã¾ãâ¦â¦ã
*2:èªåã®å ´åã "bzlib.h" ã¸ã®å¤æ´ã«ãã°ããæ°ä»ããªãã¦ãæå㯠bzip2 ãå¤ãããã« configure --without-bzip2 ãã¦ãbzip2é¢é£ãã¡ã¤ã«ãå¤ãã¦ãã«ãããããã¦ããããã§ãæ§ããªãããªããããããæ¹æ³ãããã
*3:ã¨æããããå¼¾ããããªã誰ãæãã¦ï¼