Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RUMM-611 Hotfix App Store submission issues for DatadogObjc #182

Conversation

ncreated
Copy link
Collaborator

What and why?

🐛 This PR is addressing #177 where App Store Connect validation issues are reported when uploading the app that links DatadogObjc with Carthage:

Screenshot 2020-07-15 at 11 11 03

How?

The reason of duplicated framework and colliding com.datadoghq.Datadog bundle identifier was a mistaken configuration of DatadogObjc "Frameworks and Libraries", where Datadog.framework was embedded and signed.

I changed it to not embed the Datadog.framework (as Carthage users do embed it through Carthage script):

Screenshot 2020-07-15 at 11 22 42

I made sure that Objective-C app linking this branch with Carthage passes the ASC validation:

Screenshot 2020-07-15 at 11 22 10

Review checklist

  • Feature or bugfix MUST have appropriate tests (unit, integration)
  • Make sure each commit and the PR mention the Issue number or JIRA reference

@ncreated ncreated requested a review from a team as a code owner July 15, 2020 09:40
@ncreated ncreated self-assigned this Jul 15, 2020
@buranmert
Copy link
Contributor

  1. even though there are 2 different Info.plists and bundle identifiers, it collides if framework is embedded?
  2. how can we declare DDObjC depends on DD for carthage users as it requires user action now? maybe a mention in README or docs?

@ncreated
Copy link
Collaborator Author

@buranmert

  1. even though there are 2 different Info.plists and bundle identifiers, it collides if framework is embedded?

Yes, because DatadogObjc.framework was embedding the Datadog.framework, the Datadog.framework was bundled into app.ipa twice:

app.ipa
|-- Datadog.framework
|-- DatadogObjc.framework
    |-- Frameworks/Datadog.framework

Now it is:

|-- Datadog.framework
|-- DatadogObjc.framework
  1. how can we declare DDObjC depends on DD for carthage users as it requires user action now? maybe a mention in README or docs?

DatadogObjc has the setting of "Link but do not embed Datadog.framework", so it won't compile if Datadog.framework is not provided. The Carthage instruction says: "drag and drop each framework you want to use from the Carthage/Build folder on disk", so this should be obvious for the users to include all Datadog frameworks - at least the reporter of this GH Issue got it right. We don't have docs variant for DatadogObjc, so for now there is no good place to explain Objc-related hints.

Copy link
Contributor

@buranmert buranmert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if they forget to add Datadog it won't compile with a meaningful error message, so it shouldn't be a problem then 👍
otherwise we could mention this dependency in DatadogObjC.swift file as a comment

@ncreated ncreated merged commit 78e11be into hotfix/1.2.3 Jul 15, 2020
@ncreated ncreated deleted the ncreated/RUMM-611-fix-asc-submission-issues-for-objc-sdk branch July 15, 2020 10:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants