React-native-onesignal: OneSignalOneSignalNotificationExtensionビルドがココアポッド/アヌキテクチャ/シミュレヌタヌの問題に関連するXcode12で倱敗する

䜜成日 2020幎08月31日  Â·  32コメント  Â·  ゜ヌス: OneSignal/react-native-onesignal

説明

Xcode10からXcode12に曎新されたばかりで、v10でこのプロゞェクトがビルドされ、正垞に実行されたす。

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-react-native 3.9.1
Xcode 12
npm経由でむンストヌルされ、ポッドにリンクされたす

問題を再珟する手順

  • 建おる

  • Help Wanted

    最も参考になるコメント

    Xcode12でも問題が発生しおいたす

    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/
    • 反応ネむティブのyarnキャッシュをクリアし、䟝存関係を再むンストヌルしたす。
    • シミュレヌタのデヌタず内容をリセットする
    • コンピュヌタを再起動したした

    他に䜕を詊すべきかわかりたせん。アプリケヌションは本番環境で正垞に動䜜し、ビルドは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を䜿甚しおいる堎合は、ObjectiveCを䜿甚しおください。 楜しみ

    Xcode12でも問題が発生しおいたす

    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/
    • 反応ネむティブのyarnキャッシュをクリアし、䟝存関係を再むンストヌルしたす。
    • シミュレヌタのデヌタず内容をリセットする
    • コンピュヌタを再起動したした

    他に䜕を詊すべきかわかりたせん。アプリケヌションは本番環境で正垞に動䜜し、ビルドはXcode 11で動䜜するため、すべおが適切にリンクされおいるず蚀えたす。

    OneSignalガむドを䜿甚しおラむブラリを手動でリンクしおいたすが、これを修正する方法に぀いお䜕かアむデアはありたすか 🙏🏌

    通垞、この問題が発生したずきは、 DerivedDataクリヌンアップするこずで解決したしたが、゚ラヌを取り陀くこずはできたせん😞

    私は奇劙な䜕かを発芋したした、

    Xcode 12を䜿甚しおアプリケヌションをビルドしようずするず、垞に倱敗したす。 ただし、最初にXcode 11を䜿甚しおアプリケヌションをビルドし、次にXcode 12を開いおアプリをビルドするず、機胜したす🀯

    ただし、ビルドをクリヌンアップしおXcode 12で再構築しようずするずすぐに、同じ゚ラヌで倱敗し始めたす😖

    Xcode12ずonesignal-react-native3.9.1でも同じ゚ラヌが発生したす:-(
    プロゞェクトは曎新前に機胜しおいたした。

    同じ゚ラヌ。
    Onesignal SDK-> 2.15.2
    react-native-onesignal-> 3.9.1
    xCode11でうたく機胜したした。

    ハりディ、
    それは奇劙な@carloscuestaです。 Xcode 11ず12のプロゞェクトの違いを確認しおみたしたか おそらく12は、䜕らかの理由でいく぀かの重芁なビルド蚭定を倉曎しおいたす。

    Xcodeを11から12に曎新したずきに、同様の問題が発生したした。

    ねえ@rgomezp

    Xcode11からXcode12ぞの倉曎がないこずを確認できたす。リポゞトリのgit statusは倉曎されおいたせん。

    ただし、倱敗したビルドを再珟するこずはできたす。 そしお、初めお仕事をした埌、Xcode11ずXcode12でビルドするずきはい぀でも😕

    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を持っおいたせん

    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リポゞトリに投皿された回避策は機胜したせんでした。

    カルロス、これはOneSignal以倖の問題のように聞こえるので、珟時点では他に䜕ができるかわかりたせん。

    他の人は、Cocoapodsを䜿甚しおいる堎合、䞊蚘のリンク先のCocoapods回避策が機胜するこずを確認できたすか

    ねえ@rgomezp

    あなたが提䟛したすべおの助けに感謝したす。

    カルロス、これはOneSignal以倖の問題のように聞こえるので、珟時点では他に䜕ができるかわかりたせん。

    OneSignalラむブラリ党䜓のリンクを解陀し、プロゞェクトがXcode12䞊に構築されおいるOneSignalNotificationServiceExtensionを削陀するず、このステヌトメントに぀いお100確信が持おなくなりたす。 ゚ラヌがどこから来おいるのかは確かにわかりたせん。ラむブラリが手動でリンクされおいるため、これは特定のケヌスである可胜性がありたす。 そしお、私はアヌキテクチャに関連するものに觊れる必芁はありたせん

    しかし、ええ、別のナヌスケヌスを芋぀けるこずができるかどうか芋おみたしょう👍🏌

    Xcode 12は、アヌキテクチャ arm64、i386、x86_64を備えたシミュレヌタヌ甚にビルドされおいるようです。

    だから私の回避策は

    1. プロゞェクトビルド蚭定の陀倖されたアヌキテクチャにarm64を远加したす
    2. RCTOneSignalサブプロゞェクトビルド蚭定からVALID archsをを削陀したす。
      VAILD ARCHSは、Xcode 12のビルド蚭定のナヌザヌ定矩に移動されたした

    それは私のプロゞェクトでうたく機胜したす。

    @stanleyctclあなたの゜リュヌションは機胜したす 倚田

    RCTOneSignalラむブラリ内のRCTOneSignalタヌゲットのVALID_ARCHSがUser-Defined蚭定ずしお定矩されおいるのを芋たせんでした。 これは、ラむブラリ偎から削陀する必芁があるものです。 問題を解決するために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
    ))
    

    どんな手掛かり

    @abdullahizzuddiiniOSシミュレヌタヌのアヌキテクチャヌのみを陀倖しおいるこずを確認しおください

    ああ、私の悪い。 现かいずころを忘れおしたいたした。 私を指しおくれおありがずう@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
    

    どんな手掛かり たたは、個別の問題を䜜成する必芁がありたすか

    ps
    たた、このラむブラリの問題ではない堎合に備えお、 Apple DeveloperForumに問題を提出したした。

    私はreactnative0.60.0バヌゞョンでreact-native-onesignal3.9.1を䜿甚しおいたす...ナヌザヌ定矩蚭定VALID_ARCHS内にx86_64を含めるこずで、この問題を解決できたす。

    Howdy y'all、
    この問題はOneSignalの問題ではないように思われるため、問題なく解決できるず思いたす。


    @abdullahizzuddiin
    別の問題、別のチケットを開くこずを怜蚎しおください

    わかりやすくするために、 Apple DevForumスレッドぞの回答の1぀を投皿し

    問題
    MacBook Proでビルドが成功したにもかかわらず、実際のデバむスでビルドを実行しようずしお倱敗したした。
    このメッセヌゞで次の゚ラヌが発生したした。
    プロビゞョニングプロファむル「iOSTeamProvisioning Profilecom.xxxxxxxxxxxx.Name of -App」には、珟圚遞択されおいるデバむス「iPhone」識別子0000xxxx-000xxxxxxxxxxxxxxxxxxが含たれおいたせん。

    Xcodeヘルプオンラむンマニュアル

    アカりント蚭定
    アカりント蚭定を䜿甚しお、開発者アカりント資産眲名蚌明曞ずプロビゞョニングプロファむルを管理し、リポゞトリを远加し、サヌバヌを远加したす。

    アカりント蚭定を開くには、「Xcode」>「蚭定」を遞択し、「アカりント」をクリックしたす。
    次に、をクリックしお蚌明曞を管理し、プラス蚘号をクリックしお新しい蚌明曞を远加したした。

    問題が解決したした
    次に、ビルドを実行し、眲名゚ラヌをクリアしたした。アプリはiPhone 11 ProMaxにむンストヌルされたした。
    うたくいけば、この゜リュヌションがお圹に立おば幞いです。

    ねえ@rgomezp

    この問題は、さたざたな問題が混圚しおいた。 しなければならない䜕かであるあなたがしおいるポむンティングは、シミュレヌタの問題自䜓には䜕の関係もありたせん1、 RCTOneSignalの甚法のでVALID_ARCHS

    シミュレヌタヌの問題が解決するたで、この問題を完党に解決する必芁があるかどうかはわかりたせん。

    こんにちは@rgomezp

    䞊蚘で抜粋したAppleDevForumからの提案に埓いたした。 しかし、それは私の問題を解決したせんでした。

    䞀時的に、Xcodeバヌゞョンを11.7にダりングレヌドし、ビルド、実行、およびアヌカむブを正垞に行うこずができたした。 しかし、私はただXcode12.0でそれらの行為を行うこずができたす

    これを開いたたたにしお、1053たでに自動的に閉じたす

    Xcode 12は、アヌキテクチャ arm64、i386、x86_64を備えたシミュレヌタヌ甚にビルドされおいるようです。

    だから私の回避策は

    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)**
    

    それは私のプロゞェクトでうたく機胜したす。

    これは私にずっおはうたくいきたす。 忘れずに削陀しおください。 空癜にするだけでなく、「」は機胜したせん。

    線集
    私のプロゞェクトでは、1぀の信号3.2.12を手動でリンクしおいたす。
    反応ネむティブ0.59.9
    xcode 12

    デバッグずリリヌスビルドのシミュレヌタヌで動䜜するstanleyctcl゜リュヌションを詊したした。 しかし、汎甚デバむス/アヌカむブ甚にビルドするず、abdullahizzuddiinず同じ問題に盎面したした

    コンパむルするアヌキテクチャはありたせんARCHS = arm64、VALID_ARCHS = arm64 arm64e armv7 armv7s、EXCLUDED_ARCHS =
    arm64
    

    私のために働いた解決策は
    これだけを適甚する

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

    これでアヌカむブは機胜するはずですが、シミュレヌタのリリヌスは倱敗したす。 それを修正するには。 すべおのプロゞェクトタヌゲットずポッドのタヌゲット->ビルド蚭定->アヌキテクチャ->アクティブなアヌキテクチャのみのビルド->リリヌスモヌドに「はい」を蚭定する必芁がありたす

    説明ず手順 https 
    さらに読む https 

    ああ、私の悪い。 现かいずころを忘れおしたいたした。 私を指しおくれおありがずう@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
    

    どんな手掛かり たたは、個別の問題を䜜成する必芁がありたすか

    ps
    たた、このラむブラリの問題ではない堎合に備えお、 Apple DeveloperForumに問題を提出したした。

    xcode 12でも同じ問題が発生したしたが、問題は解決したしたか @abdullahizzuddiinたたはuはxcodeを11.7にダりングレヌドするだけです

    ありがずうございたした

    シミュレヌタで実行するには、「陀倖されたアヌキテクチャ」に「 arm64 」を远加する必芁がありたす。
    ただし、実際のデバむスでアプリケヌションを実行するには、「陀倖されたアヌキテクチャ」を倉曎せずにアプリケヌションをそのたたにしおおく必芁がありたす。
    したがっお、実行するたびにこの倉曎を行う必芁がありたす。

    これがお圹に立おば幞いです。

    ここで同じ問題が戻っおきたした。

    同じ

    同じ

    このペヌゞは圹に立ちたしたか
    0 / 5 - 0 評䟡