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

12/14/2019

Cannot distribute via Testflight using fastlane in Jenkins

 1:11 AM     fastlane -20101, ios distribution, ios testflight distribution jenkins, testflight fastlane, testflight jenkins     No comments   

I have been struggled to distribute our beta software via fastlane. It used to say that I put an incorrect username or password. But I already assigned the environment variable like below.

env["FASTLANE_USER"] = "xxxxxxx@xxxxx.com" 
env["FASTLANE_PASSWORD"] = "xxxxxxxxx"
  • The error log Your Apple ID or password was entered incorrectly. (-20101)

In my case I just added another line to reassign the env["FASTLANE_PASSWORD"] before it uploads the file to Testflight. By the way I feel that it takes too much time to process a build in Apple Testflight. So I have thought about moving to another service for my beta software release.

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

12/06/2019

Magic Mouse doesn't scroll properly. Stuck in certain places

 12:57 AM     magic mouse, magic mouse dual display issue, magic mouse reset, magic mouse scroll error, magic mouse stuck, mouse scroll, stuck to scroll in a certain places     No comments   

Today I have got a strange issue on my Apple Magic Mouse. The symptom was like I tried to scroll a certain place in the screen then the scroll was stuck on the edge of the area. So I tried setting displays on the preference option. But it was no luck.

Then I started to suspect the mouse. So I changed my Magic Mouse to another Magic Mouse and it works! So the issue was my Magic Mouse has a software issue I guess. Then you need to reset your Magic Mouse connection with your Mac and try it again.

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

11/20/2019

How to launch Xcode in macos catalina terminal zsh

 3:31 PM     launch xcode terminal, macos catalina terminal zsh, xcode macos catalina terminal     No comments   

Apple changed the default shell to ZSH. So I would like to run Xcode in the Terminal. So here is the brief instruction for you.

  1. Open .zshrc file vim ~/.zshrc

  2. Add an alias at the bottom. alias xcode="open -a Xcode"

  3. Source .zshrc or relaunch the terminal source ~/.zshrc

  4. Run the command using the alias. xcode example.xcworkspace

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

Bye Slack, Meet Teams

 2:46 AM     Daily Active Users, Microsoft Teams, Microsoft Teams DAU, Office365, Slack, Teams     No comments   

I have been a long time user for Slack. The thing that I don’t like Slack is getting heavier and getting slower.

Today I read a new article saying Microsoft Teams got over 2M daily active users in their Teams service. I think that they bundled it as a part of Microsoft Office 365 and it could be a booster to acquire enterprise users.

It is interesting to see what Microsoft has been doing in the recent years. Then I feel that I become a fan of Microsoft. So next time if I have a chance to build a new team I would like to try Microsoft solution for our teams.

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

11/18/2019

Git ignore vs Git exclude

 5:22 PM     exclude, gitignore, ignore, react native, source control     No comments   

If you are a developer you might have used git to manage your source repository. Then you might use .gitignore file to exclude files or folders that you don’t want to sync with your remote repository.

.gitignore

If you specifies files or folders in .gitignore file, you can exclude files or folders messed up by an unexpected situation. Because it syncs with your remote repository which means all your team members share this configuration for a project.

exclude

git ls-files --others --exclude-from=.git/info/exclude

When I work on a React Native project then I need to be careful not to affect Android sources. In this case exclude file could be a solution for you. The scope of exclude file is for your machine which means that you exclude folders or files in your machine not to sync with the remote repositories.

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

11/17/2019

React Native - launch an app on iOS device and quit immediately without errors

 3:42 PM     ios device closes automatically, ios device crash, ios device crash without errors, ios device launch error, reactnative     1 comment   

Recently I have got an error(?) when I launched a React native application on iOS device for testing. Then it caused a strange symptom like below.
  • No loading from React native testing server
  • The app launched and quit automatically without errors in the Xcode console
So I take a time to figure out. Then I just thought about looking into Device crash log which you can check in the Xcode Device and Simulators menu. Then I found that there was a library linker error and it caused the crash.
After I fix the library link in Xcode and it works fine. I hope it helps someone who faced this kind of error.
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

11/12/2019

When you try to import a library or a framework in your project you might face an issue saying clang: error: linker command failed with exit code 1 (use -v to see invocation)

 3:39 AM     architecture arm64, ios build error, ios linker error, linker command failed, x86_64 error     1 comment   

When you try to import a library or a framework in your project you might face an issue saying clang: error: linker command failed with exit code 1 (use -v to see invocation)
There could be a bunch of options to fix this issue.

I can't say that my solution is the answer for you. But it could an answer for someone. In my case I did below.

First

  1. Select your target project and go Frameworks, Libraries, and Embedded Content section.
  2. Make Embed column Embed & Sign
  3. Clean and build your project again

Second

  1. Remove the derived data
  2. Clean and build your project again

Third

  1. Go Project > Build Settings
  2. Update Enable Bitcode to No
  3. Go Targets > Build Settings
  4. Update Enable BitCode to No
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

11/05/2019

Bitbucket authentication error, Invalid username and password

 7:22 PM     bitbucket, bitbucket authentication, bitbucket invalid username, bitbucket invalid username and password     1 comment   

Today I have faced an issue that I couldn’t push/pull to(from) Bitbucket repository. I used Sourcetree and I got failed to do it with the error below.
Invalid username and password 
I tried to change my password in Bitbucket and it didn’t work. Also, I tried to reset Bitbucket related keychain in mac os. It still didn’t work.

Remove all your keys in Keychain Access

Most answers in the web suggests you to remove all your keys in Keychain Access app on your Mac. I did it, too. Before you take it below try this at the first.

Using SSH in Shell

I recreated a private/public key pair using below.
ssh-keygen -t ed25519 -C "email@example.com"
Then I added the public key to Bitbucket account. Then I tried to test it using SSH-Agent.
ssh -T git@bitbucket.org
Then I went back to Sourcetree and tried it again. It finally worked. It was a strange that I didn’t get any issue on Github and Gitlab. I think that the experience of Bitbucket is getting more complicated than other Git cloud services.
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

10/29/2019

Updating Godaddy's name servers? Good luck

 7:01 PM     domain, godaddy, godaddy default nameserver, nameserver     No comments   

I have used Godaddy for a long time. By the way I have got a critical issue when I update name servers of a domain.

Today I tried to update the name servers of a domain to Godaddy’s default name servers and then it was messed up. The existed name servers were mixed up with Godaddy’s default name servers and then I cannot use the domain anymore.

Then I called Godaddy’s customer support and they said they had an issue on it. As a result, they said that I have to wait for 5 days to get the domain working. It was my second time to face this issue.

Someone who uses their Godaddy domain for a critical use has to think about updating name servers seriously. I think that Godaddy has a big problem on their system. It happens twice and they haven’t fixed it.

I will try to transfer all my domains to other service provider as soon as possible.

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

10/22/2019

Free iPad Pro Duel screen? Give up using Sidecar

 12:38 PM     Apple Sidecar, Astropad, Duel Screen, DuetDisplay, Free iPad Pro Duel screen app, iPad Pro     No comments   

I have used Duet or Astropad for making iPad Pro as a second display. Then I tried to use Apple’s Sidecar which is a new feature of Mac OS Catalina. By the way it seems too unstable.

I frequently meet a freezing issue, a black screen and so on. Eventually I changed to Duet Display which provides much better reliability. Also, it provides more high-end resolution. But I don’t think whether or not this feature needs. Because the size of texts is too small to read.

I feel that Apple makes their product quality worse since Steve Jobs was gone. As a long Apple fan, I feel disappointed.

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

Still Touch ID is better than Face ID

 8:03 AM     FaceID, iPhone 11, iPhone 11 Face ID, iPhone 8 Plus Touch ID, iPhone X, TouchID     No comments   

When iPhone X was launched I bought and used it and then it took a short time to change from it to iPhone 8 Plus which has Touch ID. The reason why I changed was because Face ID wasn’t reliable and better than Touch ID. After several years my iPhone 8 Plus was broken and I bought iPhone 11.

Still Touch ID is better than Face ID. I don’t know how difficult putting Touch ID into the screen of iPhone is. Then I think that Apple is still working on it. Recently Samsung tried it and then I read comments saying many users do not satisfy with it.

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

10/17/2019

Apple iPad Pro Sidecar with Mac OS Catalina

 3:50 PM     catalina, ipados, ipadpro, macOS, sidecar, sidecar error     No comments   

After Apple released the official version of macOS Catalina and I tried to use Sidecar with my iPad Pro. It seems okay. But it doesn’t work sometimes. For example, sometimes iPad Pro screen became just a black screen and I have to change the display option between Mirroring and Separated mode.

Today I updated the latest Mac OS Catalina and iPadOS 13.1.3 and now it feels more stable than before. If you have any issue like me please try updating your Mac OS and iPadOS.

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

10/08/2019

@Published property wrapper in a subclass doesn't send a callback

 6:49 AM     @Published, Combine, objectwillchange, observableobject, observedobject, Swift 5.1, Swift Property Wrapper, SwiftUI     No comments   

I worked on an app using SwiftUI and Combine framework. Then I used @Published property wrapper to publish a stream data from a property in a ViewModel class. By the way when I assign a new value to the property and it doesn’t send a callback to the counterpart SwiftUI view. Then I looked through a similar question in the stack overflow.

Then I followed the answer. But it doesn’t work in my case. So I declared objectWillChange in the subclass and now it works. I think that SwiftUI and Combine framework are not stable yet. So you might have this kind of issue.

// ViewModel 
var objectWillChange = PassthroughSubject<Void, Never>() 

var value: String = "Select" {
  willSet {
    self.objectWillChange.send()
  }
}

// View 
var body: some view {
  Text(self.viewModel.value)
}
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

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

6/21/2019

How to prevent your Mac from sleep

 4:04 PM     Mac, mac sleep mode, macbook, macOS, macserver, preventmacfromsleep, sleep     No comments   

Then I found a Apple support link to solve this issue via a terminal command.

Open your terminal on your mac and then type the command below. sudo pmset -a disablesleep 1 That’s it. Now you can prevent your mac from the sleep mode. The support link isn’t updated by Apple anymore. So I guess that in the future Apple might force the command doesn’t work.

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

Search This Blog

Popular Posts

  • How to put a padding into a UITextField ?
  • Keynote Tutorial Text Outline - Make your animation meaningful
  • Keynote Tutorial , Sound is a design,too
  • Keynote Tutorial How to improve your bullets

Blog Archive

  • ►  2020 (2)
    • ►  January (2)
  • ▼  2019 (21)
    • ▼  December (2)
      • Cannot distribute via Testflight using fastlane in...
      • Magic Mouse doesn't scroll properly. Stuck in cert...
    • ►  November (6)
      • How to launch Xcode in macos catalina terminal zsh
      • Bye Slack, Meet Teams
      • Git ignore vs Git exclude
      • React Native - launch an app on iOS device and qui...
      • When you try to import a library or a framework in...
      • Bitbucket authentication error, Invalid username a...
    • ►  October (5)
      • Updating Godaddy's name servers? Good luck
      • Free iPad Pro Duel screen? Give up using Sidecar
      • Still Touch ID is better than Face ID
      • Apple iPad Pro Sidecar with Mac OS Catalina
      • @Published property wrapper in a subclass doesn't ...
    • ►  September (2)
      • Cannot receive a user's email using Sign in with A...
      • Wordpress Redirection Error after Wordpress migration
    • ►  August (3)
      • Troubleshooting Kubernetes - failed to pull an ima...
      • Why did Google announce Flutter?
      • Docker connection is refused in Jenkins
    • ►  July (2)
      • How to handle a iOS extension using fastlane
      • No Profile for team error on Jenkins using fastlan...
    • ►  June (1)
      • How to prevent your Mac from sleep
  • ►  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