Fork nostore and bump version to 2.0.0

This commit is contained in:
2025-04-06 20:49:25 -04:00
parent c8458140e6
commit 0d45c4dfbf
10 changed files with 131 additions and 94 deletions

77
.gitignore vendored
View File

@@ -1,3 +1,80 @@
# macOS metadata files
.DS_Store
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## User settings
xcuserdata/
## Obj-C/Swift specific
*.hmap
## App packaging
*.ipa
*.dSYM.zip
*.dSYM
## Playgrounds
timeline.xctimeline
playground.xcworkspace
# Swift Package Manager
#
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
# Packages/
# Package.pins
# Package.resolved
# *.xcodeproj
#
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
# hence it is not needed unless you have added a package configuration file to your project
# .swiftpm
.build/
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/
#
# Add this line if you want to avoid checking in source code from the Xcode workspace
# *.xcworkspace
# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts
Carthage/Build/
# Accio dependency management
Dependencies/
.accio/
# fastlane
#
# It is recommended to not store the screenshots in the git repo.
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output
# Code Injection
#
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode
iOSInjectionProject/
node_modules/
*.build.js
Shared (Extension)/Resources/options.build.css

View File

@@ -69,10 +69,6 @@
944A6E04299F2FBB0032C2E3 /* experimental in Resources */ = {isa = PBXBuildFile; fileRef = 944A6E02299F2FBB0032C2E3 /* experimental */; };
944A6E05299F2FBB0032C2E3 /* experimental in Resources */ = {isa = PBXBuildFile; fileRef = 944A6E02299F2FBB0032C2E3 /* experimental */; };
944A6E06299F2FBB0032C2E3 /* experimental in Resources */ = {isa = PBXBuildFile; fileRef = 944A6E02299F2FBB0032C2E3 /* experimental */; };
944A6E0E299F32070032C2E3 /* wizards in Resources */ = {isa = PBXBuildFile; fileRef = 944A6E0D299F32070032C2E3 /* wizards */; };
944A6E0F299F32070032C2E3 /* wizards in Resources */ = {isa = PBXBuildFile; fileRef = 944A6E0D299F32070032C2E3 /* wizards */; };
944A6E10299F32070032C2E3 /* wizards in Resources */ = {isa = PBXBuildFile; fileRef = 944A6E0D299F32070032C2E3 /* wizards */; };
944A6E11299F32070032C2E3 /* wizards in Resources */ = {isa = PBXBuildFile; fileRef = 944A6E0D299F32070032C2E3 /* wizards */; };
944A6E13299F39D30032C2E3 /* permission in Resources */ = {isa = PBXBuildFile; fileRef = 944A6E12299F39D30032C2E3 /* permission */; };
944A6E14299F39D30032C2E3 /* permission in Resources */ = {isa = PBXBuildFile; fileRef = 944A6E12299F39D30032C2E3 /* permission */; };
944A6E15299F39D30032C2E3 /* permission in Resources */ = {isa = PBXBuildFile; fileRef = 944A6E12299F39D30032C2E3 /* permission */; };
@@ -792,11 +788,12 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 4.0.0;
DEVELOPMENT_TEAM = 5SD834TD9W;
CURRENT_PROJECT_VERSION = 5;
DEVELOPMENT_TEAM = S99A5B637C;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "iOS (Extension)/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "nostore Extension";
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
@@ -804,12 +801,12 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.2.0;
MARKETING_VERSION = 2.0.0;
OTHER_LDFLAGS = (
"-framework",
SafariServices,
);
PRODUCT_BUNDLE_IDENTIFIER = camp.ursus.nostore.Extension;
PRODUCT_BUNDLE_IDENTIFIER = xyz.tyiu.nostore.Extension;
PRODUCT_NAME = "Nostore Extension";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
@@ -823,11 +820,12 @@
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 4.0.0;
DEVELOPMENT_TEAM = 5SD834TD9W;
CURRENT_PROJECT_VERSION = 5;
DEVELOPMENT_TEAM = S99A5B637C;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "iOS (Extension)/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "nostore Extension";
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
@@ -835,12 +833,12 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.2.0;
MARKETING_VERSION = 2.0.0;
OTHER_LDFLAGS = (
"-framework",
SafariServices,
);
PRODUCT_BUNDLE_IDENTIFIER = camp.ursus.nostore.Extension;
PRODUCT_BUNDLE_IDENTIFIER = xyz.tyiu.nostore.Extension;
PRODUCT_NAME = "Nostore Extension";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
@@ -857,12 +855,12 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 4.0.0;
DEVELOPMENT_TEAM = 5SD834TD9W;
CURRENT_PROJECT_VERSION = 5;
DEVELOPMENT_TEAM = S99A5B637C;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "iOS (App)/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = Nostore;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
INFOPLIST_KEY_UIRequiresFullScreen = YES;
@@ -873,14 +871,14 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.2.0;
MARKETING_VERSION = 2.0.0;
OTHER_LDFLAGS = (
"-framework",
SafariServices,
"-framework",
WebKit,
);
PRODUCT_BUNDLE_IDENTIFIER = camp.ursus.nostore;
PRODUCT_BUNDLE_IDENTIFIER = xyz.tyiu.nostore;
PRODUCT_NAME = Nostore;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
@@ -898,12 +896,12 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 4.0.0;
DEVELOPMENT_TEAM = 5SD834TD9W;
CURRENT_PROJECT_VERSION = 5;
DEVELOPMENT_TEAM = S99A5B637C;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "iOS (App)/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = Nostore;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
INFOPLIST_KEY_UIRequiresFullScreen = YES;
@@ -914,14 +912,14 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.2.0;
MARKETING_VERSION = 2.0.0;
OTHER_LDFLAGS = (
"-framework",
SafariServices,
"-framework",
WebKit,
);
PRODUCT_BUNDLE_IDENTIFIER = camp.ursus.nostore;
PRODUCT_BUNDLE_IDENTIFIER = xyz.tyiu.nostore;
PRODUCT_NAME = Nostore;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
@@ -939,13 +937,14 @@
buildSettings = {
CODE_SIGN_ENTITLEMENTS = "macOS (Extension)/nostore.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 4.0.0;
CURRENT_PROJECT_VERSION = 5;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5SD834TD9W;
DEVELOPMENT_TEAM = S99A5B637C;
ENABLE_HARDENED_RUNTIME = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "macOS (Extension)/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "nostore Extension";
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -953,12 +952,12 @@
"@executable_path/../../../../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
MARKETING_VERSION = 1.2.0;
MARKETING_VERSION = 2.0.0;
OTHER_LDFLAGS = (
"-framework",
SafariServices,
);
PRODUCT_BUNDLE_IDENTIFIER = camp.ursus.nostore.Extension;
PRODUCT_BUNDLE_IDENTIFIER = xyz.tyiu.nostore.Extension;
PRODUCT_NAME = "Nostore Extension";
SDKROOT = macosx;
SKIP_INSTALL = YES;
@@ -972,13 +971,14 @@
buildSettings = {
CODE_SIGN_ENTITLEMENTS = "macOS (Extension)/nostore.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 4.0.0;
CURRENT_PROJECT_VERSION = 5;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5SD834TD9W;
DEVELOPMENT_TEAM = S99A5B637C;
ENABLE_HARDENED_RUNTIME = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "macOS (Extension)/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "nostore Extension";
INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -986,12 +986,12 @@
"@executable_path/../../../../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 11.0;
MARKETING_VERSION = 1.2.0;
MARKETING_VERSION = 2.0.0;
OTHER_LDFLAGS = (
"-framework",
SafariServices,
);
PRODUCT_BUNDLE_IDENTIFIER = camp.ursus.nostore.Extension;
PRODUCT_BUNDLE_IDENTIFIER = xyz.tyiu.nostore.Extension;
PRODUCT_NAME = "Nostore Extension";
SDKROOT = macosx;
SKIP_INSTALL = YES;
@@ -1007,9 +1007,9 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = "macOS (App)/nostore.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 4.0.0;
CURRENT_PROJECT_VERSION = 5;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5SD834TD9W;
DEVELOPMENT_TEAM = S99A5B637C;
ENABLE_HARDENED_RUNTIME = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "Nostore--macOS--Info.plist";
@@ -1021,14 +1021,14 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 13.0;
MARKETING_VERSION = 1.2.0;
MARKETING_VERSION = 2.0.0;
OTHER_LDFLAGS = (
"-framework",
SafariServices,
"-framework",
WebKit,
);
PRODUCT_BUNDLE_IDENTIFIER = camp.ursus.nostore;
PRODUCT_BUNDLE_IDENTIFIER = xyz.tyiu.nostore;
PRODUCT_NAME = Nostore;
SDKROOT = macosx;
SWIFT_EMIT_LOC_STRINGS = YES;
@@ -1043,9 +1043,9 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = "macOS (App)/nostore.entitlements";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 4.0.0;
CURRENT_PROJECT_VERSION = 5;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 5SD834TD9W;
DEVELOPMENT_TEAM = S99A5B637C;
ENABLE_HARDENED_RUNTIME = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "Nostore--macOS--Info.plist";
@@ -1057,14 +1057,14 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 13.0;
MARKETING_VERSION = 1.2.0;
MARKETING_VERSION = 2.0.0;
OTHER_LDFLAGS = (
"-framework",
SafariServices,
"-framework",
WebKit,
);
PRODUCT_BUNDLE_IDENTIFIER = camp.ursus.nostore;
PRODUCT_BUNDLE_IDENTIFIER = xyz.tyiu.nostore;
PRODUCT_NAME = Nostore;
SDKROOT = macosx;
SWIFT_EMIT_LOC_STRINGS = YES;

View File

@@ -2,6 +2,6 @@
<Workspace
version = "1.0">
<FileRef
location = "self:/Users/ryan/Dev/nostr/nostore/Nostore.xcodeproj">
location = "self:">
</FileRef>
</Workspace>

View File

@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>Nostore (iOS).xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
<key>Nostore (macOS).xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
</dict>
<key>nostore (iOS).xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
</dict>
<key>nostore (macOS).xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
</dict>
</plist>

View File

@@ -1,8 +1,6 @@
# Nostore
**WARNING**: This app is no longer in support. I haven't been a Nostr or Safari user for some time and no longer have the will to maintain this application. When the Apple developer license expires, this app will drop off the App Store. If anyone wishes to fork this app and restart it, you have my blessing. Sorry for any inconvenience.
This is a [NIP-07][nip07] compatible extension for signing nostr events.
This is a [NIP-07][nip07] compatible extension for signing [nostr][nostr] events.
## Features
@@ -11,16 +9,6 @@ This is a [NIP-07][nip07] compatible extension for signing nostr events.
- Encrypted direct messages (`nip04.encrypt` and `nip04.decrypt`).
- Multiple profiles.
## Installation
Available at the official [Mac App Store](https://apps.apple.com/us/app/nostore/id1666553677).
<p align="center">
<a href="https://apps.apple.com/us/app/nostore/id1666553677">
<img src="/extras/mac-app-store-badge-small.svg" alt="App Store Download" />
</a>
</p>
## Usage
Click the Nostore extension icon in the Safari toolbar, there should be a default profile with a new, random private key.
@@ -29,7 +17,9 @@ Feel free to change the name and edit the key with your personal nostr key. Crea
## Acknowledgements
Thanks to fiatjiaf for envisioning nostr, but also for creating [nostr-tools][nostr-tools] and the [nos2x][nos2x] extension, which I referenced liberally when stumped during development of this extension.
Thanks to [ursuscamp][ursuscamp] for creating Nostore, which this project was forked at version 1.2.0 (c8458140e69dd30b35a31043daedcb88872a270e) and has since been archived.
Thanks to [fiatjaf][fiatjaf] for envisioning nostr, but also for creating [nostr-tools][nostr-tools] and the [nos2x][nos2x] extension, which was referenced liberally when stumped during development of this extension.
## Privacy
@@ -37,19 +27,22 @@ This extension does not collect any user data, or transmit any data over a netwo
## Development
1. Open the project in XCode.
1. Open the project in Xcode.
2. Open project folder in terminal.
3. Run `npm install` to install the dependencies.
4. Run `npm run watch` to watch and build the necessary extension files.
5. Run `npm run watch-tailwind` to watch and build the pages with tailwinds CSS.
6. After every rebuild, execute Run in XCode to deploy the latest changes to Safari.
6. After every rebuild, execute Run in Xcode to deploy the latest changes to Safari.
If you do not see the Nostore extension in your Safari toolbar, you need to activate unsigned extensions and Nostore:
1. Safari menu -> Settings -> Advanced -> Show Develop menu in menu bar.
2. In Develop menu, select Allow Unsigned Extension.
3. Click Extension tab in Settings, activate Nostore.
1. Safari menu -> Settings -> Advanced -> Show features for web developers.
2. Click the Developer tab in Settings, select Allow unsigned extensions.
3. Click the Extensions tab in Settings, activate Nostore.
[nostr]: https://github.com/nostr-protocol
[ursuscamp]: https://github.com/ursuscamp
[fiatjaf]: https://github.com/fiatjaf
[nip07]: https://github.com/nostr-protocol/nips/blob/master/07.md
[nostr-tools]: https://github.com/nbd-wtf/nostr-tools
[nos2x]: https://github.com/fiatjaf/nos2x

View File

@@ -19,7 +19,7 @@ struct PrivacyPolicyView: View {
You, the user, own your data. The developers of this app collect no data, anonymous or otherwise.
This code of this application is fully auditable and available on our [GitHub page](https://github.com/ursuscamp/nostore).
This code of this application is fully auditable and available on our [GitHub page](https://github.com/tyiu/nostore).
""").multilineTextAlignment(.leading)
}.padding(.all)
}

View File

@@ -16,7 +16,7 @@ import SafariServices
typealias PlatformViewController = NSViewController
#endif
let extensionBundleIdentifier = "camp.ursus.nostore.Extension"
let extensionBundleIdentifier = "xyz.tyiu.nostore.Extension"
class ViewController: PlatformViewController, WKNavigationDelegate, WKScriptMessageHandler {

View File

@@ -3,7 +3,7 @@
"default_locale": "en",
"name": "__MSG_extension_name__",
"description": "__MSG_extension_description__",
"version": "1.0",
"version": "2.0.0",
"icons": {
"48": "images/icon-48.png",
"96": "images/icon-96.png",

View File

@@ -2,8 +2,6 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>

View File

@@ -2,8 +2,6 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>