react-native-nami-sdk 3.2.11 → 3.3.0-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/.prettierrc +4 -0
  2. package/README.md +9 -9
  3. package/android/README.md +3 -2
  4. package/android/build.gradle +27 -19
  5. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  6. package/android/gradlew +0 -0
  7. package/android/src/main/AndroidManifest.xml +1 -1
  8. package/android/src/main/java/com/namiml/reactnative/Constants.kt +3 -0
  9. package/android/src/main/java/com/namiml/reactnative/NamiBridgeModule.kt +91 -0
  10. package/android/src/main/java/com/namiml/reactnative/NamiBridgePackage.java +140 -0
  11. package/android/src/main/java/com/{nami/reactlibrary → namiml/reactnative}/NamiCampaignManagerBridge.kt +26 -32
  12. package/android/src/main/java/com/{nami/reactlibrary → namiml/reactnative}/NamiCustomerManagerBridge.kt +14 -6
  13. package/android/src/main/java/com/{nami/reactlibrary/NamiEntitlementManagerBridgeModule.kt → namiml/reactnative/NamiEntitlementManagerBridge.kt} +18 -8
  14. package/android/src/main/java/com/namiml/reactnative/NamiFlowManagerBridge.kt +67 -0
  15. package/android/src/main/java/com/namiml/reactnative/NamiPaywallManagerBridgeModule.kt +196 -0
  16. package/android/src/main/java/com/namiml/reactnative/NamiPurchaseManagerBridge.kt +114 -0
  17. package/android/src/main/java/com/{nami/reactlibrary → namiml/reactnative}/NamiUtil.kt +26 -23
  18. package/{index.d.ts → dist/index.d.ts} +1 -2
  19. package/dist/specs/NativeNami.d.ts +15 -0
  20. package/dist/specs/NativeNamiCampaignManager.d.ts +82 -0
  21. package/dist/specs/NativeNamiCustomerManager.d.ts +29 -0
  22. package/dist/specs/NativeNamiEntitlementManager.d.ts +45 -0
  23. package/dist/specs/NativeNamiFlowManager.d.ts +8 -0
  24. package/dist/specs/NativeNamiPaywallManager.d.ts +71 -0
  25. package/dist/specs/NativeNamiPurchaseManager.d.ts +28 -0
  26. package/dist/src/Nami.d.ts +5 -0
  27. package/dist/src/NamiCampaignManager.d.ts +29 -0
  28. package/{src → dist/src}/NamiCustomerManager.d.ts +11 -13
  29. package/dist/src/NamiEntitlementManager.d.ts +13 -0
  30. package/dist/src/NamiFlowManager.d.ts +11 -0
  31. package/dist/src/NamiPaywallManager.d.ts +30 -0
  32. package/dist/src/NamiPurchaseManager.d.ts +17 -0
  33. package/dist/src/transformers.d.ts +3 -0
  34. package/{src → dist/src}/types.d.ts +41 -11
  35. package/dist/src/version.d.ts +5 -0
  36. package/index.ts +1 -2
  37. package/ios/Nami.m +8 -88
  38. package/ios/Nami.swift +85 -0
  39. package/ios/NamiCampaignManagerBridge.m +3 -3
  40. package/ios/NamiCampaignManagerBridge.swift +50 -62
  41. package/ios/NamiCustomerManager.m +2 -2
  42. package/ios/NamiCustomerManager.swift +13 -3
  43. package/ios/NamiEntitlementManagerBridge.m +2 -3
  44. package/ios/NamiEntitlementManagerBridge.swift +48 -39
  45. package/ios/NamiFlowManagerBridge.m +20 -0
  46. package/ios/NamiFlowManagerBridge.swift +57 -0
  47. package/ios/NamiPaywallManagerBridge.m +3 -3
  48. package/ios/NamiPaywallManagerBridge.swift +16 -6
  49. package/ios/NamiPurchaseManagerBridge.m +3 -2
  50. package/ios/NamiPurchaseManagerBridge.swift +15 -10
  51. package/ios/RNNami-Bridging-Header.h +1 -3
  52. package/package.json +20 -8
  53. package/react-native-config.js +9 -0
  54. package/react-native-nami-sdk.podspec +11 -3
  55. package/scripts/generate-version.ts +18 -0
  56. package/specs/NativeNami.ts +16 -0
  57. package/specs/NativeNamiCampaignManager.ts +94 -0
  58. package/specs/NativeNamiCustomerManager.ts +37 -0
  59. package/specs/NativeNamiEntitlementManager.ts +54 -0
  60. package/specs/NativeNamiFlowManager.ts +12 -0
  61. package/specs/NativeNamiPaywallManager.ts +85 -0
  62. package/specs/NativeNamiPurchaseManager.ts +33 -0
  63. package/src/Nami.ts +28 -18
  64. package/src/NamiCampaignManager.ts +57 -53
  65. package/src/NamiCustomerManager.ts +68 -58
  66. package/src/NamiEntitlementManager.ts +49 -36
  67. package/src/NamiFlowManager.ts +56 -0
  68. package/src/NamiPaywallManager.ts +84 -139
  69. package/src/NamiPurchaseManager.ts +69 -70
  70. package/src/transformers.ts +21 -0
  71. package/src/types.ts +39 -7
  72. package/src/version.ts +5 -0
  73. package/tsconfig.json +24 -22
  74. package/.eslintignore +0 -3
  75. package/.eslintrc.js +0 -52
  76. package/.github/workflows/CI.yaml +0 -341
  77. package/.github/workflows/app_prod.yaml +0 -387
  78. package/.github/workflows/app_stg.yaml +0 -386
  79. package/.github/workflows/build.yml +0 -70
  80. package/.pre-commit-config.yaml +0 -24
  81. package/.prettierrc.js +0 -7
  82. package/android/.project +0 -17
  83. package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
  84. package/android/src/main/java/com/nami/reactlibrary/Constants.kt +0 -3
  85. package/android/src/main/java/com/nami/reactlibrary/NamiBridgeModule.kt +0 -141
  86. package/android/src/main/java/com/nami/reactlibrary/NamiBridgePackage.java +0 -50
  87. package/android/src/main/java/com/nami/reactlibrary/NamiMLManagerBridgeModule.kt +0 -58
  88. package/android/src/main/java/com/nami/reactlibrary/NamiManagerBridge.kt +0 -26
  89. package/android/src/main/java/com/nami/reactlibrary/NamiPaywallManagerBridgeModule.kt +0 -258
  90. package/android/src/main/java/com/nami/reactlibrary/NamiPurchaseManagerBridge.kt +0 -108
  91. package/build-utils/get_version_code.py +0 -140
  92. package/build-utils/preflight.py +0 -46
  93. package/ios/NamiMLManagerBridge.m +0 -93
  94. package/ios/NamiManager.m +0 -18
  95. package/ios/NamiManager.swift +0 -30
  96. package/ios/RNNami.h +0 -10
  97. package/ios/RNNami.m +0 -13
  98. package/ios/RNNami.xcodeproj/project.pbxproj +0 -365
  99. package/ios/RNNami.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  100. package/ios/RNNami.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  101. package/ios/RNNami.xcodeproj/xcshareddata/xcschemes/RNNami.xcscheme +0 -67
  102. package/ios/RNNami.xcworkspace/contents.xcworkspacedata +0 -7
  103. package/ios/RNNami.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  104. package/src/Nami.d.ts +0 -8
  105. package/src/NamiCampaignManager.d.ts +0 -18
  106. package/src/NamiEntitlementManager.d.ts +0 -15
  107. package/src/NamiMLManager.d.ts +0 -7
  108. package/src/NamiMLManager.ts +0 -13
  109. package/src/NamiManager.d.ts +0 -5
  110. package/src/NamiManager.ts +0 -14
  111. package/src/NamiPaywallManager.d.ts +0 -34
  112. package/src/NamiPurchaseManager.d.ts +0 -20
@@ -1,387 +0,0 @@
1
- name: Generate Test React PROD
2
- env:
3
- DEVELOPER_DIR: /Applications/Xcode_16.0.0.app/Contents/Developer
4
- on:
5
- workflow_dispatch:
6
- inputs:
7
- ref:
8
- default: main
9
- description: "Git Tag, Branch or SHA to build"
10
- required: true
11
- secrets:
12
- BUILD_USER_PAT:
13
- required: true
14
-
15
- pull_request:
16
- types:
17
- - closed
18
- branches:
19
- - main
20
- secrets:
21
- BUILD_USER_PAT:
22
- required: true
23
-
24
- jobs:
25
- build-android-prod:
26
- name: Generate Play Store PROD
27
- permissions:
28
- actions: write
29
- contents: write
30
- id-token: write
31
- runs-on: ubuntu-latest
32
- steps:
33
- - uses: actions/setup-node@v3
34
- with:
35
- node-version: "18"
36
-
37
- - name: 'Checkout ${{ inputs.ref }}'
38
- uses: actions/checkout@v2
39
- with:
40
- path: source
41
- ref: '${{ inputs.ref }}'
42
-
43
- - name: Setup Java
44
- uses: actions/setup-java@v3
45
- with:
46
- cache: gradle
47
- distribution: temurin
48
- java-version: 17
49
-
50
- - name: Install Google API python client
51
- run: |
52
- pip install google-api-python-client
53
-
54
- - name: Get new version code
55
- run: |
56
- echo $GOOGLE_PLAY_SERVICE_ACCOUNT > $RUNNER_TEMP/.service_account
57
- python3 build-utils/get_version_code.py $RUNNER_TEMP/.service_account com.namiml.testreact.prod internal --quiet >> $RUNNER_TEMP/.new_version_code
58
- rm -f .service_account
59
- env:
60
- GOOGLE_PLAY_SERVICE_ACCOUNT: '${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT }}'
61
- working-directory: source
62
-
63
- - name: Update version code
64
- working-directory: source/examples/Basic/android/app
65
- run: |
66
- NEW_VERSION_CODE=`cat $RUNNER_TEMP/.new_version_code`
67
- echo $NEW_VERSION_CODE
68
- sed -i "s/versionCode 1/versionCode $NEW_VERSION_CODE/" build.gradle
69
-
70
- - name: Create the Keystore
71
- run: |
72
- # import keystore from secrets
73
- echo $KEYSTORE_BASE64 | base64 -d > $RUNNER_TEMP/my_production.keystore
74
- env:
75
- KEYSTORE_BASE64: '${{ secrets.KEY_STORE_BASE64 }}'
76
-
77
- - name: Install test app dependencies
78
- run: |
79
- yarn install
80
- working-directory: source/examples/Basic
81
-
82
- - name: Update App Platform ID
83
- working-directory: source/examples/Basic/config/
84
- run: |
85
- sed -i "s/ANDROID_PROD_APP_PLATFORM_ID/$BASIC_ANDROID_PROD_APP_PLATFORM_ID/" index.ts
86
- env:
87
- BASIC_ANDROID_PROD_APP_PLATFORM_ID: '${{ secrets.ANDROID_PROD_APP_PLATFORM_ID }}'
88
-
89
- - name: Manually create the bundle
90
- run: |
91
- mkdir -p android/app/src/main/assets/
92
- npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle
93
- working-directory: source/examples/Basic
94
-
95
- - name: Build Android App Bundle
96
- run: |
97
- ./gradlew clean bundleProductionRelease
98
- working-directory: source/examples/Basic/android
99
-
100
- - name: Sign Android App Bundle
101
- run: |
102
- jarsigner -keystore $RUNNER_TEMP/my_production.keystore -storepass '${{ secrets.KEY_STORE_PASSWORD }}' -keypass '${{ secrets.KEY_PASSWORD }}' -sigalg SHA256withRSA -digestalg SHA-256 -signedjar build/outputs/bundle/productionRelease/app-production-release-signed.aab build/outputs/bundle/productionRelease/app-production-release.aab '${{ secrets.KEY_ALIAS }}'
103
- working-directory: source/examples/Basic/android/app
104
-
105
- - name: Uploading to test track
106
- uses: r0adkll/upload-google-play@v1.0.17
107
- with:
108
- packageName: 'com.namiml.testreact.prod'
109
- releaseFiles: source/examples/Basic/android/app/build/outputs/bundle/productionRelease/app-production-release-signed.aab
110
- serviceAccountJsonPlainText: '${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT }}'
111
- status: completed
112
- track: internal
113
- build-ios-prod:
114
- name: Build TestNami iOS PROD
115
- permissions:
116
- actions: write
117
- contents: write
118
- id-token: write
119
- runs-on: macos-13
120
- timeout-minutes: 40
121
- steps:
122
- - uses: actions/setup-node@v3
123
- with:
124
- node-version: "18"
125
-
126
- - name: "Checkout ${{ inputs.ref }}"
127
- uses: actions/checkout@v2
128
- with:
129
- path: source
130
- ref: "${{ inputs.ref }}"
131
-
132
- - name: Checkout appstoreconnect-build-tools
133
- uses: actions/checkout@v2
134
- with:
135
- path: appstoreconnect-build-tools
136
- ref: main
137
- repository: namiml/appstoreconnect-build-tools
138
-
139
- - name: Set up Python
140
- uses: actions/setup-python@v5
141
- with:
142
- python-version: "3.13"
143
-
144
- - name: Get expected build number
145
- run: |
146
- pip3 install requests
147
- pip3 install pydantic==1.10.11
148
- pip3 install cryptography
149
- pip3 install PyJWT
150
- echo "1.0" > $RUNNER_TEMP/.current_version
151
- export CURRENT_VERSION=`cat $RUNNER_TEMP/.current_version`
152
- python3 get_next_build.py com.namiml.app.testreactnative --prerelease --version=$CURRENT_VERSION --platform=IOS > $RUNNER_TEMP/.next_build_number
153
- working-directory: appstoreconnect-build-tools
154
- env:
155
- APPSTORE_API_KEY_ID: "${{ secrets.APPSTORE_API_KEY_ID }}"
156
- APPSTORE_API_PRIVATE_KEY: "${{ secrets.APPSTORE_API_PRIVATE_KEY }}"
157
- APPSTORE_ISSUER_ID: "${{ secrets.APPSTORE_ISSUER_ID }}"
158
-
159
- - name: Install Apple Certificate
160
- uses: apple-actions/import-codesign-certs@v1
161
- with:
162
- p12-file-base64: "${{ secrets.IOS_P12_BASE64 }}"
163
- p12-password: "${{ secrets.IOS_CERTIFICATE_PASSWORD }}"
164
-
165
- - name: Install the provisioning profile
166
- run: |
167
- PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
168
- echo -n "$PROVISIONING_CERTIFICATE_BASE64" | base64 --decode -o $PP_PATH
169
- mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
170
- cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
171
- env:
172
- PROVISIONING_CERTIFICATE_BASE64: "${{ secrets.IOS_MOBILE_PROVISION_BASE64_TEST_REACT_PROD }}"
173
-
174
- - name: Store App Store Private Key
175
- run: |
176
- mkdir ~/.private_keys
177
- echo '${{ secrets.APPSTORE_API_PRIVATE_KEY }}' > ~/.private_keys/AuthKey_'${{ secrets.APPSTORE_API_KEY_ID }}'.p8
178
-
179
- - name: Update ExportOptions.plist
180
- run: |
181
- sed -i '' -e "s/APPSTORE_TEAM_ID/${{ secrets.APPSTORE_TEAM_ID }}/" ExportOptions.plist
182
- sed -i '' -e "s/APPSTORE_PROVISIONING_PROFILE_UUID/${{ secrets.APPSTORE_PROV_PROFILE_UUID_TEST_REACT_PROD }}/g" ExportOptions.plist
183
- working-directory: source/examples/Basic/ios
184
-
185
- - name: Adjust version & build number
186
- run: |-
187
- export CURRENT_VERSION=`cat $RUNNER_TEMP/.current_version`
188
- export BUILD_NUMBER=`cat $RUNNER_TEMP/.next_build_number`
189
- sed -i '' -e "s/CURRENT_PROJECT_VERSION = 1/CURRENT_PROJECT_VERSION = $BUILD_NUMBER/" ios/Basic.xcodeproj/project.pbxproj
190
- sed -i '' -e "s/MARKETING_VERSION = 1.0/MARKETING_VERSION = $CURRENT_VERSION/" ios/Basic.xcodeproj/project.pbxproj
191
- sed -i '' -e "s/<string>1<\/string>/<string>$BUILD_NUMBER<\/string>/" ios/Basic/Info.plist
192
- echo "BUILD_NUMBER=$(cat ~/.next_build_number)" >> $GITHUB_ENV
193
- echo "CURRENT_VERSION=$(cat ~/.current_version)" >> $GITHUB_ENV
194
- working-directory: source/examples/Basic
195
-
196
- - name: Install test app dependencies
197
- run: |
198
- yarn install
199
- working-directory: source/examples/Basic
200
-
201
- - name: Update App Platform ID
202
- working-directory: source/examples/Basic/config/
203
- run: |
204
- sed -i '' -e "s/APPLE_PROD_APP_PLATFORM_ID/$BASIC_APPLE_PROD_APP_PLATFORM_ID/" index.ts
205
- env:
206
- BASIC_APPLE_PROD_APP_PLATFORM_ID: '${{ secrets.APPLE_PROD_APP_PLATFORM_ID }}'
207
-
208
- - name: Install test iOS dependencies
209
- run: |
210
- pod install --repo-update
211
- working-directory: source/examples/Basic/ios
212
-
213
- - name: Build resolve Swift dependencies
214
- run: |
215
- xcodebuild -resolvePackageDependencies -workspace ios/Basic.xcworkspace -scheme BasicProduction -configuration Release
216
- working-directory: source/examples/Basic
217
-
218
- - name: Build xArchive
219
- run: |
220
- xcodebuild -workspace ios/Basic.xcworkspace -scheme BasicProduction -configuration Release DEVELOPMENT_TEAM='${{ secrets.APPSTORE_TEAM_ID }}' -sdk 'iphoneos' -destination 'generic/platform=iOS' -archivePath build-output/app-prod.xcarchive PROVISIONING_PROFILE='${{ secrets.APPSTORE_PROV_PROFILE_UUID_TEST_REACT_PROD }}' clean archive CODE_SIGN_IDENTITY='${{ secrets.CODE_SIGNING_IDENTITY }}'
221
- working-directory: source/examples/Basic
222
-
223
- - name: Export IPA
224
- run: |
225
- xcodebuild -exportArchive -archivePath build-output/app-prod.xcarchive -exportPath build-output/ios-prod -exportOptionsPlist ios/ExportOptions.plist
226
- working-directory: source/examples/Basic
227
-
228
- - name: Upload app to TestFlight
229
- run: |
230
- xcrun altool --upload-app --type ios --file build-output/ios-prod/BasicProduction.ipa --apiKey $APPSTORE_API_KEY_ID --apiIssuer $APPSTORE_ISSUER_ID
231
- working-directory: source/examples/Basic
232
- env:
233
- APPSTORE_API_KEY_ID: "${{ secrets.APPSTORE_API_KEY_ID }}"
234
- APPSTORE_ISSUER_ID: "${{ secrets.APPSTORE_ISSUER_ID }}"
235
-
236
- - name: Get PR info
237
- id: pr
238
- run: |
239
- echo "PR_TITLE=${{ github.event.pull_request.title }}" >> $GITHUB_ENV
240
-
241
- - name: Upload PR Title to TestFlight Whats New
242
- working-directory: appstoreconnect-build-tools
243
- run: |-
244
- sleep 120
245
- python3 upload_testflight_whats_new.py com.namiml.app.testreactnative --notes="${{ env.PR_TITLE }}" --version=${{ env.CURRENT_VERSION }} --platform=IOS --prerelease
246
- env:
247
- APPSTORE_API_PRIVATE_KEY: ${{ secrets.APPSTORE_API_PRIVATE_KEY }}
248
- APPSTORE_API_KEY_ID: ${{ secrets.APPSTORE_API_KEY_ID }}
249
- APPSTORE_ISSUER_ID: ${{ secrets.APPSTORE_ISSUER_ID }}
250
-
251
- build-tvos-prod:
252
- name: Build TestNamiTV tvOS PROD
253
- permissions:
254
- actions: write
255
- contents: write
256
- id-token: write
257
- runs-on: macos-15
258
- timeout-minutes: 40
259
- steps:
260
- - uses: actions/setup-node@v3
261
- with:
262
- node-version: "18"
263
-
264
- - name: "Checkout ${{ inputs.ref }}"
265
- uses: actions/checkout@v2
266
- with:
267
- path: source
268
- ref: "${{ inputs.ref }}"
269
-
270
- - name: Checkout appstoreconnect-build-tools
271
- uses: actions/checkout@v2
272
- with:
273
- path: appstoreconnect-build-tools
274
- ref: main
275
- repository: namiml/appstoreconnect-build-tools
276
-
277
- - name: Set up Python
278
- uses: actions/setup-python@v5
279
- with:
280
- python-version: "3.13"
281
-
282
- - name: Get expected build number
283
- run: |
284
- pip3 install requests
285
- pip3 install pydantic==1.10.11
286
- pip3 install cryptography
287
- pip3 install PyJWT
288
- echo "1.0" > $RUNNER_TEMP/.current_version
289
- export CURRENT_VERSION=`cat $RUNNER_TEMP/.current_version`
290
- python3 get_next_build.py com.namiml.app.testreactnative --prerelease --platform=TV_OS > $RUNNER_TEMP/.next_build_number
291
- working-directory: appstoreconnect-build-tools
292
- env:
293
- APPSTORE_API_KEY_ID: "${{ secrets.APPSTORE_API_KEY_ID }}"
294
- APPSTORE_API_PRIVATE_KEY: "${{ secrets.APPSTORE_API_PRIVATE_KEY }}"
295
- APPSTORE_ISSUER_ID: "${{ secrets.APPSTORE_ISSUER_ID }}"
296
-
297
- - name: Install Apple Certificate
298
- uses: apple-actions/import-codesign-certs@v1
299
- with:
300
- p12-file-base64: "${{ secrets.IOS_P12_BASE64 }}"
301
- p12-password: "${{ secrets.IOS_CERTIFICATE_PASSWORD }}"
302
-
303
- - name: Install the provisioning profile
304
- run: |
305
- PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
306
- echo -n "$PROVISIONING_CERTIFICATE_BASE64" | base64 --decode -o $PP_PATH
307
- mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
308
- cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
309
- env:
310
- PROVISIONING_CERTIFICATE_BASE64: "${{ secrets.IOS_MOBILE_PROVISION_BASE64_TEST_REACT_TVOS_PROD }}"
311
-
312
- - name: Store App Store Private Key
313
- run: |
314
- mkdir ~/.private_keys
315
- echo '${{ secrets.APPSTORE_API_PRIVATE_KEY }}' > ~/.private_keys/AuthKey_'${{ secrets.APPSTORE_API_KEY_ID }}'.p8
316
-
317
- - name: Update ExportOptions.plist
318
- run: |
319
- sed -i '' -e "s/APPSTORE_TEAM_ID/${{ secrets.APPSTORE_TEAM_ID }}/" ExportOptions.plist
320
- sed -i '' -e "s/APPSTORE_PROVISIONING_PROFILE_UUID/${{ secrets.APPSTORE_PROV_PROFILE_UUID_TEST_REACT_TVOS_PROD }}/g" ExportOptions.plist
321
- working-directory: source/examples/TestNamiTV/ios
322
-
323
- - name: Adjust version & build number
324
- run: |-
325
- export CURRENT_VERSION=`cat $RUNNER_TEMP/.current_version`
326
- export BUILD_NUMBER=`cat $RUNNER_TEMP/.next_build_number`
327
- sed -i '' -e "s/CURRENT_PROJECT_VERSION = 1/CURRENT_PROJECT_VERSION = $BUILD_NUMBER/" ios/Basic.xcodeproj/project.pbxproj
328
- sed -i '' -e "s/MARKETING_VERSION = 1.0/MARKETING_VERSION = $CURRENT_VERSION/" ios/Basic.xcodeproj/project.pbxproj
329
- sed -i '' -e "s/<string>1<\/string>/<string>$BUILD_NUMBER<\/string>/" ios/Info-PROD.plist
330
- echo "BUILD_NUMBER=$(cat ~/.next_build_number)" >> $GITHUB_ENV
331
- echo "CURRENT_VERSION=$(cat ~/.current_version)" >> $GITHUB_ENV
332
- working-directory: source/examples/TestNamiTV
333
-
334
- - name: Install test app dependencies
335
- run: |
336
- yarn install
337
- working-directory: source/examples/TestNamiTV
338
-
339
- - name: Update App Platform ID
340
- working-directory: source/examples/TestNamiTV/config/
341
- run: |
342
- sed -i '' -e "s/APPLE_PROD_APP_PLATFORM_ID/$TESTNAMITV_APPLE_PROD_APP_PLATFORM_ID/" index.ts
343
- env:
344
- TESTNAMITV_APPLE_PROD_APP_PLATFORM_ID: '${{ secrets.APPLE_PROD_APP_PLATFORM_ID }}'
345
-
346
- - name: Install test tvOS dependencies
347
- run: |
348
- RCT_NEW_ARCH_ENABLED=0 SWIFT_VERSION=5 pod install --repo-update
349
- working-directory: source/examples/TestNamiTV/ios
350
-
351
- - name: Apply Patches
352
- run: |
353
- patch -p0 < *.patch
354
- working-directory: source/examples/TestNamiTV/patches
355
-
356
- - name: Build resolve Swift dependencies
357
- run: |
358
- xcodebuild -resolvePackageDependencies -workspace ios/Basic.xcworkspace -scheme Basic-tvOS-PROD -configuration Release
359
- working-directory: source/examples/TestNamiTV
360
-
361
- - name: Build xArchive
362
- run: |
363
- xcodebuild -workspace ios/Basic.xcworkspace -scheme Basic-tvOS-PROD -configuration Release DEVELOPMENT_TEAM='${{ secrets.APPSTORE_TEAM_ID }}' -sdk 'appletvos' -destination 'generic/platform=tvOS' -archivePath build-output/app-prod.xcarchive PROVISIONING_PROFILE='${{ secrets.APPSTORE_PROV_PROFILE_UUID_TEST_REACT_TVOS_PROD }}' clean archive CODE_SIGN_IDENTITY='${{ secrets.CODE_SIGNING_IDENTITY }}'
364
- working-directory: source/examples/TestNamiTV
365
-
366
- - name: Export IPA
367
- run: |
368
- xcodebuild -exportArchive -archivePath build-output/app-prod.xcarchive -exportPath build-output/tvos-prod -exportOptionsPlist ios/ExportOptions.plist
369
- working-directory: source/examples/TestNamiTV
370
-
371
- - name: Upload app to TestFlight
372
- run: |
373
- xcrun altool --upload-app --type tvos --file build-output/tvos-prod/Basic-tvOS-PROD.ipa --apiKey $APPSTORE_API_KEY_ID --apiIssuer $APPSTORE_ISSUER_ID
374
- working-directory: source/examples/TestNamiTV
375
- env:
376
- APPSTORE_API_KEY_ID: "${{ secrets.APPSTORE_API_KEY_ID }}"
377
- APPSTORE_ISSUER_ID: "${{ secrets.APPSTORE_ISSUER_ID }}"
378
-
379
- - name: Upload PR Title to TestFlight Whats New
380
- working-directory: appstoreconnect-build-tools
381
- run: |-
382
- sleep 120
383
- python3 upload_testflight_whats_new.py com.namiml.app.testreactnative --notes="${{ env.PR_TITLE }}" --version=${{ env.CURRENT_VERSION }} --platform=TV_OS --prerelease
384
- env:
385
- APPSTORE_API_PRIVATE_KEY: ${{ secrets.APPSTORE_API_PRIVATE_KEY }}
386
- APPSTORE_API_KEY_ID: ${{ secrets.APPSTORE_API_KEY_ID }}
387
- APPSTORE_ISSUER_ID: ${{ secrets.APPSTORE_ISSUER_ID }}