React-native-onesignal: Cocoapods/์•„ํ‚คํ…์ฒ˜/์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฌธ์ œ์™€ ๊ด€๋ จ๋œ Xcode 12์—์„œ OneSignal OneSignalNotificationExtension ๋นŒ๋“œ ์‹คํŒจ

์— ๋งŒ๋“  2020๋…„ 08์›” 31์ผ  ยท  32์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: OneSignal/react-native-onesignal

์„ค๋ช…:

v10์—์„œ ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ๋นŒ๋“œ๋˜๊ณ  ์‹คํ–‰๋˜๊ธฐ ์ „์— Xcode 10์—์„œ Xcode 12๋กœ ๋ฐฉ๊ธˆ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

OneSignalNotificationExtension ๋Œ€์ƒ ๋นŒ๋“œ ์‹คํŒจ:

Undefined symbol: _swift_getObjCClassMetadata

Undefined symbol: type metadata accessor for Foundation.UUID

Undefined symbol: Swift._bridgeAnythingToObjectiveC<A>(A) -> Swift.AnyObject

Undefined symbol: protocol descriptor for Swift.ExpressibleByFloatLiteral

Undefined symbol: associated conformance descriptor for Swift.ExpressibleByFloatLiteral.Swift.ExpressibleByFloatLiteral.FloatLiteralType: Swift._ExpressibleByBuiltinFloatLiteral

Undefined symbol: associated type descriptor for Swift.ExpressibleByFloatLiteral.FloatLiteralType

Undefined symbol: protocol descriptor for Swift.ExpressibleByIntegerLiteral

Undefined symbol: associated type descriptor for Swift.ExpressibleByIntegerLiteral.IntegerLiteralType

Undefined symbol: method descriptor for Swift.ExpressibleByIntegerLiteral.init(integerLiteral: A.IntegerLiteralType) -> A

Undefined symbol: static Foundation.UUID._unconditionallyBridgeFromObjectiveC(__C.NSUUID?) -> Foundation.UUID

Undefined symbol: value witness table for Builtin.Int32

Undefined symbol: protocol witness table for Swift.Int : Swift._ExpressibleByBuiltinIntegerLiteral in Swift


๊ทธ๋ฆฌ๊ณ  100๊ฐœ ์ด์ƒ์˜ ์˜ค๋ฅ˜

์ €๋Š” Xcode์™€ Mac์„ ์ž˜ ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ช…ํ™•ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ๋‹ค๋ฉด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

ํ™˜๊ฒฝ

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 0.63.2
onesignal ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 3.9.1
์—‘์Šค์ฝ”๋“œ 12
npm์„ ํ†ตํ•ด ์„ค์น˜๋˜๊ณ  ํฌ๋“œ์™€ ์—ฐ๊ฒฐ๋จ

๋ฌธ์ œ ์žฌํ˜„ ๋‹จ๊ณ„:

  • ์ง“๋‹ค

  • Help Wanted

    ๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

    Xcode 12์—๋„ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    Xcode 11์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Xcode12๋ฅผ ์—ด๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜์ž๋งˆ์ž ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

    โ–ธ Linking OneSignalNotificationServiceExtension
    
    โŒ  clang: error: no such file or directory: '/Users/carloscuesta/project-folder/ios/build/project/Build/Products/Debug-iphonesimulator/libRCTOneSignal.a'
    

    ์ด๊ฒƒ์€ OneSignal ์ธก์˜ ์˜ค๋ฅ˜๊ฐ€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์บ์‹œ์— ๋ญ”๊ฐ€ ์ด์ƒํ•œ๊ฒŒ ์žˆ๋Š”๊ฑฐ๊ฐ™์€๋ฐ
    ๋‚ด๊ฐ€ ์‹œ๋„ํ•œ ๊ฒƒ๋“ค:

    • Xcode ํŒŒ์ƒ ๋ฐ์ดํ„ฐ ์‚ญ์ œ - rm -rf ~/Library/Developer/Xcode/DerivedData/
    • ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ, ์›์‚ฌ ์บ์‹œ๋ฅผ ์ง€์šฐ๊ณ  ์ข…์†์„ฑ์„ ๋‹ค์‹œ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
    • ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฐ์ดํ„ฐ ๋ฐ ์ฝ˜ํ…์ธ  ์žฌ์„ค์ •
    • ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

    ๋‹ค๋ฅธ ๋ฌด์—‡์„ ์‹œ๋„ํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Production์—์„œ ์ž˜ ์ž‘๋™ํ•˜๊ณ  ๋นŒ๋“œ๊ฐ€ Xcode 11์—์„œ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๊ฒƒ์ด ์ œ๋Œ€๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

    OneSignal ๊ฐ€์ด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋งํฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๐Ÿ™๐Ÿผ

    ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ DerivedData ๋ฅผ ์ฒญ์†Œํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ๐Ÿ˜ž

    ๋ชจ๋“  32 ๋Œ“๊ธ€

    ์•ˆ๋…•,
    NotificationService.swift ํŒŒ์ผ์€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋‚˜์š”? ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    import UserNotifications
    
    import OneSignal
    
    class NotificationService: UNNotificationServiceExtension {
    
        var contentHandler: ((UNNotificationContent) -> Void)?
        var receivedRequest: UNNotificationRequest!
        var bestAttemptContent: UNMutableNotificationContent?
    
        override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: <strong i="8">@escaping</strong> (UNNotificationContent) -> Void) {
            self.receivedRequest = request;
            self.contentHandler = contentHandler
            bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
    
            if let bestAttemptContent = bestAttemptContent {
                OneSignal.didReceiveNotificationExtensionRequest(self.receivedRequest, with: self.bestAttemptContent)
                contentHandler(bestAttemptContent)
            }
        }
    
        override func serviceExtensionTimeWillExpire() {
            // Called just before the extension will be terminated by the system.
            // Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.
            if let contentHandler = contentHandler, let bestAttemptContent =  bestAttemptContent {
                OneSignal.serviceExtensionTimeWillExpireRequest(self.receivedRequest, with: self.bestAttemptContent)
                contentHandler(bestAttemptContent)
            }
        }
    
    }
    

    ์„ค์ • ์ง€์นจ์˜ 4.3.6๋‹จ๊ณ„๋ฅผ ์‚ดํŽด๋ณด๊ณ  ๋ชจ๋“  ๊ฒƒ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •ํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ณ„์† ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฑด๋ฐฐ

    ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    Objective-C ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์Šค์œ„ํ”„ํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

    ๋‚˜๋Š” ๋‹น์‹ ์ด Swift๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. Obj-C๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Objective C๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์ฆ๊ธฐ๋‹ค!

    Xcode 12์—๋„ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    Xcode 11์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Xcode12๋ฅผ ์—ด๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜์ž๋งˆ์ž ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

    โ–ธ Linking OneSignalNotificationServiceExtension
    
    โŒ  clang: error: no such file or directory: '/Users/carloscuesta/project-folder/ios/build/project/Build/Products/Debug-iphonesimulator/libRCTOneSignal.a'
    

    ์ด๊ฒƒ์€ OneSignal ์ธก์˜ ์˜ค๋ฅ˜๊ฐ€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์บ์‹œ์— ๋ญ”๊ฐ€ ์ด์ƒํ•œ๊ฒŒ ์žˆ๋Š”๊ฑฐ๊ฐ™์€๋ฐ
    ๋‚ด๊ฐ€ ์‹œ๋„ํ•œ ๊ฒƒ๋“ค:

    • Xcode ํŒŒ์ƒ ๋ฐ์ดํ„ฐ ์‚ญ์ œ - rm -rf ~/Library/Developer/Xcode/DerivedData/
    • ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ, ์›์‚ฌ ์บ์‹œ๋ฅผ ์ง€์šฐ๊ณ  ์ข…์†์„ฑ์„ ๋‹ค์‹œ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
    • ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฐ์ดํ„ฐ ๋ฐ ์ฝ˜ํ…์ธ  ์žฌ์„ค์ •
    • ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

    ๋‹ค๋ฅธ ๋ฌด์—‡์„ ์‹œ๋„ํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Production์—์„œ ์ž˜ ์ž‘๋™ํ•˜๊ณ  ๋นŒ๋“œ๊ฐ€ Xcode 11์—์„œ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ๊ฒƒ์ด ์ œ๋Œ€๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

    OneSignal ๊ฐ€์ด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋งํฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๐Ÿ™๐Ÿผ

    ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ DerivedData ๋ฅผ ์ฒญ์†Œํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ๐Ÿ˜ž

    ์ด์ƒํ•œ ์ ์„ ๋ฐœ๊ฒฌํ–ˆ๋Š”๋ฐ,

    Xcode 12๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•˜๋ ค๊ณ  ํ•˜๋ฉด ํ•ญ์ƒ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Xcode 11๋กœ ๋จผ์ € ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•œ ๋‹ค์Œ Xcode 12๋ฅผ ์—ด๊ณ  ์•ฑ์„ ๋นŒ๋“œํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค ๐Ÿคฏ

    ๊ทธ๋Ÿฌ๋‚˜ ๋นŒ๋“œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  Xcode 12๋กœ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋ ค๊ณ  ํ•˜์ž๋งˆ์ž ๋™์ผํ•œ ์˜ค๋ฅ˜๋กœ ๋‹ค์‹œ ์‹คํŒจํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜–

    Xcode 12 ๋ฐ onesignal-react-native 3.9.1์—์„œ ๋™์ผํ•œ ์˜ค๋ฅ˜:-(
    ์—…๋ฐ์ดํŠธ ์ „์— ํ”„๋กœ์ ํŠธ๊ฐ€ ์ž‘๋™ ์ค‘์ด์—ˆ์Šต๋‹ˆ๋‹ค.

    ๊ฐ™์€ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.
    ์›์‹œ๊ทธ๋„ SDK -> 2.15.2
    react-native-onesignal -> 3.9.1
    xCode 11์—์„œ ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

    ์•ˆ๋…•,
    ์ด์ƒ ํ•˜๋„ค์š” @carloscuesta . Xcode 11 ๋Œ€ 12์—์„œ ํ”„๋กœ์ ํŠธ ๊ฐ„์˜ ์ฐจ์ด์ ์„ ๋ณด์•˜์Šต๋‹ˆ๊นŒ? ์•„๋งˆ๋„ 12๋Š” ์–ด๋–ค ์ด์œ ๋กœ ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๋นŒ๋“œ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋‚ด Xcode๋ฅผ 11์—์„œ 12๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์„ ๋•Œ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

    ์•ˆ๋…•ํ•˜์„ธ์š” @rgomezp

    Xcode 11์—์„œ Xcode 12๋กœ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ์†Œ์˜ git status ๋Š” ์ˆ˜์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ ์‹คํŒจํ•œ ๋นŒ๋“œ๋ฅผ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฒ˜์Œ์œผ๋กœ ์ž‘์—… ํ›„ Xcode 11 ๋ฐ Xcode 12์—์„œ ๋นŒ๋“œํ•  ๋•Œ๋งˆ๋‹ค ๐Ÿ˜•

    Screenshot 2020-09-25 at 12 12 40

    Screenshot 2020-09-25 at 12 18 39

    ์•ˆ๋…•,
    ๋‚˜๋Š” ์ด๊ฒƒ์ด ์ด์ „์— ์—ฌ๊ธฐ์—์„œ ๋ณด๊ณ ๋œ ์ง„ํ–‰์ค‘์ธ Cocoapods ๋ฌธ์ œ ์™€ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

    ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์•ฑ์„ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ x86_64 ๋ฅผ VALID_ARCH ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: x86_64 arm64 arm64e

    ์ด ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ ์—๋Š” ํ•„์š”ํ•œ ์†”๋ฃจ์…˜์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด๋ด! ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @rgomezp

    ๋‚ด ์‹คํ—˜์˜ ๊ฒฐ๊ณผ๋ฅผ ์•Œ๋ ค์ค„๊ฒŒ!

    ์ œ์™ธ๋œ ์•„ํ‚คํ…์ฒ˜ ์ถ”๊ฐ€

    Project > Architectures > Excluded Architectures StackOverflow ๊ฒŒ์‹œ๋ฌผ์—์„œ ์ œ์•ˆํ•œ ๋Œ€๋กœ arm64 ๋ฅผ ์†Œ๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

    Screenshot 2020-09-28 at 13 40 32

    ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. x86_64 ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๋Š” ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    Screenshot 2020-09-28 at 13 39 50

    ๊ทธ๋ž˜์„œ x86_64 ๋ฅผ Excluded Architectures .

    Screenshot 2020-09-28 at 13 41 12

    ๋‹ค์Œ ๋ณ€๊ฒฝ ํ›„ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ์ˆ˜์ •๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ OneSignalNotificationServiceExtension.appex ์— ๊ด€ํ•œ ๋˜ ๋‹ค๋ฅธ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    Embedded binary is not signed with the same certificate as the parent app. Verify the embedded binary target's code sign settings match the parent app's.
    

    ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” CodeSign ๐Ÿค”๊ณผ ๊ด€๋ จ๋œ ์–ด๋–ค ๊ฒƒ๋„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค โ€“ Xcode11 ๋นŒ๋“œ๊ฐ€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค

    Screenshot 2020-09-28 at 11 36 29

    DerivedData ๋นŒ๋“œ๋ฅผ ์ •๋ฆฌํ•œ ํ›„ ์ปดํ“จํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค: Link app (i386) .

    ์˜ค๋ฅ˜๋ฅผ ์—ด๋ฉด DerivedData ํด๋”์—์„œ ๋งŽ์€ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค ์ค‘ ๋ˆ„๊ตฌ๋„ OneSignal๊ณผ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Xcode 11์—์„œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•œ๋‹ค๋ฉด ์ด๊ฒƒ์ด ์™œ ์‹คํŒจํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋„ˆ๋ฌด ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค ๐Ÿ˜…

    VALID_ARCHS

    ์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ ์ด๊ฒƒ์ด Xcode 12์—์„œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ๋Œ€์‹  Excluded Architectures ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค.

    ๋‚˜๋Š” ์ด๊ฒƒ์„ ์œ„ํ•ด ์–ด๋–ค User-Defined Setting ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์•˜๋‹ค. CocoaPods๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“ˆ์„ ์ˆ˜๋™์œผ๋กœ ์—ฐ๊ฒฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—.

    arm64 ์ œ์™ธ ํ›„ Xcode์—์„œ "๋™์ผํ•œ ์ธ์ฆ์„œ" ์˜ค๋ฅ˜์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ํฅ๋ฏธ๋กœ์šด ๋งํฌ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

    ๊ทธ๊ฒƒ์€ ํ™•์žฅ์ด ๊ทธ๋Ÿฌํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ฐฐ์ œํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ๊ฐ™์€ ์˜ค๋ฅ˜ :(

    ์˜ค๋Š˜์€ ์ƒ๊ฐ์ด ์•ˆ๋‚˜๋„ค์š” ๐Ÿ˜‚

    ์‹ค์ œ ์žฅ์น˜์—์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ ํ•˜์ง€ ์•Š์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ž์ฒด์˜ ์•„ํ‚คํ…์ฒ˜์™€ 100% ๊ด€๋ จ์ด ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    Screenshot 2020-09-29 at 09 17 24

    ํ™€๋ผ ์นด๋ฅผ๋กœ์Šค,
    ์ž์„ธํ•œ ์กฐ์‚ฌ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์‹œ์„ฑ์„ ์œ„ํ•ด ์ด ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ ์Šค๋ ˆ๋“œ ๋„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

    @carloscuesta ๋ฌธ์ œ๋ฅผ ์š”์•ฝ

    1. Embedded binary is not signed with the same certificate as the parent app... ์˜ค๋ฅ˜๋Š” ์œ ํšจํ•œ ARCHS๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ง€์นจ์— ๋”ฐ๋ผ ์ œ์™ธ๋œ ์•„ํ‚คํ…์ฒ˜์— arm64 ๋ฐ x86_64๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
    2. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์—ฐ๊ฒฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— Cocoapods ์ €์žฅ์†Œ์— ๊ฒŒ์‹œ๋œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

    Carlos, ์ด ์‹œ์ ์—์„œ ์ด๊ฒƒ์ด OneSignal์ด ์•„๋‹Œ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋“ค๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด Cocoapods๋ฅผ _์‚ฌ์šฉํ•˜๋Š”_ ๊ฒฝ์šฐ ์œ„์— ๋งํฌ๋œ Cocoapods ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

    ์•ˆ๋…•ํ•˜์„ธ์š” @rgomezp

    ๋‹น์‹ ์ด ์ œ๊ณตํ•œ ๋ชจ๋“  ๋„์›€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

    Carlos, ์ด ์‹œ์ ์—์„œ ์ด๊ฒƒ์ด OneSignal์ด ์•„๋‹Œ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋“ค๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ์ „์ฒด OneSignal ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๊ณ  OneSignalNotificationServiceExtension ํ”„๋กœ์ ํŠธ๊ฐ€ Xcode12์—์„œ ๋นŒ๋“œ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ง„์ˆ ์— ๋Œ€ํ•ด 100% ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ์–ด๋””์—์„œ ์˜ค๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ˆ˜๋™์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ๊ฒฝ์šฐ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๊ฑด์ถ•๊ณผ ๊ด€๋ จ๋œ ์–ด๋–ค ๊ฒƒ๋„ ๋งŒ์งˆ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค

    ํ•˜์ง€๋งŒ ์˜ˆ, ๋‹ค๋ฅธ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ๋ด…์‹œ๋‹ค ๐Ÿ‘๐Ÿผ

    arm64, i386, x86_64 ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์žˆ๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์šฉ Xcode 12 ๋นŒ๋“œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    ๊ทธ๋ž˜์„œ ๋‚ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€

    1. ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์„ค์ •์—์„œ ์ œ์™ธ๋œ ์•„ํ‚คํ…์ฒ˜ ์— arm64 ์ถ”๊ฐ€
    2. RCTOneSignal ํ•˜์œ„ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์„ค์ •์—์„œ VALID ARCHS ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
      (VAILD ARCHS๋Š” Xcode 12์—์„œ ๋นŒ๋“œ ์„ค์ •์˜ ์‚ฌ์šฉ์ž ์ •์˜๋กœ ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค)

    ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

    @stanleyctcl ์†”๋ฃจ์…˜์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! :ํƒ€๋‹ค:

    RCTOneSignal ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‚ด๋ถ€์˜ RCTOneSignal ๋Œ€์ƒ์— User-Defined ์„ค์ •์œผ๋กœ ์ •์˜๋œ VALID_ARCHS ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ธก์—์„œ ์ œ๊ฑฐํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค! ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด PR์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

    Screenshot 2020-10-07 at 10 22 44

    ๊ทธ๋ž˜์„œ ๋‚ด ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. OneSignal ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” ์ด ์‚ฌ์šฉ์ž ์„ค์ •์ด ์ •์˜๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

    ํ—ค์ด, ๊ณ ๋งˆ์›Œ @stanleyctcl
    ๊ท€ํ•˜์˜ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

    ์ด์ „์—๋Š” iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ฆด๋ฆฌ์Šค ๋ชจ๋“œ ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. building for iOS Simulator, but linking in object file built for iOS, file onesignal ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๊ณ  ์‹ค์ œ ์žฅ์น˜์—์„œ ๋ฆด๋ฆฌ์Šค ๋ชจ๋“œ๋ฅผ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์†”๋ฃจ์…˜์œผ๋กœ ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    ์•ˆํƒ€๊น๊ฒŒ๋„ ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ํ•œ ํ›„ ๋‚ด ์•ฑ์„ ๋ณด๊ด€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

    No architectures to compile for (ARCHS=arm64, VALID_ARCHS=arm64 arm64e armv7 armv7s, EXCLUDED_ARCHS=(
        arm64
    ))
    

    ์–ด๋–ค ๋‹จ์„œ?

    @abdullahizzuddiin iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์šฉ ์•„ํ‚คํ…์ฒ˜๋งŒ ์ œ์™ธํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

    ์•„, ๋‚˜์œ. ์ž‘์€ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์žŠ์–ด ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ์ €๋ฅผ ์ง€์ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @carloscuesta . RCTOneSignal ํ•˜์œ„ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์„ค์ •์—์„œ VALID ARCHS ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  Excluded Architecture ๋งŒ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๐Ÿค”

    = = =
    ๋‚ด ์ƒ๊ฐ์— ์ฐจ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๊ณต์ ์œผ๋กœ ์•„์นด์ด๋ธŒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ "์ž๋™์œผ๋กœ ์„œ๋ช… ๊ด€๋ฆฌ"๋ฅผ ์„ ํƒํ•œ ํ›„ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
    image

    ์ด์ „ ๋ฒ„์ „์˜ Xcode์—์„œ๋„ ๋ฌธ์ œ ์—†์ด ์•ฑ์„ Appstore์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” 11.7์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ 12.0์„ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ ์ €์žฅ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ฆ‰์‹œ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

    //package.json
    react-native-onesignal: 3.8.1
    
    //Podfile
    pod 'OneSignal', '>= 2.14.2', '< 3.0'
    ...
    target 'OneSignalNotificationServiceExtension' do
      pod 'OneSignal', '>= 2.14.2', '< 3.0'
    end
    

    ์–ด๋–ค ๋‹จ์„œ? ์•„๋‹ˆ๋ฉด ๋ณ„๋„์˜ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋‚˜์š”?

    ์ถ”์‹ :
    ๋˜ํ•œ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ Apple ๊ฐœ๋ฐœ์ž ํฌ๋Ÿผ์— ๋‚ด ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.

    ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 0.60.0 ๋ฒ„์ „์—์„œ react-native-onesignal 3.9.1์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค... ์‚ฌ์šฉ์ž ์ •์˜ ์„ค์ •(VALID_ARCHS) ๋‚ด์— x86_64๋ฅผ ํฌํ•จํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์•ˆ๋…•ํžˆ ๊ณ„์„ธ์š”.
    ์ด ๋ฌธ์ œ๋Š” OneSignal ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์•„์„œ ๋‹ซ์•„๋„ ์•ˆ์ „ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.


    @abdullahizzuddiin
    (๋‹ค๋ฅธ ๋ฌธ์ œ, ๋ณ„๋„์˜ ํ‹ฐ์ผ“์„ ์—ฌ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค)

    ๊ฐ€์‹œ์„ฑ์„ ์œ„ํ•ด Apple Dev Forum ์Šค๋ ˆ๋“œ ์— ๋Œ€ํ•œ ์‘๋‹ต ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฒŒ์‹œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ๋ฌธ์ œ:
    ๋‚ด MacBook Pro์—์„œ ๋นŒ๋“œ์— ์„ฑ๊ณตํ–ˆ๋Š”๋ฐ๋„ ์‹ค์ œ ์žฅ์น˜์—์„œ ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
    ์ด ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
    ํ”„๋กœ๋น„์ €๋‹ ํ”„๋กœํŒŒ์ผ "iOS Team Provisioning Profile: com.xxxxxxxxxxxx.Name of -App"์—๋Š” ํ˜„์žฌ ์„ ํƒ๋œ ์žฅ์น˜ "iPhone"(์‹๋ณ„์ž 0000xxxx-000xxxxxxxxxxxxxxxxxx)์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    Xcode ๋„์›€๋ง ์˜จ๋ผ์ธ ์„ค๋ช…์„œ

    ๊ณ„์ • ํ™˜๊ฒฝ์„ค์ •
    ๊ณ„์ • ๊ธฐ๋ณธ ์„ค์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์ž ๊ณ„์ • ์ž์‚ฐ(์„œ๋ช… ์ธ์ฆ์„œ ๋ฐ ํ”„๋กœ๋น„์ €๋‹ ํ”„๋กœํ•„)์„ ๊ด€๋ฆฌํ•˜๊ณ , ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    ๊ณ„์ • ํ™˜๊ฒฝ ์„ค์ •์„ ์—ด๋ ค๋ฉด Xcode > ํ™˜๊ฒฝ ์„ค์ •์„ ์„ ํƒํ•˜๊ณ  ๊ณ„์ •์„ ํด๋ฆญํ•˜์‹ญ์‹œ์˜ค.
    I ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ธ์ฆ์„œ ๊ด€๋ฆฌ๋ฅผ ํด๋ฆญํ•˜๊ณ  ๋”ํ•˜๊ธฐ ๊ธฐํ˜ธ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ƒˆ ์ธ์ฆ์„œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

    ๋ฌธ์ œ ํ•ด๊ฒฐ๋จ:
    ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์„œ๋ช… ์˜ค๋ฅ˜๊ฐ€ ์ง€์›Œ์ง€๊ณ  ์•ฑ์ด iPhone 11 Pro Max์— ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    ์ด ์†”๋ฃจ์…˜์ด ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

    ์•ˆ๋…•ํ•˜์„ธ์š” @rgomezp

    ์ด ๋ฌธ์ œ๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๊ฐ€ ํ˜ผํ•ฉ๋œ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์€ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฌธ์ œ ์ž์ฒด์™€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. VALID_ARCHS ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— RCTOneSignal ์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ์ด ๋ฌธ์ œ๋ฅผ ์™„์ „ํžˆ ๋‹ซ์•„์•ผ ํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ์•ˆ๋…•ํ•˜์„ธ์š” @rgomezp

    ์œ„์—์„œ ๋ฐœ์ทŒํ•œ Apple Dev Forum์˜ ์ œ์•ˆ์„ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

    ์ผ์‹œ์ ์œผ๋กœ Xcode ๋ฒ„์ „์„ 11.7๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜์—ฌ ์„ฑ๊ณต์ ์œผ๋กœ ๋นŒ๋“œ, ์‹คํ–‰ ๋ฐ ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์—ฌ์ „ํžˆ Xcode 12.0์—์„œ ๊ทธ ํ–‰๋™์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    #1053์— ์˜ํ•ด ์ž๋™์œผ๋กœ ๋‹ซํžˆ๋„๋ก ์—ด๋ฆฐ ์ƒํƒœ๋กœ ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค.

    arm64, i386, x86_64 ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์žˆ๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์šฉ Xcode 12 ๋นŒ๋“œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    ๊ทธ๋ž˜์„œ ๋‚ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€

    1. Add **arm64** in  **Excluded Architectures** of Project Build setting
    
    2. Remove **VALID ARCHS** from RCTOneSignal subproject build setting.
       **(VAILD ARCHS was moved to User-Defined of build setting in Xcode 12)**
    

    ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

    ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ณต๋ฐฑ ""์œผ๋กœ ๋งŒ๋“ค์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

    ํŽธ์ง‘ํ•˜๋‹ค:
    ๋‚ด ํ”„๋กœ์ ํŠธ๋Š” ์ˆ˜๋™ ์—ฐ๊ฒฐ One signal 3.2.12๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    ๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ 0.59.9
    ์—‘์Šค์ฝ”๋“œ 12

    ๋””๋ฒ„๊ทธ ๋ฐ ๋ฆด๋ฆฌ์Šค ๋นŒ๋“œ๋ฅผ ์œ„ํ•ด ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์ž‘๋™ํ•˜๋Š” stanleyctcl ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Generic device/Archive์šฉ์œผ๋กœ ๋นŒ๋“œํ•  ๋•Œ abdullahizzuddiin๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.

    (ARCHS=arm64, VALID_ARCHS=arm64 arm64e armv7 armv7s, EXCLUDED_ARCHS=(
    ํŒ”64
    ))

    ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ์†”๋ฃจ์…˜์€
    ์ด๊ฒƒ๋งŒ ์ ์šฉ

    2. Remove **VALID ARCHS** from RCTOneSignal subproject build setting.
       **(VAILD ARCHS was moved to User-Defined of build setting in Xcode 12)**
    

    ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์•„์นด์ด๋ธŒ๊ฐ€ ์ž‘๋™ํ•˜์ง€๋งŒ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด. ๋ชจ๋“  ํ”„๋กœ์ ํŠธ ๋Œ€์ƒ ๋ฐ ํฌ๋“œ ๋Œ€์ƒ -> ๋นŒ๋“œ ์„ค์ • -> ์•„ํ‚คํ…์ฒ˜ -> ํ™œ์„ฑ ์•„ํ‚คํ…์ฒ˜๋งŒ ๋นŒ๋“œ -> ๋ฆด๋ฆฌ์Šค ๋ชจ๋“œ์— ๋Œ€ํ•ด '์˜ˆ'๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์„ค๋ช… ๋ฐ ๋‹จ๊ณ„: https://stackoverflow.com/a/64139830/9232424.
    ์ถ”๊ฐ€ ์ฝ๊ธฐ: https://medium.com/macoclock/deep-drive-xcode-build-settings-827c3ce4811c.

    ์•„, ๋‚˜์œ. ์ž‘์€ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์žŠ์–ด ๋ฒ„๋ ธ์Šต๋‹ˆ๋‹ค. ์ €๋ฅผ ์ง€์ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @carloscuesta . RCTOneSignal ํ•˜์œ„ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์„ค์ •์—์„œ VALID ARCHS ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  Excluded Architecture ๋งŒ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๐Ÿค”

    = = =
    ๋‚ด ์ƒ๊ฐ์— ์ฐจ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๊ณต์ ์œผ๋กœ ์•„์นด์ด๋ธŒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ "์ž๋™์œผ๋กœ ์„œ๋ช… ๊ด€๋ฆฌ"๋ฅผ ์„ ํƒํ•œ ํ›„ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
    image

    ์ด์ „ ๋ฒ„์ „์˜ Xcode์—์„œ๋„ ๋ฌธ์ œ ์—†์ด ์•ฑ์„ Appstore์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” 11.7์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ 12.0์„ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ ์ €์žฅ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ฆ‰์‹œ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

    //package.json
    react-native-onesignal: 3.8.1
    
    //Podfile
    pod 'OneSignal', '>= 2.14.2', '< 3.0'
    ...
    target 'OneSignalNotificationServiceExtension' do
      pod 'OneSignal', '>= 2.14.2', '< 3.0'
    end
    

    ์–ด๋–ค ๋‹จ์„œ? ์•„๋‹ˆ๋ฉด ๋ณ„๋„์˜ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋‚˜์š”?

    ์ถ”์‹ :
    ๋˜ํ•œ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฌธ์ œ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ Apple ๊ฐœ๋ฐœ์ž ํฌ๋Ÿผ์— ๋‚ด ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.

    xcode 12์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์…จ์Šต๋‹ˆ๊นŒ? @abdullahizzuddiin ๋˜๋Š” xcode๋ฅผ 11.7๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜์‹ญ์‹œ์˜ค.

    ๊ฐ์‚ฌ ํ•ด์š”

    ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ์‹คํ–‰ํ•˜๋ ค๋ฉด " ์ œ์™ธ๋œ ์•„ํ‚คํ…์ฒ˜ "์— " arm64 "๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    ๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ ์žฅ์น˜์—์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด " ์ œ์™ธ๋œ ์•„ํ‚คํ…์ฒ˜ " ์ˆ˜์ • ์—†์ด ๊ทธ๋Œ€๋กœ ๋‘์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    ๋”ฐ๋ผ์„œ ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์ด ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์ด๊ฒŒ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž€๋‹ค.

    ์—ฌ๊ธฐ์—์„œ๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

    ๊ฐ™์€

    ๊ฐ™์€

    ์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
    0 / 5 - 0 ๋“ฑ๊ธ‰