Agent still exclude arm64 and arm64e

Agent 7.3 was released in March 31 and I just tried to use it in one of my projects and I am seeing the following error:

Could not find module 'KeychainAccess' for target 'x86_64-apple-ios-simulator'; found: arm64, arm64-apple-ios-simulator

And I see your agent still exclude arm64 and arm64e.

I know you will say the error is referring to a file that is not part of New Relic agent, but if I remove the agent from my dependencies everything compiles just fine.

I tested using Xcode 12.4 and 12.5 beta with the same results.

Hi Carlos,

Thank you for posting to our community! I’m Jeff from the Mobile Support team and I’d be happy to assist you with this.

First, please let me know whether you are installing our XCFramework agent using CocoaPods or the manual installation process, as this will determine next troubleshooting steps, and we’ll go from there.

Thanks!

Best regards,

Jeff Barker
Technical Support Engineer
New Relic

Hi @jbarker,

I am installing the XCFramework using CocoaPods.

pod 'NewRelicAgent'

Kind regards

@jbarker

I think you had a few days to get an answer at this point. Is there something new you can share with me about how to fix the issue?

Kind regards

Hi Carlos,

Can you check your version of CocoaPods? You may be running into errors if you are using below version 1.9 according to our compatibility documentation.

Did you upgrade from a previous version of the iOS/XCFramework agent? In older versions of the iOS agent, you would have to use #import <NewRelicAgent/NewRelic.h>, while in the new XCFramework agent, it needs to be changed to #import <NewRelic/NewRelic.h>. Also, the minimum deployment target for this agent version is now iOS 9.0, so make sure you aren’t targeting an earlier OS version in your build.

It is unusual that the error message is pointing to a module other than New Relic, but with similar errors we have had luck with changing our framework options in your build settings to Embed & Sign, if it is not locating the module.

Let us know how it goes!

@jbarker

  1. I am using Cocoapods 1.10.1
  2. Why are you suggesting Objective-C imports? I am sure I didn’t mentioned it but I am using Swift.
  3. What is has do to Embed & Sign with a configuration set in your pod?

Once you install your pod using CocoaPods you will have a file NewRelic.release.xcconfig with the following content:

CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/NewRelicAgent
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 arm64e
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/NewRelicAgent" "${PODS_XCFRAMEWORKS_BUILD_DIR}/NewRelic"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "CoreTelephony" -framework "SystemConfiguration"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/NewRelicAgent
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
SKIP_INSTALL = YES
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES

If you already support M1 Macs, why didn’t you removed

EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 arm64e

That line is adding the exclusion of those architectures to all my other pods and to my main application too.

I tried removing the agent from my project and at that point everything just works.

Kind regards

Thank you for clarifying! I’m going to bring this to the mobile engineering team to see what feedback they have. I will let you know on Monday.

Hi Carlos,

I heard back from my engineering team, and they are planning on making changes to the Podspec in a future release of the XCFramework agent. This should include adjustments to excluded architectures. I’ll post more specific information when it becomes available later this week.

Thank you!

@jbarker,

Thank you for the update.

Please let me know once the pod update is launched.

Also, I wanted to let you know, the issue only exists if I integrate the XCFramework agent using CocoaPods. If I use the manual installation method it works.

Kind regards

Thanks for letting us know @caguilar! Please keep an eye out for the future release of the XCFramework agent.