iOSã©ã€ãã©ãªã®
MSLibraryã®éçºè
ããŒã ã«ããå¥ã®èšäºã¯ãã¯ãã¹ãã©ãããã©ãŒã ã©ã€ãã©ãªã®äœæãšã³ã³ãã€ã«ãšããããªãäžè¬çãªãããã¯ã«
åœãŠãããŠããŸãã
ã©ã€ãã©ãªã¯ã以åã«éçºããããã°ã©ã ã³ãŒããããŸããŸãªããã°ã©ã ã§äœ¿çšã§ãããšããç¹ã§åªããŠããŸãã ãããã£ãŠãããã°ã©ãã¯ãæšæºæ©èœã®äžéšãšããŠã©ã€ãã©ãªã®äžéšã§ããæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ã䜿çšããããšã«ãããäœæ¥ã倧å¹
ã«ç°¡çŽ åããå®è¡æéãççž®ã§ããŸãã ãã®èšäºã§ã¯éçã©ã€ãã©ãªã®ã¿ãèæ
®ããããã®ã³ãŒãã¯ã³ã³ãã€ã«æã«å®è¡å¯èœãã¡ã€ã«ã«å®å
šã«å«ãŸããŠãããããããã°ã©ã ãç°¡åã«ç§»æ€ã§ããŸãã
ã©ã€ãã©ãªãããŒããããäœæãããã§ã«å®äºãããããžã§ã¯ãã®æ©èœã®äžéšãã©ã€ãã©ãªã«çµã¿èŸŒãããšãèæ
®ããŠãåé¡ããã詳现ãã€äœç³»çã«ã«ããŒããããšããŸããã ã¯ãã¹ãã©ãããã©ãŒã ãŸãã¯æ±çšæ§ãšã¯ãi386ãŸãã¯x86_64ã¢ãŒããã¯ãã£ãŒã®ããã»ããµãŒäžã§å®è¡ãããŠããã·ãã¥ã¬ãŒã¿ãŒãšãå®éã®ããã€ã¹ãšã®ã©ã€ãã©ãªãŒã®äºææ§ãæå³ããŸãã
1.ã©ã€ãã©ãªãããžã§ã¯ããäœæãã
ã©ã€ãã©ãªãéçºããå Žåãéçºè
ã¯2ã€ã®æ¹æ³ã䜿çšã§ããŸãã1ã€ç®-ã©ã€ãã©ãªããŒãããäœæããæ¹æ³ã2ã€ç®-ã©ã€ãã©ãªãäœæããããŒã¹ãšãªãæ©èœããããžã§ã¯ãã«ãããŸãã äž¡æ¹ãæ€èšããŠãã ããã
å³æžé€šäœæããŒãããã
ã¢ã¯ã·ã§ã³ã®ã·ãŒã±ã³ã¹ã¯ãæ°ãããããžã§ã¯ããäœæãããšããšåãã§ãã
ãã¡ã€ã«>æ°èŠ>ãããžã§ã¯ã...
iOS>ãã¬ãŒã ã¯ãŒã¯ãšã©ã€ãã©ãª> Cocoa Touch Static Library
ååãèšå®ããŸãïŒäŸ-MySecretLibraryïŒ
ãããè¡ãæ¹æ³ã®è©³çŽ°ã«ã€ããŠã¯ããã¡ããã芧ãã ããâã¹ããã1 ãã¡ã€ã«>æ°èŠ>ãããžã§ã¯ã...
å³ 1-1
ã¹ããã2 Cocoa Touch Static Libraryã®éžæ
å³ 1-2
ã¹ããã3 ã©ã€ãã©ãªãŒåïŒè£œååïŒã®å²ãåœãŠ...
å³ 1-3
ãããžã§ã¯ããŠã£ã³ããŠã¯æ¬¡ã®ããã«ãªããŸãã
å³1-4
å¥ã®ãããžã§ã¯ãã®æ©èœéšããäœæãããã©ã€ãã©ãª
æ¢è£œã®MyAppãããžã§ã¯ãããããããã«å«ãŸããããã€ãã®ã¯ã©ã¹ã«åºã¥ããŠã©ã€ãã©ãªãäœæãããšããŸãã ãããžã§ã¯ããŠã£ã³ããŠã¯æ¬¡ã®ããã«ãªããŸãã
å³ 2-0
éçã©ã€ãã©ãªã®æ°ããã¿ãŒã²ãããäœæããŸãã
ã¢ã¯ã·ã§ã³ã®ã·ãŒã±ã³ã¹ã¯ãæ°ããã©ã€ãã©ãªãæåããäœæãããšãã®ã·ãŒã±ã³ã¹ã«äŒŒãŠããŸãã
ãã¡ã€ã«>æ°èŠ> Targect ...
iOS>ãã¬ãŒã ã¯ãŒã¯ãšã©ã€ãã©ãª> Cocoa Touch Static Library
ååãèšå®ããŸãïŒäŸ-MySecretLibraryïŒ
ãããè¡ãæ¹æ³ã®è©³çŽ°ã«ã€ããŠã¯ããã¡ããã芧ãã ããâã¹ããã1 ãã¡ã€ã«>æ°èŠ>ã¿ãŒã²ãã...
å³ 1-1
ã¹ããã2 Cocoa Touch Static Libraryã®éžæ
å³ 1-2
ã¹ããã3 ã©ã€ãã©ãªãŒåïŒè£œååïŒã®å²ãåœãŠ...
å³ 1-3
ãããžã§ã¯ããŠã£ã³ããŠã¯æ¬¡ã®ããã«ãªããŸãã
å³ 1-4
MySecretLibraryãã¡ã€ã«ãå«ãæ°ããã¿ãŒã²ãããšãã©ã«ããŒããããžã§ã¯ãã«è¡šç€ºãããããšãããããŸãã
2.ã©ã€ãã©ãªã¢ãŒããã¯ãã£ãæ§æãã
ããã©ã«ãã§ã¯ãã¢ããªã±ãŒã·ã§ã³æ§æã«ã¯armv7ããã³arm64ã®ã¢ã»ã³ããªãå«ãŸããŠããŸãã armv7sïŒiPhone 5ãiPhone 5cãiPad 2012çšïŒãè¿œå ã§ããŸããããšãã°ãarmv6ãši386ãè¿œå ã§ããŸãã ããã¯ãã¹ãŠãã©ã€ãã©ãªãåäœããã¯ãã®ãã©ãããã©ãŒã ã«äŸåããŸãã
åèãŸã§ã«ã
éå»ã®ããŸããŸãªAppleããã€ã¹ã§äœ¿çšãããŠãããã©ââãããã©ãŒã ã®è¡šå³ 5
3.ãã«ããã§ãŒãºã®æ§æ
ã³ã³ãã€ã«ãã¡ã€ã«ã®è¿œå
ãã«ããã§ãŒãº> CompliteãœãŒã¹
ããã©ã«ãã§ã¯ãMySecretLibrary.mãã¡ã€ã«ãã³ã³ãã€ã«çšã«å«ãŸããŠããŸãã ç§ãã¡ã®ã¿ã¹ã¯ã¯ããŠãŒãã£ãªãã£èª¿éãã¡ã€ã«ïŒ.hïŒããªãœãŒã¹ãªã©ãå«ããã©ã€ãã©ãªãæ©èœããããã«å¿
èŠãªãã¹ãŠã®ãã¡ã€ã«ãè¿œå ããããšã§ãã
å³ 6-1
ããããŒãã¡ã€ã«ã®è¿œå
ãã«ããã§ãŒãº>ãã¡ã€ã«ã®ã³ããŒ
ããã©ã«ãã§ã¯ããã¡ã€ã«MySecretLibrary.hãå«ãŸããŠããŸãã ã©ã€ãã©ãªãæ°ãããããžã§ã¯ãã«æ¥ç¶ããããã«å¿
èŠãªãã¹ãŠã®ããããŒãã¡ã€ã«ãè¿œå ããå¿
èŠããããŸãã
åã©ã€ãã©ãªã«ã¯ããã®ã©ã€ãã©ãªã«å«ãŸãããã¹ãŠã®é¢æ°ã®ãããã¿ã€ãïŒå®£èšïŒãèšè¿°ããããããŒãã¡ã€ã«ãå¿
èŠã§ããããšãæãåºããŠãã ããã ã©ã€ãã©ãªã¯ããããŒãã¡ã€ã«ã䜿çšããŠãããã°ã©ã ã³ãŒãã«ãã®äžã«ååšããé¢æ°ãšãã®äœ¿çšæ¹æ³ãäŒããŸãã
éèŠïŒ ããŸããŸãªã¯ã©ã¹ãšé¢æ°ã®å®£èšãå«ãããããŒãã¡ã€ã«ãããã€ãããå Žåããããããã¹ãŠå¥ã
ã«æ°ãããããžã§ã¯ãã«æ¥ç¶ããããšã¯æãŸãããããŸããã ã©ã€ãã©ãªã®1ã€ã®èŠåºããã¡ã€ã«ãäœæããä»ã®ãã¹ãŠã®ãã¡ã€ã«ãããã«æ¥ç¶ãããšäŸ¿å©ã§ãã ããšãã°ãFoundationãªã©ã®æšæºãã¬ãŒã ã¯ãŒã¯ã®ããããŒãã¡ã€ã«ã¯æ¬¡ã®ããã«ãªããŸãã
財å£ããããŒ/* Foundation.h Copyright (c) 1994-2015, Apple Inc. All rights reserved. */ #include <CoreFoundation/CoreFoundation.h> #import <Foundation/NSObjCRuntime.h> #import <Foundation/NSArray.h> #import <Foundation/NSAutoreleasePool.h> #import <Foundation/NSBundle.h> #import <Foundation/NSByteOrder.h> #import <Foundation/NSCalendar.h> #import <Foundation/NSCharacterSet.h> #import <Foundation/NSCoder.h> #import <Foundation/NSData.h> #import <Foundation/NSDate.h> #import <Foundation/NSDateFormatter.h> #import <Foundation/NSDateIntervalFormatter.h> #import <Foundation/NSMassFormatter.h> #import <Foundation/NSLengthFormatter.h> #import <Foundation/NSEnergyFormatter.h> #import <Foundation/NSPersonNameComponents.h> #import <Foundation/NSPersonNameComponentsFormatter.h> #import <Foundation/NSDecimal.h> #import <Foundation/NSDecimalNumber.h> #import <Foundation/NSDictionary.h> #import <Foundation/NSEnumerator.h> #import <Foundation/NSError.h> #import <Foundation/NSException.h> #import <Foundation/NSFileHandle.h> #import <Foundation/NSFileManager.h> #import <Foundation/NSFormatter.h> #import <Foundation/NSHashTable.h> #import <Foundation/NSHTTPCookie.h> #import <Foundation/NSHTTPCookieStorage.h> #import <Foundation/NSIndexPath.h> #import <Foundation/NSIndexSet.h> #import <Foundation/NSInvocation.h> #import <Foundation/NSJSONSerialization.h> #import <Foundation/NSKeyValueCoding.h> #import <Foundation/NSKeyValueObserving.h> #import <Foundation/NSKeyedArchiver.h> #import <Foundation/NSLocale.h> #import <Foundation/NSLock.h> #import <Foundation/NSMapTable.h> #import <Foundation/NSMethodSignature.h> #import <Foundation/NSNotification.h> #import <Foundation/NSNotificationQueue.h> #import <Foundation/NSNull.h> #import <Foundation/NSNumberFormatter.h> #import <Foundation/NSObject.h> #import <Foundation/NSOperation.h> #import <Foundation/NSOrderedSet.h> #import <Foundation/NSOrthography.h> #import <Foundation/NSPathUtilities.h> #import <Foundation/NSPointerArray.h> #import <Foundation/NSPointerFunctions.h> #import <Foundation/NSPort.h> #import <Foundation/NSProcessInfo.h> #import <Foundation/NSPropertyList.h> #import <Foundation/NSProxy.h> #import <Foundation/NSRange.h> #import <Foundation/NSRegularExpression.h> #import <Foundation/NSRunLoop.h> #import <Foundation/NSScanner.h> #import <Foundation/NSSet.h> #import <Foundation/NSSortDescriptor.h> #import <Foundation/NSStream.h> #import <Foundation/NSString.h> #import <Foundation/NSTextCheckingResult.h> #import <Foundation/NSThread.h> #import <Foundation/NSTimeZone.h> #import <Foundation/NSTimer.h> #import <Foundation/NSURL.h> #import <Foundation/NSURLAuthenticationChallenge.h> #import <Foundation/NSURLCache.h> #import <Foundation/NSURLConnection.h> #import <Foundation/NSURLCredential.h> #import <Foundation/NSURLCredentialStorage.h> #import <Foundation/NSURLError.h> #import <Foundation/NSURLProtectionSpace.h> #import <Foundation/NSURLProtocol.h> #import <Foundation/NSURLRequest.h> #import <Foundation/NSURLResponse.h> #import <Foundation/NSUserDefaults.h> #import <Foundation/NSValue.h> #import <Foundation/NSValueTransformer.h> #import <Foundation/NSXMLParser.h> #import <Foundation/NSZone.h> #import <Foundation/FoundationErrors.h> #if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) || (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE) #import <Foundation/NSAttributedString.h> #import <Foundation/NSByteCountFormatter.h> #import <Foundation/NSCache.h> #import <Foundation/NSComparisonPredicate.h> #import <Foundation/NSCompoundPredicate.h> #import <Foundation/NSDateComponentsFormatter.h> #import <Foundation/NSExpression.h> #import <Foundation/NSExtensionContext.h> #import <Foundation/NSExtensionItem.h> #import <Foundation/NSExtensionRequestHandling.h> #import <Foundation/NSFileCoordinator.h> #import <Foundation/NSFilePresenter.h> #import <Foundation/NSFileVersion.h> #import <Foundation/NSFileWrapper.h> #import <Foundation/NSItemProvider.h> #import <Foundation/NSLinguisticTagger.h> #import <Foundation/NSMetadata.h> #import <Foundation/NSMetadataAttributes.h> #import <Foundation/NSNetServices.h> #import <Foundation/NSPredicate.h> #import <Foundation/NSProgress.h> #import <Foundation/NSUbiquitousKeyValueStore.h> #import <Foundation/NSUndoManager.h> #import <Foundation/NSURLSession.h> #import <Foundation/NSUserActivity.h> #import <Foundation/NSUUID.h> #endif #if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) || TARGET_OS_WIN32 #import <Foundation/NSArchiver.h> #import <Foundation/NSBackgroundActivityScheduler.h> #import <Foundation/NSCalendarDate.h> #import <Foundation/NSConnection.h> #import <Foundation/NSDistantObject.h> #import <Foundation/NSDistributedNotificationCenter.h> #import <Foundation/NSGeometry.h> #import <Foundation/NSPortCoder.h> #import <Foundation/NSPortMessage.h> #import <Foundation/NSPortNameServer.h> #import <Foundation/NSProtocolChecker.h> #import <Foundation/NSTask.h> #import <Foundation/NSXMLDTD.h> #import <Foundation/NSXMLDTDNode.h> #import <Foundation/NSXMLDocument.h> #import <Foundation/NSXMLElement.h> #import <Foundation/NSXMLNode.h> #import <Foundation/NSXMLNodeOptions.h> #import <Foundation/NSURLDownload.h> #import <Foundation/NSURLHandle.h> #endif #if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) #import <Foundation/NSAffineTransform.h> #import <Foundation/NSAppleEventDescriptor.h> #import <Foundation/NSAppleEventManager.h> #import <Foundation/NSAppleScript.h> #import <Foundation/NSClassDescription.h> #import <Foundation/NSDistributedLock.h> #import <Foundation/NSGarbageCollector.h> #import <Foundation/NSHFSFileTypes.h> #import <Foundation/NSHost.h> #import <Foundation/NSObjectScripting.h> #import <Foundation/NSScriptClassDescription.h> #import <Foundation/NSScriptCoercionHandler.h> #import <Foundation/NSScriptCommand.h> #import <Foundation/NSScriptCommandDescription.h> #import <Foundation/NSScriptExecutionContext.h> #import <Foundation/NSScriptKeyValueCoding.h> #import <Foundation/NSScriptObjectSpecifiers.h> #import <Foundation/NSScriptStandardSuiteCommands.h> #import <Foundation/NSScriptSuiteRegistry.h> #import <Foundation/NSScriptWhoseTests.h> #import <Foundation/NSSpellServer.h> #import <Foundation/NSUserNotification.h> #import <Foundation/NSUserScriptTask.h> #import <Foundation/NSXPCConnection.h> #endif
å³ 6-2
æ¢è£œã®ã¢ããªã±ãŒã·ã§ã³ããã©ã€ãã©ãªãäœæããå Žåãåãæé ãå®è¡ããŠãã«ããã§ãŒãºãæ§æããå¿
èŠããããŸãã Compliteãµã¯ãŒããã³ãã¡ã€ã«ã®ã³ããŒã«ã¯ãåãååã®ã¿ãŒã²ããã«ãã£ãŠäœæãããMySecretLibraryã°ã«ãŒãã®ãã¡ã€ã«ã ãã§ãªããã¢ããªã±ãŒã·ã§ã³ã®ä»ã®ãªãœãŒã¹ãå«ããããšãã§ããããšãç解ããŠãã ããã MySecretLibraryã°ã«ãŒãã¯ãããšãã°ãã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®ã¯ã©ã¹ãšæ©èœã®ã¿ãããã«ãããã¡ã€ã«ã«è»¢éãããªã©ãæäœããæ©äŒãäžããããã«ã®ã¿äœæãããŸãã Xcodeã®ã³ã³ãã€ã«æã«ããã®ç¹å®ã®ã¿ãŒã²ããã®ãã«ããã§ãŒãºã§æå®ããããã¡ã€ã«ã®ã¿ã䜿çšããããšãæãåºããŠãã ããã ã€ãŸããäžèšã®äŸã§ã¯ãMySecretLibraryãã©ã«ããŒã®ãã¡ã€ã«ã®ã¿ãã³ã³ãã€ã«ãããŸãã
ååãšããŠããã®æ®µéã§ããã¹ãŠã®æºåäœæ¥ãå®äºããå³æžé€šã®çµã¿ç«ãŠãéå§ã§ããŸã...ãããã埮åŠãªç¹ã1ã€ãããŸãã å®éãXcodeã¯ãã³ã³ãã¥ãŒã¿ãŒã§å®è¡ãããŠããã·ãã¥ã¬ãŒã¿ãŒã®ã¢ãŒããã¯ãã£ãŒi386ãŸãã¯x86_64ã®ããã»ããµãŒããŸãã¯ããã»ããµãŒãã¢ãŒããã¯ãã£ãŒarmv7ãarmv7sãŸãã¯armv64ãåããŠããå¯èœæ§ãé«ãããã€ã¹ã®ããããã®çŸåšã®èšå®ã«åºã¥ããŠè£œåãã³ã³ãã€ã«ããŸãã ãããã£ãŠãã·ãã¥ã¬ãŒã¿çšã«ã³ã³ãã€ã«ãããã©ã€ãã©ãªã¯å®éã®ããã€ã¹ã§ã¯æ©èœããŸãããéã®å Žåãããã€ã¹çšã«ã³ã³ãã€ã«ãããã©ã€ãã©ãªã¯ã·ãã¥ã¬ãŒã¿ã§ã¯æ©èœããŸããã
ã·ãã¥ã¬ãŒã¿ãŒçšã®ã³ã³ãã€ã«
ã©ã€ãã©ãªã¿ãŒã²ããããã¢ã¯ãã£ãã¹ããŒã ããšããŠèšå®-MySecretLibraryãMySecretLibrary> iPhone 6sãªã©ã®ã·ãã¥ã¬ãŒã¿ãŒãéžæããŸã
å³ 7-1
ãããŠBãæŒããŠã©ã€ãã©ãªãããžã§ã¯ããã³ã³ãã€ã«ããŸãã
çµæã¯åçã®ããã«ãªããŸãã
å³ 7-2
èµ€ã®ãã¡ã€ã«ålibMySecretLibrary.aãé»ã«å€ãã£ãããšãã€ãŸããã³ã³ãã€ã«ãæåãããã¡ã€ã«ãã³ã³ãã¥ãŒã¿ãŒã«ä¿åãããããšã«æ³šæããŠãã ããã å³ã¯ãªãã¯ãããšãã¡ãã¥ãŒã衚瀺ããã[Finderã«è¡šç€º]é
ç®ãéžæããŸãã
å³ 7-3
éãããŠã£ã³ããŠã«ãã©ã€ãã©ãªãã¡ã€ã«-libMySecretLibrary.aããã³èª¿éãã¡ã€ã«-MySecretLibrary.hãããDebug-iphonesimulatorãã©ã«ããŒã衚瀺ãããŸãã
å³ 7-4
äžèšã®ãã©ã«ããŒã«ç§»åãããšãã·ãã¥ã¬ãŒã¿ãŒçšã«åéãããã©ã€ãã©ãªãŒã®ãã©ã«ããŒãProductsãã©ã«ããŒã«ããããšãæ確ã«ãªããŸãã
å³ 7-5
ãã®å Žåã®Debug-iphonesimulatorãã©ã«ããŒãžã®ãã«ãã¹ïŒ
/ãŠãŒã¶ãŒ/ [userName] /ã©ã€ãã©ãª/éçºè
/ Xcode / DerivedData / MySecretLibrary-esufqblgaisjjeecltzoxyiyogzj /ãã«ã/補å/ Debug-iphonesimulator
ããã€ã¹çšã®ã³ã³ãã€ã«
ã©ã€ãã©ãªã¿ãŒã²ããããã¢ã¯ãã£ãã¹ããŒã ããšããŠèšå®ããŸã-MySecretLibraryããGeneric iOS DeviceãïŒMySecretLibrary> Generic iOS DeviceïŒãéžæããŸã
å³ 8-1
ãããŠBãæŒããŠã©ã€ãã©ãªãããžã§ã¯ããã³ã³ãã€ã«ããŸãã
å³ 8-2
ãFinderã§è¡šç€ºããéžæããŸãã
å³ 8-3
ã©ã€ãã©ãªãã©ã«ããŒã«ç§»åããŸãã åã®ãã®ãšäŒŒãŠããŸãããã©ã€ãã©ãªãã¡ã€ã«libMySecretLibrary.aã¯ããã€ã¹ã®ã¢ãŒããã¯ãã£çšã«ã³ã³ãã€ã«ãããŠããŸãã
å³ 8-4
補åãã©ã«ãã¯æ¬¡ã®ããã«ãªããŸãã
å³ 8-5
ãã®å Žåã®Debug-iphoneosãã©ã«ããŒãžã®ãã«ãã¹ïŒ
/ãŠãŒã¶ãŒ/ [userName] /ã©ã€ãã©ãª/éçºè
/ Xcode / DerivedData / MySecretLibrary-esufqblgaisjjeecltzoxyiyogzj /ãã«ã/補å/ Debug-iphoneos
Productsãã©ã«ãã«ã¯ãã·ãã¥ã¬ãŒã¿çšãšããã€ã¹çšã®2ã€ã®ã©ã€ãã©ãªãããããšãããããŸãã
次ã®ã¹ãããã¯ãã©ã€ãã©ãªã®äž¡æ¹ã®ããŒãžã§ã³ãçµåãã1ã€ã®ãã€ããªãã¡ã€ã«ãäœæããããšã§ãã
4.ãŠãããŒãµã«ãã€ããªãã¡ã€ã«ãçæãã
ãŠãããŒãµã«ãã€ããªãã¡ã€ã«ãäœæããããã®ãªãã·ã§ã³ã¯ããªããããŸããããã¹ãŠã®å Žåãæ¬è³ªã¯3ã€ã®é£ç¶ããã¢ã¯ã·ã§ã³ã«èŠçŽãããŸãã
-ããã€ã¹çšã®ã©ã€ãã©ãªãçæããŸã
-ã·ãã¥ã¬ãŒã¿ãŒçšã®ã©ã€ãã©ãªãŒãçæãã
-ã©ã€ãã©ãªãçµåããlipoã³ãã³ãã䜿çšããŠãã€ããªãã¡ã€ã«ãäœæããŸã
èå³ã®ããæ¹ã®ããã«ããªãâã³ãã³ãã®è©³çŽ°ã説æããŸãããªã
ãŠãããŒãµã«ãã¡ã€ã«ãäœæãŸãã¯æäœããŸãïŒãŠãããŒãµã«ãã€ããªãåäžã®ã¢ãŒããã¯ãã£ãã¡ã€ã«ã«ããŸãã¯ãã®éã«å€æããŸãã
æ§æ
lipo [input_file] ... [-arch arch_type input_file] ... [-arch_blank arch_type] ...
{-info | -detailed_info}
[-output output_file]æäœ
[-segalign arch_typeå€]
Operationã¯æ¬¡ã®ããããã§ãã
[-create] [-arch_blank arch_type]
[-thin arch_type]
[-extract arch_type] ...
[-extract_family arch_type] ...
[-remove arch_type] ...
[-replace arch_type file_name] ...
[-verify_arch arch_type ...]
ãªãã·ã§ã³
-infoå
¥åãŠãããŒãµã«ãã¡ã€ã«ã®ã¢ãŒããã¯ãã£ã¿ã€ããç°¡åã«ãªã¹ãããŸãã
åã¢ãŒã«ã€ãã®ååããªã¹ãããŸãã
-detailed_info
å
¥åãŠãããŒãµã«ãã¡ã€ã«ã®ã¢ãŒããã¯ãã£ã¿ã€ãã®è©³çŽ°ãªãªã¹ãã衚瀺ããŸãã
æ±çšããããŒæ
å ±ããªã¹ãããŸãã ãã¡ã€ã«å
ã®ã¢ãŒããã¯ãã£ããšã«ã
-arch arch_type input_file
input_fileã«æå®ãããã¢ãŒããã¯ãã£ã¿ã€ããå«ãŸããŠããããšãlipoã«äŒããŸãã
input_fileããªããžã§ã¯ããã¡ã€ã«ããŠãããŒãµã«ãã¡ã€ã«ã®å Žåãããã¯äžèŠã§ãã
ãŸãã¯ãã¢ãŒããã¯ãã£ãŒïŒè€æ°å¯ïŒãªããææ¡ã§ããä»ã®ãã¡ã€ã«ã
-arch_blank arch_type
æå®ãããarch_typeã®åºåã¯ãMH_DYLIB_STUBãã¡ã€ã«ã«ãªããŸãã
ãã®ãã©ã°ã¯ã-create以å€ã®æäœã§ã¯äœ¿çšã§ããŸããã
-output output_file
åºåãã¡ã€ã«ã
-äœæ
å
¥åãã¡ã€ã«ãã1ã€ã®ãŠãããŒãµã«åºåãã¡ã€ã«ãäœæããŸãã
-thin arch_type
1ã€ã®å
¥åãã¡ã€ã«ãååŸããæå®ãããarch_typeã䜿çšããŠã·ã³åºåãã¡ã€ã«ãäœæããŸãã
-arch_type file_nameã眮ãæããŸã
1ã€ã®ãŠãããŒãµã«å
¥åãã¡ã€ã«ãååŸããŸãã åºåãã¡ã€ã«ã§ãarch_typeã®å
容ã眮ãæããŸã
å
¥åãã¡ã€ã«ãšæå®ãããfile_nameã®å
容ã
-arch_typeãåé€
1ã€ã®ãŠãããŒãµã«å
¥åãã¡ã€ã«ãååŸãããã®ãŠãããŒãµã«ãã¡ã€ã«ããarch_typeãåé€ããŸãã
çµæãåºåãã¡ã€ã«ã«é
眮ããŸãã
-extract arch_type
1ã€ã®ãŠãããŒãµã«å
¥åãã¡ã€ã«ãååŸãããã®ãŠãããŒãµã«ãã¡ã€ã«ããarch_typeã
ãã®ã¢ãŒããã¯ãã£ã®ã¿ãå«ããŠãããŒãµã«åºåãã¡ã€ã«ã
-extract_family arch_type
1ã€ã®æ±çšå
¥åãã¡ã€ã«ãååŸãããã®ãã¡ããªã®ãã¹ãŠã®arch_typesãã³ããŒããŸã
arch_typeã¯ããã®ãŠãããŒãµã«ãã¡ã€ã«ããããããã®ã¿ãå«ãåºåãã¡ã€ã«ã«ãªããŸã
ã¢ãŒããã¯ãã£ã ã¢ãŒããã¯ãã£ã1ã€ã ãèŠã€ãã£ãå Žåããã¡ã€ã«ã¯èããªããŸãã
-verify_arch arch_type ...
1ã€ã®å
¥åãã¡ã€ã«ãååŸããæå®ãããarch_typesããã¡ã€ã«ã«ååšããããšã確èªããŸãã
ãã®å Žåã¯ãã¹ããŒã¿ã¹0ã§çµäºããããã§ãªãå Žåã¯ã¹ããŒã¿ã¹1ã§çµäºããŸãã
-segalign arch_typeå€
ãŠãããŒãµã«ãã¡ã€ã«ãäœæãããšãã«ãæå®ãããarch_typeã®ã»ã°ã¡ã³ãã¢ã©ã€ã³ã¡ã³ããèšå®ããŸã
ãã®ã¢ãŒããã¯ãã£ãå«ãã å€ã¯16é²æ°ã§ããã
æŽæ°2ã®çŽ¯ä¹ãããã¯ããªããã¢ã©ã€ã¡ã³ããææ¡ã§ããªãå Žåã«ã®ã¿å¿
èŠã§ãã
å
¥åãã¡ã€ã«ïŒçŸåšã¯ãªããžã§ã¯ããã¡ã€ã«ã§ã¯ãããŸããïŒããŸãã¯
ããŸãã«ãä¿å®çã«æŽåã lipoãèªèããªããã¡ã€ã«ã®ããã©ã«ãã¯0ã§ã
ïŒ2 ^ 0ããŸãã¯1ãã€ãã®ã¢ã©ã€ã¡ã³ãïŒãããã³ã¢ãŒã«ã€ãã®ããã©ã«ãã®ã¢ã©ã€ã¡ã³ã
4ïŒ2 ^ 2ããŸãã¯4ãã€ãã®ã¢ã©ã€ã¡ã³ãïŒã§ãã
arch_typeãµããŒããããŠããã¢ãŒããã¯ãã£åïŒi386ïŒ32ãããIntelïŒppcïŒ32ãããpowerpcïŒ
ppc64ïŒ64ãããpowerpcïŒãŸãã¯x86_64ïŒ64ãããIntelïŒ
lipoã¯1ã€ã®åºåãã¡ã€ã«ãçæããå
¥åãã¡ã€ã«ãå€æŽããŸããã
ãªãã¯æ¬¡ã®ããšãã§ããŸãïŒãŠãããŒãµã«ãã¡ã€ã«ã«ã¢ãŒããã¯ãã£ã¿ã€ãããªã¹ãããŸãã 1ã€ä»¥äžã®å
¥åãã¡ã€ã«ããåäžã®ãŠãããŒãµã«ãã¡ã€ã«ãäœæããŸãã åäžã®ãŠãããŒãµã«ãã¡ã€ã«ãæå®ããã1ã€ã®ã¢ãŒããã¯ãã£ã¿ã€ãã«éåŒããŸãã å
¥åãã¡ã€ã«ããã¢ãŒããã¯ãã£ã¿ã€ããæœåºã眮æãåé€ããŠãåäžã®æ°ãããŠãããŒãµã«åºåãã¡ã€ã«ãäœæããŸãã
äŸ
$ cd /ã¢ããªã±ãŒã·ã§ã³
$ lipo Stickies.app/Contents/MacOS/Stickies -info
$ lipo Stickies.app/Contents/MacOS/Stickies -thin i386 -output Stickies.app/Contents/MacOS/Stickies.i386
$ cd Stickies.app/Contents/MacOS/
$ rmã¹ãã£ãããŒãº
$ mv Stickies.i386ã¹ãã£ãããŒãº
ããŸããŸãªã³ãã³ãïŒã³ãã³ãã©ã€ã³ïŒã®è©³çŽ°ã«ã€ããŠã¯ãSS64.comã
ã芧ãã ããããŠãããŒãµã«ãã€ããªã©ã€ãã©ãªãã¡ã€ã«ã®äœæ
-ããã€ã¹çšã®ã©ã€ãã©ãªãã³ã³ãã€ã«ããŸãïŒäžèšã®ãšããïŒ
-ã·ãã¥ã¬ãŒã¿ãŒçšã®ã©ã€ãã©ãªãŒãã³ã³ãã€ã«ããŸãïŒäžèšã®ãšããïŒ
-ãªãŒãã³ã¿ãŒããã«
-ã¿ãŒããã«ã®è£œåãã©ã«ããŒã«ç§»åããŸãïŒcdã³ãã³ããšãã©ã«ããŒãã¹ïŒ
-次ã®ããã¹ããå
¥åããŸãã
lipo -create Debug-iphoneos/libMySecretLibrary.a Debug-iphonesimulator/libMySecretLibrary.a -output libMySecretLibrary_combined.a
ãã®çµæããŠãããŒãµã«ãã©ã«ããŒãã¡ã€ã«libMySecretLibrary_combined.aãProductsãã©ã«ããŒã«ä¿åãããŸãã ããããŒãã¡ã€ã«ã¯ãDebug-iphoneosãŸãã¯Debug-iphonesimulatorãã©ã«ããŒãã䜿çšã§ããŸãã
å³ 9-0
åœç¶ãlibMySecretLibraryã®ä»£ããã«ãã³ãŒãã§ã©ã€ãã©ãªã®ååã䜿çšããå¿
èŠããããŸããå®éãã¿ã¹ã¯ã¯å®äºããŠããŸãã ãã ããXcodeã¯å€ãã®ããã»ã¹ãèªååããããŒã«ãæäŸããŸããç¹ã«ãAggregateã¿ãŒã²ããã䜿çšããŠã©ã€ãã©ãªã®äœæãšã¢ã»ã³ããªãèªååã§ããŸãã
ãããžã§ã¯ãã«æ°ããã¿ãŒã²ãããè¿œå -éèš
Xcodeã«ã¯ãå¿
èŠã§ã¯ãªãç¹å¥ãªã¿ãŒã²ãã£ã³ã°ãã¿ãŒã³ããããŸã
ç¹å®ã®ã¿ã€ãã®è£œåã«å¯Ÿå¿ããŸãã ãããã¯ã以äžã«äœ¿çšã§ããç¹å¥ãªéçŽã¿ãŒã²ããã§ãã
-ã¿ãŒã²ããã°ã«ãŒãã®é¢é£ä»ã
-ãã¡ã€ã«ã·ã¹ãã ã®ç¹å®ã®å Žæã«ãã¡ã€ã«ãã³ããŒãã
-å€éšãã«ãã·ã¹ãã ã䜿çšãã補åã®äœæ
-ã³ãã³ãã¹ã¯ãªãããå®è¡ãã
ãã®å Žåã
ã³ãã³ãã¹ã¯ãªããã
å®è¡ããããã®
ã¿ãŒã²ãããäœæããŸãããã®
ã¹ã¯ãªããã䜿çšããŠãã·ãã¥ã¬ãŒã¿çšãšããã€ã¹çšã®2ã€ã®ã¬ã€ã€ãŒãçµã¿åããããŠãããŒãµã«ã©ã€ãã©ãªãã¢ã»ã³ãã«ããŸãã
ã¢ã¯ã·ã§ã³ã®ã·ãŒã±ã³ã¹ã¯ãä»ã®ã¿ãŒã²ãããè¿œå ããå Žåãšåãã§ãã
ãã¡ã€ã«>æ°èŠ> Targect ...
ãã®ä»ïŒOS Xã®äžçªäžïŒ>éèš
ååãèšå®ããŸãïŒããšãã°ãMySecretLibrary_combinedïŒ
ãããè¡ãæ¹æ³ã®è©³çŽ°ã«ã€ããŠã¯ããã¡ããã芧ãã ããâ ã¹ããã1 ãã¡ã€ã«>æ°èŠ>ã¿ãŒã²ãã...
å³ 9-1
ã¹ããã2 [ãã®ä»]> [éèš]ãéžæããŸã
å³ 9-2
ã¹ããã3 ã©ã€ãã©ãªãŒåïŒè£œååïŒã®å²ãåœãŠ...
å³ 9-3
ãã®åŸããããžã§ã¯ããŠã£ã³ããŠã¯æ¬¡ã®ããã«ãªããŸãã
å³ 9-4
CONFIGURE AGGREGATEïŒã³ãã³ãã¹ã¯ãªãããé
眮ãããã©ãŒã ãè¿œå ïŒ
éèšã¿ãŒã²ãããéžæããã»ã¯ã·ã§ã³>ãã«ããã§ãŒãºã«é²ã¿ãã+ããã¯ãªãã¯ããŸã
å³ 10-1
éããã¡ãã¥ãŒã§ã>æ°èŠã¹ã¯ãªããå®è¡ãã§ãŒãºãéžæããŸã
å³ 10-2
ã©ã€ãã©ãªã®ã¢ã»ã³ããªãå¶åŸ¡ããã¹ã¯ãªãããé
眮ãããã©ãŒã ãéããŸãã
ãããžã§ã¯ããŠã£ã³ããŠã¯æ¬¡ã®ããã«ãªããŸãïŒç¢å°ã¯ã¹ã¯ãªãããé
眮ããå Žæã瀺ããŸãïŒã
å³ 10-3
ããŒã ã¹ã¯ãªãããè¿œå
ãŠãããŒãµã«ã©ã€ãã©ãªãäœæããããã®ã³ãã³ãã¹ã¯ãªããïŒ
BUILD_TARGET_DIR=$PROJECT_DIR/build xcodebuild -target $PROJECT_NAME -sdk "iphonesimulator" -configuration "Release" clean build xcodebuild -target $PROJECT_NAME -sdk "iphoneos" -configuration "Release" clean build lipo -create -output "$BUILD_TARGET_DIR/$PROJECT_NAME-Combined.a" "$BUILD_TARGET_DIR/Release-iphoneos/lib$PROJECT_NAME.a" "$BUILD_TARGET_DIR/Release-iphonesimulator/lib$PROJECT_NAME.a"
ãã®ã¹ã¯ãªããã¯ãåã3ã€ã®åçŽãªã¢ã¯ã·ã§ã³ã®å®è¡ãèªååããããšãããããŸãã
-ã·ãã¥ã¬ãŒã¿ãŒã®ã©ã€ãã©ãªãŒãçæããŸã
-ããã€ã¹ã®ã©ã€ãã©ãªãçæããŸã
-ã©ã€ãã©ãªãããŒãžããlipoã³ãã³ãã䜿çšããŠãã€ããªãã¡ã€ã«ãäœæããŸã
ãã®ã¹ã¯ãªãããã³ããŒããŠã[ã¹ã¯ãªããã®å®è¡]ãã©ãŒã ã«è¿œå ããŸãã
å³ 10-4
ã¿ãŒã²ãããéåMySecretLibraryãšããŠèšå®ããŸã
å³ 10-5
ã©ã€ãã©ãªãããžã§ã¯ããã³ã³ãã€ã«ããã«ã¯ãâBãæŒããŸãã
ãã®çµæããããžã§ã¯ãã®ãã©ã«ããŒïŒProductsïŒãã©ã«ããŒã§ã¯ãããŸããïŒã«ãçæããããã¹ãŠã®ãã¡ã€ã«ããããã«ããã©ã«ããŒã衚瀺ãããŸãã
å³ 10-6
å®éãããããã¹ãŠã§ãã ã芧ã®ãšããããã®è³ªåã¯ã»ãã®æ°è¡ã®ç°¡åãªã³ãŒãã§è§£æ±ºãããŸãã
ãã®èšäºä»¥å€ã«ããé¢é£ãããªãœãŒã¹ã®éè€ãæé€ããã¢ããªã±ãŒã·ã§ã³ã«æ¢ã«ã€ã³ã¹ããŒã«ãããŠããã©ã€ãã©ãªãæŽæ°ããããšã«é¢é£ãã質åããããŸããã æè¿ãCocoaPodsãªã©ã®äŸåé¢ä¿ç®¡çã·ã¹ãã ãéåžžã«äžè¬çã«ãªããŸããã ãã®ãããªã·ã¹ãã ã®äœ¿çšã¯è°è«ã®äœå°ã®ããåé¡ã§ãã äžæ¹ã§ã¯ããªãœãŒã¹ã®éè€ãåé¿ããæ¢è£œã®ã¢ããªã±ãŒã·ã§ã³ã§ã©ã€ãã©ãªã®çŸåšã®ããŒãžã§ã³ãç¶æããããšãå¯èœã«ãªããŸãã äžæ¹ãã©ã€ãã©ãªãä¿åããããµãŒãããŒãã£ã«å±ãããªããžããªã«å®å
šã«äŸåããŠããŸããããã«ãã©ã€ãã©ãªã®æ°ããããŒãžã§ã³ã以åã®ãã®ãšå®å
šã«äºææ§ããªãå Žåãã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãã·ã¥ããå¯èœæ§ããããŸãã
ãã®è³æãã圹ã«ç«ãŠã°å¹žãã§ã
ãMSLibraryfor iOSããŒã
ãã®ä»ã®èšäºïŒ
iOSãªã©ã®æ£èŠè¡šçŸã䜿çšããé»è©±çªå·ã®ãã£ããã£ãšæ€èšŒ...ããŒã1iOSãªã©ã®æ£èŠè¡šçŸã䜿çšããé»è©±çªå·ã®ãã£ããã£ãšæ€èšŒ...ããŒã2iOSãªã©ã§ãããããã¹ã¯ã䜿çšããŠè€æ°ã®æ¡ä»¶ãå®è£
ãã...ç°¡åïŒiOSãªã©ã®æ£èŠè¡šçŸã䜿çšããŠãæååããäžèŠãªæåãåé€ããŸã...