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

iOS TestFlight/CI #177

Open
AidanTheBandit opened this issue Aug 5, 2022 · 98 comments
Open

iOS TestFlight/CI #177

AidanTheBandit opened this issue Aug 5, 2022 · 98 comments
Labels
area:ci/cd Issues related to circular integration/deployment enhancement New feature or request meta Issues about Kaiteki itself

Comments

@AidanTheBandit
Copy link

The feature

I’ve been searching for a client for iOS and I found MissCat but it’s severely out of date and not translated. Is there any plans of porting Kaiteki to iOS?

Designs

Same as android probably

Resources

No response

@AidanTheBandit AidanTheBandit added the enhancement New feature or request label Aug 5, 2022
@Craftplacer
Copy link
Member

Kaiteki is on Flutter and it's insanely easy to port to iOS, since it literally only requires adding build workflows.

But since Apple is Apple, the problem is this:

  • I need macOS running to verify that Kaiteki successfully builds for iOS
  • I would need to pay for the Developer Program in order to publish to the App Store
    • I'm not sure if uploading IPA files is enough (I use everything but Apple obviously)

As an alternative right now, I suggest using the web/PWA version of Kaiteki over at kaiteki.craftplacer.moe. Although I have noticed it's not starting anymore, so I have to get that fixed first.

@Craftplacer Craftplacer added meta Issues about Kaiteki itself area:ci/cd Issues related to circular integration/deployment labels Aug 5, 2022
@Craftplacer
Copy link
Member

I don't mind someone doing the work required for building Kaiteki to macOS/iOS.

@AidanTheBandit
Copy link
Author

Ok. Would building in a MacOS VM work? I have a VM running the newest version of MacOS that I could use to compile

@Craftplacer
Copy link
Member

Anything that runs macOS should work. You can take a look at https://docs.flutter.dev/deployment/ios for instructions on how to get iOS builds going for Kaiteki. If you're completely new to using Flutter, check out https://docs.flutter.dev/get-started/install/macos as well.

@AidanTheBandit
Copy link
Author

Ok. Thanks for the help. Tomorrow I'll try to get this working

@Craftplacer
Copy link
Member

Any updates?

@AidanTheBandit
Copy link
Author

I'm working on redoing the MacOS VM install since I accidentally bricked it

@AidanTheBandit
Copy link
Author

@Craftplacer i got it to compile but since I don’t have a developer license I don’t think I’ll be able to test it. I used the site Codemagic to compile it

@Craftplacer
Copy link
Member

Did you try things like https://altstore.io/ ?

@AidanTheBandit
Copy link
Author

Yes but I can’t seem to get it to load onto my phone since the file needs to be an IPA. I’m looking into other ways of turning the file into an IPA

@AidanTheBandit
Copy link
Author

@Craftplacer Good news! I think I can get this side loaded onto my phone with troll store. I am going to try later today

@Craftplacer
Copy link
Member

Alright, let me know how it goes.

@jaredallard
Copy link

I’m happy to provide macOS CI through CircleCI and a developer program license once this is figured out :)

@Craftplacer
Copy link
Member

GitHub Actions offer macOS runners, the questions is how to trigger an entire build through CLI and what files to deploy/upload.

@AidanTheBandit
Copy link
Author

So after trying for a while TrollStore says that no app exists and AltStore pretty much says the same. I think I might actually just need to get a Mac mini or something

@jaredallard
Copy link

jaredallard commented Nov 3, 2022

I'll give this a shot then, since I have mac hardware at the moment, will update soonish 👀

@AidanTheBandit
Copy link
Author

Was there any updates? Trollstore doesn't want to work

@wakest
Copy link

wakest commented Dec 19, 2022

anyone get this going on Mac or iOS yet? I am sure someone can lend a dev account to this project so it can be published on the App Store for free

@Craftplacer
Copy link
Member

I haven't received any answer if anyone got a build running iOS yet.

If nothing's being done I might have to consider running a Hackintosh VM in order to test this on an old iPad or something

@ThatOneCalculator
Copy link
Member

https://medium.com/team-rockstars-it/the-easiest-way-to-build-a-flutter-ios-app-using-github-actions-plus-a-key-takeaway-for-developers-48cf2ad7c72a

If you're serious about iOS builds I'll be happy to pay for half of a developer license.

@AidanTheBandit
Copy link
Author

I just got a mac. Im going to try to compile now

@AidanTheBandit
Copy link
Author

So I got this issue when trying to run pub get.

[src/kaiteki] flutter pub get
Generating synthetic localizations package failed with 1 error:

Exception: The 'template-arb-file', LocalFile: '/Users/aidanthebandit/Documents/Kaiteki/src/kaiteki/lib/l10n/app_en.arb', is not readable.
Please ensure that the user has read permissions.
exit code 1

Going to the folder shows nothing

@ThatOneCalculator
Copy link
Member

git submodule update --init

@Craftplacer
Copy link
Member

Gonna use this as a chance to update documentation on how to get Kaiteki going 🥴

@lelehier
Copy link
Contributor

Gonna use this as a chance to update documentation on how to get Kaiteki going 🥴

Could have saved me a lot of time yesterday 🗿.
Anyways good to see that the build instructions are now up-to-date.

@Craftplacer
Copy link
Member

Anyway, there's now a more in-depth guide on how to get Kaiteki compiled: https://github.com/Kaiteki-Fedi/Kaiteki/blob/master/BUILDING.md

@AidanTheBandit
Copy link
Author

"de": 2 untranslated message(s).
"es": 177 untranslated message(s).
"fr": 19 untranslated message(s).
"he": 184 untranslated message(s).
"ja": 70 untranslated message(s).
"lv": 104 untranslated message(s).
"ru": 142 untranslated message(s).
To see a detailed report, use the untranslated-messages-file
option in the l10n.yaml file:
untranslated-messages-file: desiredFileName.txt
<other option>: <other selection>
This will generate a JSON format file containing all messages that
need to be translated.
Launching lib/main.dart on iPhone 14 Pro Max in debug mode...
Xcode build done.                                            6.9s
Failed to build iOS app
Error output from Xcode build:
↳
    ** BUILD FAILED **
Xcode's output:
↳
    Writing result bundle at path:
    	/var/folders/cp/l75tsqs97xn3zfpp8wcyfc3h0000gn/T/flutter_tools.ifn6v3/flutter_ios_build_temp_dirHH6jAn/temporary_xcresult_bundle
: Error: No named parameter with the name 'onFocusChange'.
            onFocusChange: onFocusChange,
            ^^^^^^^^^^^^^
: Context: Found this candidate, but the arguments don't match.
      const SwitchListTile({
            ^^^^^^^^^^^^^^
: Error: Member not found: 'strokeAlignOutside'.
                            strokeAlign: BorderSide.strokeAlignOutside,
                                                    ^^^^^^^^^^^^^^^^^^
    Failed to package /Users/aidanthebandit/Documents/kaiteki/src/kaiteki.
    Command PhaseScriptExecution failed with a nonzero exit code
    note: Building targets in dependency order
    /Users/aidanthebandit/Documents/kaiteki/src/kaiteki/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 9.0, but the range of supported deployment target versions is 11.0 to 16.2.99. (in target 'SwiftyGif' from project 'Pods')
    /Users/aidanthebandit/Documents/kaiteki/src/kaiteki/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 9.0, but the range of supported deployment target versions is 11.0 to 16.2.99. (in target 'SDWebImage' from project 'Pods')
    /Users/aidanthebandit/Documents/kaiteki/src/kaiteki/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 9.0, but the range of supported deployment target versions is 11.0 to 16.2.99. (in target 'DKPhotoGallery-DKPhotoGallery' from project 'Pods')
    /Users/aidanthebandit/Documents/kaiteki/src/kaiteki/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 9.0, but the range of supported deployment target versions is 11.0 to 16.2.99. (in target 'DKPhotoGallery' from project 'Pods')
    /Users/aidanthebandit/Documents/kaiteki/src/kaiteki/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 9.0, but the range of supported deployment target versions is 11.0 to 16.2.99. (in target 'DKImagePickerController-DKImagePickerController' from project 'Pods')
    /Users/aidanthebandit/Documents/kaiteki/src/kaiteki/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 9.0, but the range of supported deployment target versions is 11.0 to 16.2.99. (in target 'DKImagePickerController' from project 'Pods')
    warning: Run script build phase 'Run Script' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'Runner' from project 'Runner')
    warning: Run script build phase 'Thin Binary' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'Runner' from project 'Runner')
    Result bundle written to path:
    	/var/folders/cp/l75tsqs97xn3zfpp8wcyfc3h0000gn/T/flutter_tools.ifn6v3/flutter_ios_build_temp_dirHH6jAn/temporary_xcresult_bundle
Could not build the application for the simulator.
Error launching application on iPhone 14 Pro Max.
Exited

Errors when trying to compile

@Craftplacer
Copy link
Member

What's the status of this? What work needs to be done e.g. to get an IPA published? There's more users asking for iOS builds...

@AidanTheBandit
Copy link
Author

Just submitted to testflight. Will respond with the link or if there is any issues

@AidanTheBandit
Copy link
Author

It was rejected

Guideline 2.1 - Performance - App Completeness

We discovered one or more bugs in your app. Specifically, the app launches to a blank page. Please review the details below and complete the next steps.

Review device details:

  • Device type: iPad
  • OS version: iOS 16.4.1

Next Steps

Please run your app on a device to reproduce the issues, then revise and submit your app for review. If at first you're unable to reproduce the issue, try the following:

  • For new apps, uninstall all previous versions of your app from a device, then install and follow the steps to reproduce.
  • For app updates, install the new version as an update to the previous version, then follow the steps to reproduce.

If we misunderstood the intended behavior of your app, please reply to this message in App Store Connect to provide information on how these features were intended to work.

Resources

Rejection Reasons:

2.1.0 Performance: App Completeness

@SputNikPlop
Copy link
Contributor

@AidanTheBandit So the push notification and permission issues are at least resolved? I will look into it more when I have free time.

@AidanTheBandit
Copy link
Author

Yeah I was able to fix that

@AidanTheBandit
Copy link
Author

I also needed to fix this issue to get it to compile properly. After fixing it though it compiles fine #385

@SputNikPlop
Copy link
Contributor

SputNikPlop commented May 31, 2023

I also needed to fix this issue to get it to compile properly. After fixing it though it compiles fine #385

I am out right now, maybe you can submit a PR for it that way what you submit to the app store is what I build locally as well. As for the error, if you need me to fix it I can when I get back.

@AidanTheBandit
Copy link
Author

AidanTheBandit commented May 31, 2023

I added a ! after isRead and that seemed to fix it. It's now !isRead! I can submit the pull request if you want. It's a very small fix

@SputNikPlop
Copy link
Contributor

I added a ! after isRead and that seemed to fix it. It's now !isRead! I can submit the pull request if you want. It's a very small fix

Submitted, did some clean up to removed code while in the car.

@SputNikPlop
Copy link
Contributor

@AidanTheBandit How are you doing on this? I can always get it up if you need.

@mona-chen
Copy link

Jumping on this iOS thingy, made some updates, and got it to run with the latest dart version, will make a PR, a pretty decent app i love it😍

iOS Kateki running on iPhone X - Screenshot

@ThatOneCalculator
Copy link
Member

Make a PR?

@mona-chen
Copy link

mona-chen commented Aug 2, 2023

I actually made a pr when i pushed, but am not seeing it anywhere this repo again, let me confirmed what happened.

@gaviscapes
Copy link

Any progress on this at all?

@lunyaUwU
Copy link

lunyaUwU commented Sep 5, 2023

I am interested in Mby maintaining kaiteki for ios i can compile and test it but cant setup testflight also i can share an ipa if needed

@mona-chen
Copy link

The issue currently is an iOS development account, wanted to pay for their subscription but i guess we could contribute, the cost is a bit high on my local currency now.

@lunyaUwU
Copy link

lunyaUwU commented Sep 5, 2023

Ah that's something where i sadly cannot really help as i do not have money myself (cus im 15)

@ThatOneCalculator
Copy link
Member

Given we've now gone through two people offering to maintain the iOS app and failing, I think there should be 2 basic criteria:

  • Over 18
  • Has an existing Apple Developer account

@ThatOneCalculator
Copy link
Member

Obviously, that's @Craftplacer 's decision to make, but I think that would be a generally beneficial ruleset to make sure maintainability is achievable.

@Craftplacer
Copy link
Member

Craftplacer commented Sep 5, 2023

Obviously, that's @Craftplacer 's decision to make, but I think that would be a generally beneficial ruleset to make sure maintainability is achievable.

Supporting iOS can be split into two roles: deployment/publishing (-> Apple developer account) and maintainership (coding, eventually check-up if the app runs great on iOS, etc.)

Obviously for this issue, we're looking for someone who can get the build process for building Kaiteki to iOS going and perhaps someone who is willing to support us by publishing the app on TestFlight

@lunyaUwU
Copy link

lunyaUwU commented Sep 6, 2023

Well i can get the build process going and can probably even automate that. Also i would like to get involved in the development

@SputNikPlop
Copy link
Contributor

@Craftplacer I failed apple review apparently I have to give them an account, any suggestions on the best instance url where I could make one for them.

@Craftplacer
Copy link
Member

I'd hold off on submitting the app to Apple at all before we can even get a build workflow going. And on top of that we need a quality assurance pass to check whether it is works correctly on iOS.

@Craftplacer
Copy link
Member

I can ensure, even if we had provided a test account, Apple will come back complaining about another issue, that probably could've fixed before submitting the app.

One possible scenario is that Kaiteki does not even provide options for reporting or blocking content which is a required feature for social apps.

@SputNikPlop
Copy link
Contributor

I can ensure, even if we had provided a test account, Apple will come back complaining about another issue, that probably could've fixed before submitting the app.

One possible scenario is that Kaiteki does not even provide options for reporting or blocking content which is a required feature for social apps.

Hmm I was just trying to get a public testflight going, noted.

@SputNikPlop
Copy link
Contributor

I'd hold off on submitting the app to Apple at all before we can even get a build workflow going. And on top of that we need a quality assurance pass to check whether it is works correctly on iOS.

Ok I will look into that for iOS/macOS. Have you had a chance to look into Google Play because those workflows can be automated as well when I do the iOS ones.

@Craftplacer
Copy link
Member

Have you had a chance to look into Google Play

Google Play is abandoned because of the upcoming public developer contact info changes.

@SputNikPlop
Copy link
Contributor

@Craftplacer
Copy link
Member

Have you had a chance to look into Google Play

Google Play is abandoned because of the upcoming public developer contact info changes.

In this case, priority would be set on F-Droid in the near future.

@ThatOneCalculator
Copy link
Member

Since progress has seemed to stall on this, how about using something like Codemagic? They have 500 free CI/CD minutes per month for individuals. https://codemagic.io/pricing/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:ci/cd Issues related to circular integration/deployment enhancement New feature or request meta Issues about Kaiteki itself
Projects
None yet
Development

No branches or pull requests