Skip to content

Conversation

@jackjackbits
Copy link
Collaborator

Summary

  • update tor-nolzma xcframework binaries to Tor 0.4.8.19 and refresh public headers
  • add per-slice Info.plist files so Xcode can embed the framework after the upgrade
  • move the bundled BITCHAT_TOR notes to match the new bundle layout

Testing

  • Not run (hosted)

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +17 to +24
<key>CFBundleShortVersionString</key>
<string>0.4.8.19</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>iPhoneOS</string>
</array>
<key>CFBundleVersion</key>
<string>0.4.8.19</string>

Choose a reason for hiding this comment

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

P1 Badge Use valid bundle version strings in slice Info.plists

The iOS slice Info.plist now sets CFBundleShortVersionString and CFBundleVersion to 0.4.8.19. Apple requires these values to contain at most three period‑separated integers, otherwise codesign/App Store validation fails when embedding the framework. Consider using a three-component semantic version (for example 0.4.8) and a numeric build number instead. The same four-component string was added to the simulator and macOS slice Info.plists as well.

Useful? React with 👍 / 👎.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

seems to pass testflight upload just fine

Copy link
Collaborator

Choose a reason for hiding this comment

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

There was a similar issue at WhatsApp and the team decided to drop the first digit (if I remember correctly), but it was about the actual app version, not an embedded framework.

Given the sheer amount of changes + the fact that each time we update this binary it bloats the repo size, I'm going to remind about hosting the zipped version of the library outside of the repo and just pointing to it (which would also simplify pointing to different versions / reverting if needed)

Copy link
Collaborator

Choose a reason for hiding this comment

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

Does Tor team provide a ready-to-use xcframework for different releases/versions?

Copy link
Collaborator Author

@jackjackbits jackjackbits Oct 31, 2025

Choose a reason for hiding this comment

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

unfortunately no. it's also very fragile on app background/foreground. i can't figure out the most robust way to handle yet.

Copy link
Collaborator

Choose a reason for hiding this comment

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

does the bg/fg issue depend on the version of Tor? do you think we could create a dedicated repo for the different versions of Tor xcframeworks to keep the binary vs our encapsulation logic separate?

<dict>
<key>BinaryPath</key>
<string>tor-nolzma.framework/tor-nolzma</string>
<string>tor-nolzma.framework/Versions/A/tor-nolzma</string>
Copy link
Collaborator

Choose a reason for hiding this comment

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

What's the difference between tor-nolzma.framework/tor-nolzma and tor-nolzma.framework/Versions/A/tor-nolzma? shouldn't they all have the same folder structure?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

good question.

Comment on lines +373 to +374
self.didStart = false
self.controlMonitorStarted = false
Copy link
Collaborator

Choose a reason for hiding this comment

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

maybe instead of all of these bools we could use an enum to manage the state

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.

3 participants