Victor Choi

  • Home
  • Business
    • Internet
    • Market
    • Stock
  • Parent Category
    • Child Category 1
      • Sub Child Category 1
      • Sub Child Category 2
      • Sub Child Category 3
    • Child Category 2
    • Child Category 3
    • Child Category 4
  • Featured
  • Health
    • Childcare
    • Doctors
  • Home
  • Business
    • Internet
    • Market
    • Stock
  • Downloads
    • Dvd
    • Games
    • Software
      • Office
  • Parent Category
    • Child Category 1
      • Sub Child Category 1
      • Sub Child Category 2
      • Sub Child Category 3
    • Child Category 2
    • Child Category 3
    • Child Category 4
  • Featured
  • Health
    • Childcare
    • Doctors
  • Uncategorized

9/20/2019

Cannot receive a user's email using Sign in with Apple

 6:47 PM     development, facebook login, iOS, ios 13, sign in with apple, signin with Apple     No comments   

Recently I have developed Sign in with Apple feature in my iOS app. It was almost similar like Facebook login.
By the way I faced an issue that I couldn't get a user's email after the initial sign up. Then I found a link that Apple engineer answered.


So if you are testing Sign in with Apple feature go to iOS Settings and remove the previous sign in permission. Then you might save the user information such as the email address into your database.

Another issue that I found in Sign in with Apple

Apple said that they generated a fake email address that redirects an email to a user’s iCloud email address. By the way this issue could cause a duplicated signup if a user uses the email address in other service such as Facebook. So Apple’s approach is like pushing your app to use the only Sign in with Apple feature. But according to Apple’s guideline you have to provide “Sign in with Apple” if you use other service such as Facebook login.
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

9/03/2019

Wordpress Redirection Error after Wordpress migration

 11:47 PM     docker, kubernetes, Migration, redirection error, Wordpress     No comments   

Recently I tried to migrate Wordpress website into Kubernetes environment using Docker. After I did set them all I got an error that redirects a new domain to an old domain. So I checked all the sources and database records. But there was nothing related to the old domain.

The solution was too simple. I needed to clean up Browser Cache.

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

8/22/2019

Troubleshooting Kubernetes - failed to pull an image from a private registry

 2:40 PM     development, devops, docker, kubernetes, no basic auth credentials, registry     No comments   

I was struggled to pull a docker image from a private registry in Kubernetes environment. But everything seems okay. I added a secret to Kubernetes and then the secret information works well in my local. But when I tried to deploy a pod using an image ** no basic auth credentials ** error happened.

Then I finally fixed it. I didn’t create the credentials(secret) with a same namespace in Kubernetes environment. If you use a namespace for your k8s deployment you must know that all the objects related to the deployment should use the same namespace.

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

Why did Google announce Flutter?

 2:35 PM     android, development, flutter, Google, iOS, reative native     No comments   

Kotlin itself is largely dependent on Java. So Google needs a completely different alternative which helps them get rid of it entirely (That’s one of the reasons for the existence of Fuchsia). The Dart programming language used in the Flutter framework is one of the first steps taken by Google to do the same.
I am still thinking between Reative Native and Flutter. Actually I prefer developing an app using a native code. So recently I looked through Kotlin and Android native platform. By the way it seems that Google might give up Kotlin in the future in according to this article.
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

8/07/2019

Docker connection is refused in Jenkins

 3:09 AM     devops, docker, docker daemon was refused, jenkins     No comments   

The issue was from Docker configuration. In Ubuntu 18.04 Docker configuration is located in /lib/systemd/system/docker.service Then I need to update to enable Docker daemon connection from Jenkins.

ExecStart=/usr/bin/docker daemon -H fd://

I updated the configuration above to a new configuration below. ExecStart=/usr/bin/docker daemon -H fd:// -D -H tcp://0.0.0.0:2375 The I restarted Docker daemon. sudo systemctl daemon-reload sudo systemctl restart docker

Now it worked. Jenkins can connect the Docker daemon now.

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

7/19/2019

How to handle a iOS extension using fastlane

 6:17 PM     app profile, cicd, fastlane, fastlane gym, fastlane match, fastlane produce, iOS Development, notification extension, onesignal, provisioning profile     No comments   

An app that I developed uses OneSignal to send a push notification. OneSignal’s way that they provide a push notification service is using a notification extension in iOS. In this case we have a situation on iOS CI/CD process. Before you dive into handling this issue you should know that each extension in iOS has a different provisioning profile. So we need to create an app profile in Apple developer portal.

Create an app profile for your extension

You can use fastlane produce function to create an app profile for your extension. If you already have an app profile in Apple Developer portal, pass this instruction.
lane :createAppProfile do
produce(
    app_identifier: “com.victorchoi.x.OneSignalNotificationServiceExtension",
    app_name: “victorchoi OneSignalNotificationServiceExtension",
    skip_itc: true
)

Create a provisioning profile

Then you need to create a certificate and a provisioning profile for your extension. I use fastlane match to easily create and manage a certifcate and a provisioning profile.
lane :codesign do 
 match(
      app_identifier: ["com.victorchoi.x”,”com.victorchoi.x.OneSignalNotificationServiceExtension"],
      type: "appstore",
)

Download the provisioning profile and save into your CI/CD server

Lastly, you need to make sure that your CI/CD server has the provisioning profile to build. At this step, you must have two provisioning profile for your app. So let’s configure your provisioning profile in the build process. In this case, I use fastlane gym to build them.
provisioningProfiles: { 
   “com.victorchoi.ios” => "match AppStore com.victorchoi.ios“,
   “com.victorchoi.x.OneSignalNotificationServiceExtension" => "match AppStore com.victorchoi.x.OneSignalNotificationServiceExtension"
}

Building your CI/CD process takes time. So I hope this article helps you not to spend much time on it.
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

No Profile for team error on Jenkins using fastlane gym

 5:03 PM     devops, fastlane, gym, iOS Development, jenkins, no profile for team, xcode     No comments   

I prefer to use a combination of Jenkins and fastlane to build and distribute my iOS application. Recently I tried to make a CI/CD server using Jenkins and fastlane and then I faced an issue that I had struggled to fix it. The issue is normally coming from a build process using gym in fastlane. The error log is normally like below.

No profile for team 'TXVIGNOXXXX’ matching ‘iPhone_Development' found: Xcode couldn't find any provisioning profiles matching 'TXVIGNOXXXX/iPhone_Development'. Install the profile (by dragging and dropping it onto Xcode's dock item) or select a different one in the General tab of the target editor 

So how do I solve this issue?

  1. Check your Provisioning Profile Mostly you can find this advice on the web. Provisioning Profile files are saved in the path /Users/{{UserAccount}}/Library/MobileDevice/Provisoning Profiles and then your right provisioning file should be there. But my case wasn’t like this. I use fastlane match to create and update Provisioning Profile and there should not be this issue.

  2. Check your Team ID Find your team ID and then check the Team ID is correct.

  3. Permission issue The third one was my issue. In my case, I use sudo command to run fastlane release. But the problem was the Provisioning Profile belongs to Jenkins user account. Then I just removed the sudo command and then now it works. Still, I am not 100% sure that the issue was caused by the permission to run fastlane command.

I hope that this article could help someone has a similar issue.

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Newer Posts Older Posts Home

Search This Blog

Popular Posts

  • Git ignore vs Git exclude
  • Keynote Tutorial Character Style , How to use a character style in Keynote
  • Keynote Tutorial Text Format - Make your font consistent
  • If you can't get OAuth Token by SFSafariViewController...?
  • Omni Focus and AppleScript to recreate a task on a task

Blog Archive

  • ▼  2020 (2)
    • ▼  January (2)
      • Error- helm docker-registry does not have any acti...
      • How to clean up none docker images
  • ►  2019 (21)
    • ►  December (2)
    • ►  November (6)
    • ►  October (5)
    • ►  September (2)
    • ►  August (3)
    • ►  July (2)
    • ►  June (1)
  • ►  2017 (11)
    • ►  December (2)
    • ►  November (2)
    • ►  July (2)
    • ►  May (1)
    • ►  April (1)
    • ►  March (3)
  • ►  2016 (48)
    • ►  December (3)
    • ►  November (2)
    • ►  September (1)
    • ►  August (10)
    • ►  July (5)
    • ►  June (7)
    • ►  May (2)
    • ►  April (18)
Powered by Blogger.

Navigation Menu

  • Home
  • About
  • Documentation
  • Contact

Contact Us

Name

Email *

Message *

Copyright © Victor Choi | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates